From 316bf2e8d1312f541bf13bcc529e9d8c3c4f84af Mon Sep 17 00:00:00 2001 From: Josue Nina Date: Thu, 12 Dec 2024 12:37:54 -0500 Subject: [PATCH 1/3] Implement Squeeze Momentum Indicator --- Indicators/SqueezeMomentum.cs | 109 ++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 Indicators/SqueezeMomentum.cs diff --git a/Indicators/SqueezeMomentum.cs b/Indicators/SqueezeMomentum.cs new file mode 100644 index 000000000000..e2cdc7f63795 --- /dev/null +++ b/Indicators/SqueezeMomentum.cs @@ -0,0 +1,109 @@ +/* + * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. + * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +using QuantConnect.Data.Market; + +namespace QuantConnect.Indicators +{ + /// + /// The SqueezeMomentum indicator calculates whether the market is in a "squeeze" condition, + /// determined by comparing Bollinger Bands to Keltner Channels. When the Bollinger Bands are + /// inside the Keltner Channels, the indicator returns 1 (squeeze on). Otherwise, it returns -1 (squeeze off). + /// + public class SqueezeMomentum : BarIndicator, IIndicatorWarmUpPeriodProvider + { + /// + /// The Bollinger Bands indicator used to calculate the upper, lower, and middle bands. + /// + private readonly BollingerBands _bollingerBands; + + /// + /// The Average True Range (ATR) indicator used to calculate the Keltner Channels. + /// + private readonly AverageTrueRange _averageTrueRange; + + /// + /// The multiplier applied to the Average True Range for calculating Keltner Channels. + /// + private readonly decimal _keltnerMultiplier; + + /// + /// Initializes a new instance of the class. + /// + /// The name of the indicator. + /// The period used for the Bollinger Bands calculation. + /// The multiplier for the Bollinger Bands width. + /// The period used for the Average True Range (ATR) calculation in Keltner Channels. + /// The multiplier applied to the ATR for calculating Keltner Channels. + public SqueezeMomentum(string name, int bollingerPeriod, decimal bollingerMultiplier, int keltnerPeriod, decimal keltnerMultiplier) : base(name) + { + _bollingerBands = new BollingerBands(bollingerPeriod, bollingerMultiplier); + _averageTrueRange = new AverageTrueRange(keltnerPeriod, MovingAverageType.Simple); + _keltnerMultiplier = keltnerMultiplier; + } + + /// + /// Gets the warm-up period required for the indicator to be ready. + /// This is determined by the warm-up period of the Bollinger Bands indicator. + /// + public int WarmUpPeriod => _bollingerBands.WarmUpPeriod; + + /// + /// Indicates whether the indicator is ready and has enough data for computation. + /// The indicator is ready when both the Bollinger Bands and the Average True Range are ready. + /// + public override bool IsReady => _bollingerBands.IsReady && _averageTrueRange.IsReady; + + /// + /// Computes the next value of the indicator based on the input data bar. + /// + /// The input data bar. + /// + /// Returns 1 if the Bollinger Bands are inside the Keltner Channels (squeeze on), + /// or -1 if the Bollinger Bands are outside the Keltner Channels (squeeze off). + /// + protected override decimal ComputeNextValue(IBaseDataBar input) + { + _bollingerBands.Update(new IndicatorDataPoint(input.EndTime, input.Close)); + _averageTrueRange.Update(input); + if (!IsReady) + { + return decimal.Zero; + } + + // Calculate Bollinger Bands upper, lower, and middle bands + var bbHigh = _bollingerBands.UpperBand.Current.Value; + var bbLow = _bollingerBands.LowerBand.Current.Value; + var simpleMovingAverage = _bollingerBands.MiddleBand.Current.Value; + + // Calculate Keltner Channels upper and lower bounds + var kcLow = simpleMovingAverage - _keltnerMultiplier * _averageTrueRange.Current.Value; + var kcHigh = simpleMovingAverage + _keltnerMultiplier * _averageTrueRange.Current.Value; + + // Determine if the squeeze condition is on or off + return (kcHigh > bbHigh && kcLow < bbLow) ? 1m : -1m; + } + + /// + /// Resets the state of the indicator, including all sub-indicators. + /// + public override void Reset() + { + _bollingerBands.Reset(); + _averageTrueRange.Reset(); + base.Reset(); + } + } +} From f07565ecee832b60db38c6d690d18ac12489b623 Mon Sep 17 00:00:00 2001 From: Josue Nina Date: Thu, 12 Dec 2024 12:38:31 -0500 Subject: [PATCH 2/3] Create unit test for SqueezeMomentum Indicator --- Tests/Indicators/SqueezeMomentumTests.cs | 34 ++ Tests/QuantConnect.Tests.csproj | 3 + Tests/TestData/spy_smi.csv | 514 +++++++++++++++++++++++ 3 files changed, 551 insertions(+) create mode 100644 Tests/Indicators/SqueezeMomentumTests.cs create mode 100644 Tests/TestData/spy_smi.csv diff --git a/Tests/Indicators/SqueezeMomentumTests.cs b/Tests/Indicators/SqueezeMomentumTests.cs new file mode 100644 index 000000000000..f29363877726 --- /dev/null +++ b/Tests/Indicators/SqueezeMomentumTests.cs @@ -0,0 +1,34 @@ +/* + * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. + * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +*/ + +using NUnit.Framework; +using QuantConnect.Data.Market; +using QuantConnect.Indicators; + +namespace QuantConnect.Tests.Indicators +{ + [TestFixture] + public class SqueezeMomentumTests : CommonIndicatorTests + { + protected override IndicatorBase CreateIndicator() + { + VolumeRenkoBarSize = 0.5m; + return new SqueezeMomentum("SM", 20, 2, 20, 1.5m); + } + protected override string TestFileName => "spy_smi.csv"; + + protected override string TestColumnName => "squeeze on"; + } +} \ No newline at end of file diff --git a/Tests/QuantConnect.Tests.csproj b/Tests/QuantConnect.Tests.csproj index 88daa6e7d5f5..237f433b89d2 100644 --- a/Tests/QuantConnect.Tests.csproj +++ b/Tests/QuantConnect.Tests.csproj @@ -618,6 +618,9 @@ PreserveNewest + + PreserveNewest + diff --git a/Tests/TestData/spy_smi.csv b/Tests/TestData/spy_smi.csv new file mode 100644 index 000000000000..a76f5de60a7e --- /dev/null +++ b/Tests/TestData/spy_smi.csv @@ -0,0 +1,514 @@ +date,open,high,low,close,sma,bb high,bb low,kc high,kc low,squeeze on +19980102 00:00,973100,975300,965300,973600,,,,,,-1 +19980105 00:00,978400,984400,967800,977500,,,,,,-1 +19980106 00:00,972500,972800,961900,966300,,,,,,-1 +19980107 00:00,960900,965000,952200,964700,,,,,,-1 +19980108 00:00,963100,963100,955000,957800,,,,,,-1 +19980109 00:00,952500,955000,919100,924700,,,,,,-1 +19980112 00:00,911300,941900,909100,940600,,,,,,-1 +19980113 00:00,946300,956300,942200,952200,,,,,,-1 +19980114 00:00,956900,959700,947200,958100,,,,,,-1 +19980115 00:00,955000,957500,948100,949400,,,,,,-1 +19980116 00:00,962500,966900,956600,962300,,,,,,-1 +19980120 00:00,966900,980000,965000,980000,,,,,,-1 +19980121 00:00,972200,976900,961600,971600,,,,,,-1 +19980122 00:00,961600,968800,958800,963000,,,,,,-1 +19980123 00:00,965000,967800,950000,956600,,,,,,-1 +19980126 00:00,963800,967300,937500,957500,,,,,,-1 +19980127 00:00,958100,980000,956600,970000,,,,,,-1 +19980128 00:00,974100,981100,971700,978800,,,,,,-1 +19980129 00:00,978400,995600,975600,987500,,,,,,-1 +19980130 00:00,987800,989700,980000,983100,963765.0,993374.2738850516,934155.7261149484,,,-1 +19980202 00:00,999100,1005000,997500,1002500,965210.0,999108.2536423339,931311.7463576661,992645.0,937775.0,-1 +19980203 00:00,1000000,1008100,997200,1006900,966680.0,1004861.8071861456,928498.1928138544,993687.5,939672.5,-1 +19980204 00:00,1002800,1011600,998800,1005900,968660.0,1010490.390865972,926829.609134028,995457.5,941862.5,-1 +19980205 00:00,1013100,1015900,1000300,1003800,970615.0,1015093.321685963,926136.678314037,997525.0,943705.0,-1 +19980206 00:00,1010000,1015000,1006900,1012800,973365.0,1021021.4906387368,925708.5093612632,1000387.5,946342.5,-1 +19980209 00:00,1017200,1017500,1007200,1011400,977700.0,1022551.3990863161,932848.6009136839,1002592.5,952807.5,-1 +19980210 00:00,1014400,1024700,1011900,1020500,981695.0,1026849.112769492,936540.887230508,1005125.0,958265.0,-1 +19980211 00:00,1020900,1031900,1017000,1021300,985150.0,1031311.3041410227,938988.6958589773,1008520.0,961780.0,-1 +19980212 00:00,1017200,1029400,1008800,1026600,988575.0,1036337.1555208723,940812.8444791277,1012552.5,964597.5,-1 +19980213 00:00,1021900,1029400,1018800,1021600,992185.0,1038448.2586400915,945921.7413599085,1016207.5,968162.5,-1 +19980217 00:00,1028100,1030900,1021600,1023400,995240.0,1041274.8737372006,949205.1262627994,1018647.5,971832.5,-1 +19980218 00:00,1023100,1034700,1022800,1034100,997945.0,1046375.4645858369,949514.5354141631,1020917.5,974972.5,-1 +19980219 00:00,1032500,1034100,1027500,1030000,1000865.0,1049630.736947164,952099.263052836,1022952.5,978777.5,-1 +19980220 00:00,1030800,1037500,1023800,1035600,1004495.0,1052243.7371560757,956746.2628439243,1026650.0,982340.0,-1 +19980223 00:00,1042500,1042500,1033400,1040000,1008665.0,1053427.9433795412,963902.056620459,1030167.5,987162.5,-1 +19980224 00:00,1039100,1040900,1029400,1031900,1012385.0,1051535.5951423475,973234.4048576525,1032515.0,992255.0,-1 +19980225 00:00,1037500,1048800,1036300,1044800,1016125.0,1052562.1719539263,979687.8280460736,1035767.5,996482.5,-1 +19980226 00:00,1044400,1051600,1041900,1050600,1019715.0,1054860.2571480137,984569.7428519864,1039252.5,1000177.5,-1 +19980227 00:00,1049700,1055300,1043100,1052000,1022940.0,1057501.388860982,988378.6111390182,1041892.5,1003987.5,-1 +19980302 00:00,1052500,1057500,1046300,1048100,1026190.0,1057196.4444914279,995183.5555085721,1045255.0,1007125.0,-1 +19980303 00:00,1045300,1054700,1045000,1054100,1028770.0,1060048.177696279,997491.8223037211,1046920.0,1010620.0,-1 +19980304 00:00,1050900,1054100,1040600,1049700,1030910.0,1061763.8425483764,1000056.1574516236,1049255.0,1012565.0,-1 +19980305 00:00,1035000,1044400,1031600,1037500,1032490.0,1061222.5529669747,1003757.4470330254,1051232.5,1013747.5,-1 +19980306 00:00,1045600,1058800,1044400,1057500,1035175.0,1062692.2582209783,1007657.7417790217,1054345.0,1016005.0,-1 +19980309 00:00,1055300,1062200,1052500,1054400,1037255.0,1063969.9003367035,1010540.0996632965,1056312.5,1018197.5,-1 +19980310 00:00,1062200,1068400,1053800,1066600,1040015.0,1066880.314068516,1013149.6859314841,1059395.0,1020635.0,-1 +19980311 00:00,1069700,1073100,1067300,1072500,1042615.0,1071417.6578634682,1013812.342136532,1061485.0,1023745.0,-1 +19980312 00:00,1070900,1075900,1065000,1072500,1045175.0,1075026.8927373122,1015323.1072626876,1063745.0,1026605.0,-1 +19980313 00:00,1078400,1080000,1068800,1072200,1047455.0,1078234.959389187,1016675.0406108131,1065320.0,1029590.0,-1 +19980316 00:00,1078400,1082800,1075300,1082500,1050500.0,1082472.6758342183,1018527.3241657818,1068365.0,1032635.0,-1 +19980317 00:00,1083100,1085000,1076600,1084700,1053565.0,1086302.1516781775,1020827.8483218225,1071362.5,1035767.5,-1 +19980318 00:00,1082500,1089400,1080000,1087800,1056250.0,1090912.861970703,1021587.1380292971,1073860.0,1038640.0,-1 +19980319 00:00,1089700,1093800,1086600,1093400,1059420.0,1095468.99998613,1023371.00001387,1077075.0,1041765.0,-1 +19980320 00:00,1095600,1101900,1088800,1100000,1062640.0,1101031.7386946722,1024248.2613053276,1080250.0,1045030.0,-1 +19980323 00:00,1097200,1103100,1094100,1095000,1065390.0,1104767.6027711185,1026012.3972288815,1082992.5,1047787.5,-1 +19980324 00:00,1100600,1108100,1099400,1105900,1069090.0,1109086.644859288,1029093.3551407121,1086812.5,1051367.5,-1 +19980325 00:00,1114100,1115300,1091900,1101900,1071945.0,1112742.3761411197,1031147.6238588804,1090155.0,1053735.0,-1 +19980326 00:00,1098800,1107500,1096300,1101300,1074480.0,1115952.1882711777,1033007.8117288224,1092802.5,1056157.5,-1 +19980327 00:00,1107500,1107800,1090000,1095300,1076645.0,1117715.888716949,1035574.1112830511,1095387.5,1057902.5,-1 +19980330 00:00,1096300,1100900,1089700,1093400,1078910.0,1118400.246897177,1039419.7531028229,1097652.5,1060167.5,-1 +19980331 00:00,1101600,1111900,1097500,1100900,1081250.0,1120123.9244224196,1042376.0755775803,1100652.5,1061847.5,-1 +19980401 00:00,1103100,1110800,1094100,1109800,1084255.0,1122189.1785201684,1046320.8214798317,1103897.5,1064612.5,-1 +19980402 00:00,1109400,1122500,1107500,1120300,1088395.0,1122936.075547817,1053853.924452183,1107805.0,1068985.0,-1 +19980403 00:00,1123400,1128100,1118400,1121900,1091615.0,1126042.156432096,1057187.843567904,1110155.0,1073075.0,-1 +19980406 00:00,1132500,1133800,1120600,1122500,1095020.0,1127464.3893454631,1062575.6106545369,1113822.5,1076217.5,-1 +19980407 00:00,1117500,1119400,1101600,1110000,1097190.0,1127474.3788115259,1066905.6211884741,1116465.0,1077915.0,-1 +19980408 00:00,1112200,1112800,1097500,1101300,1098630.0,1126742.4242995868,1070517.5757004132,1118565.0,1078695.0,-1 +19980409 00:00,1105600,1112800,1105300,1110000,1100505.0,1126303.1762921335,1074706.8237078665,1120485.0,1080525.0,-1 +19980413 00:00,1113800,1113800,1100000,1110000,1102395.0,1124957.2228514834,1079832.7771485166,1122570.0,1082220.0,-1 +19980414 00:00,1111300,1117200,1109100,1116900,1104115.0,1125565.8065116443,1082664.1934883557,1124102.5,1084127.5,-1 +19980415 00:00,1119700,1121300,1111600,1120200,1105890.0,1126478.627929029,1085301.372070971,1125975.0,1085805.0,-1 +19980416 00:00,1113100,1115000,1105000,1109100,1106955.0,1125822.0585942802,1088087.9414057198,1127475.0,1086435.0,1 +19980417 00:00,1107200,1124100,1104400,1122200,1108395.0,1127300.181829329,1089489.818170671,1129852.5,1086937.5,1 +19980420 00:00,1120000,1125600,1118800,1124100,1109600.0,1129268.0451494295,1089931.9548505705,1130585.0,1088615.0,1 +19980421 00:00,1124400,1131600,1119100,1126300,1111165.0,1130918.0023034473,1091411.9976965527,1132412.5,1089917.5,1 +19980422 00:00,1128800,1134400,1128100,1130000,1112370.0,1133578.0267823294,1091161.9732176706,1133242.5,1091497.5,-1 +19980423 00:00,1126300,1130000,1117500,1120900,1113320.0,1134267.5153657899,1092372.4846342101,1133375.0,1093265.0,-1 +19980424 00:00,1117500,1124700,1103400,1108800,1113695.0,1134027.8773172908,1093362.1226827092,1134507.5,1092882.5,1 +19980427 00:00,1093800,1106600,1076300,1085900,1113225.0,1135571.800665867,1090878.199334133,1135140.0,1091310.0,-1 +19980428 00:00,1097800,1098100,1081300,1086300,1112870.0,1136645.2055721923,1089094.7944278077,1135205.0,1090535.0,-1 +19980429 00:00,1090300,1099700,1084400,1095300,1112590.0,1137044.6846227874,1088135.3153772126,1134685.0,1090495.0,-1 +19980430 00:00,1105600,1119200,1104100,1114400,1112820.0,1137251.913555839,1088388.086444161,1135455.0,1090185.0,-1 +19980501 00:00,1117500,1123100,1113100,1121900,1112900.0,1137439.6006487473,1088360.3993512527,1135160.0,1090640.0,-1 +19980504 00:00,1127200,1133100,1121600,1122500,1112930.0,1137514.9628838443,1088345.0371161557,1135325.0,1090535.0,-1 +19980505 00:00,1120000,1121600,1111300,1116600,1112635.0,1136892.969824369,1088377.030175631,1134880.0,1090390.0,-1 +19980506 00:00,1121300,1121300,1104700,1105000,1112385.0,1136848.628103779,1087921.371896221,1134307.5,1090462.5,-1 +19980507 00:00,1105000,1105600,1094100,1095900,1112115.0,1137173.9923979398,1087056.0076020602,1133752.5,1090477.5,-1 +19980508 00:00,1100000,1113800,1100000,1110000,1112115.0,1137173.9923979398,1087056.0076020602,1134232.5,1089997.5,-1 +19980511 00:00,1115600,1122200,1103800,1108600,1112045.0,1137135.0358708391,1086954.9641291609,1134507.5,1089582.5,-1 +19980512 00:00,1108100,1118800,1102500,1116400,1112020.0,1137091.6253960528,1086948.3746039472,1135097.5,1088942.5,-1 +19980513 00:00,1120600,1125600,1115900,1120600,1112040.0,1137138.3186687874,1086941.6813312126,1135117.5,1088962.5,-1 +19980514 00:00,1115300,1126900,1113400,1119700,1112570.0,1137844.659245972,1087295.340754028,1135520.0,1089620.0,-1 +19980515 00:00,1120000,1122200,1108100,1110000,1111960.0,1136861.6786582752,1087058.3213417248,1134490.0,1089430.0,-1 +19980518 00:00,1107200,1115900,1098300,1108400,1111175.0,1135479.0634462635,1086870.9365537365,1134515.0,1087835.0,-1 +19980519 00:00,1110000,1116900,1107800,1110600,1110390.0,1133682.3936082146,1087097.6063917854,1133475.0,1087305.0,-1 +19980520 00:00,1120900,1125000,1108800,1122800,1110030.0,1132299.0008756567,1087760.9991243433,1133722.5,1086337.5,1 +19980521 00:00,1123800,1127800,1113100,1116900,1109830.0,1131774.3933614034,1087885.6066385966,1133687.5,1085972.5,1 +19980522 00:00,1117500,1120600,1109400,1111600,1109970.0,1131922.047740473,1088017.952259527,1133070.0,1086870.0,1 +19980526 00:00,1120900,1120900,1094400,1095300,1110440.0,1130643.405653503,1090236.594346497,1133090.0,1087790.0,1 +19980527 00:00,1093100,1099100,1075800,1096300,1110940.0,1129122.8930591366,1092757.1069408634,1134077.5,1087802.5,1 +19980528 00:00,1098800,1103800,1087300,1100000,1111175.0,1128651.0264362355,1093698.9735637645,1134402.5,1087947.5,1 +19980529 00:00,1106300,1108100,1093800,1093800,1110145.0,1129104.5859659435,1091185.4140340565,1132652.5,1087637.5,1 +19980601 00:00,1089700,1102200,1085600,1095000,1108800.0,1128047.5452980374,1089552.4547019626,1131802.5,1085797.5,1 +19980602 00:00,1100000,1103400,1091600,1095900,1107470.0,1126420.894437994,1088519.105562006,1130495.0,1084445.0,1 +19980603 00:00,1098800,1101900,1082200,1085000,1105890.0,1126709.6926009967,1085070.3073990033,1129552.5,1082227.5,1 +19980604 00:00,1082500,1100600,1080600,1099100,1105595.0,1126622.9314246553,1084567.0685753447,1129512.5,1081677.5,1 +19980605 00:00,1103800,1118800,1098800,1118100,1106705.0,1127911.6475426927,1085498.3524573073,1131260.0,1082150.0,1 +19980608 00:00,1119400,1124700,1116600,1118800,1107145.0,1128963.2011174157,1085326.7988825843,1130965.0,1083325.0,1 +19980609 00:00,1117200,1124200,1114100,1122800,1107855.0,1130715.6627200525,1084994.3372799475,1131052.5,1084657.5,1 +19980610 00:00,1116300,1130600,1112500,1113800,1107725.0,1130418.7766799622,1085031.2233200378,1131057.5,1084392.5,1 +19980611 00:00,1114400,1118800,1092800,1096600,1106525.0,1128904.6224275567,1084145.3775724433,1131080.0,1081970.0,1 +19980612 00:00,1098800,1104400,1082500,1102500,1105665.0,1127261.5992693293,1084068.4007306707,1130850.0,1080480.0,1 +19980615 00:00,1088100,1099100,1078800,1080000,1104165.0,1128359.8982225591,1079970.1017774409,1130070.0,1078260.0,1 +19980616 00:00,1084100,1091600,1077500,1090600,1103275.0,1128083.0531279664,1078466.9468720336,1128917.5,1077632.5,1 +19980617 00:00,1101600,1117800,1099400,1112500,1103370.0,1128303.7602458994,1078436.2397541006,1130370.0,1076370.0,1 +19980618 00:00,1111900,1114400,1107500,1111600,1102810.0,1126442.1729851488,1079177.8270148512,1129112.5,1076507.5,1 +19980619 00:00,1110600,1112300,1096300,1100300,1101980.0,1124723.755186864,1079236.244813136,1128380.0,1075580.0,1 +19980622 00:00,1102500,1110600,1100600,1103800,1101590.0,1123924.3591804197,1079255.6408195803,1127922.5,1075257.5,1 +19980623 00:00,1110900,1121900,1110000,1119700,1102810.0,1126273.8360035182,1079346.1639964818,1128512.5,1077107.5,1 +19980624 00:00,1121600,1136900,1116100,1134700,1104730.0,1131761.9144716018,1077698.0855283982,1130245.0,1079215.0,-1 +19980625 00:00,1139100,1144700,1128100,1130000,1106230.0,1135298.2713624323,1077161.7286375677,1131752.5,1080707.5,-1 +19980626 00:00,1133100,1138400,1131300,1134100,1108245.0,1139118.449758652,1077371.550241348,1133325.0,1083165.0,-1 +19980629 00:00,1142500,1146900,1138000,1138900,1110440.0,1143406.0067342103,1077473.9932657897,1135235.0,1085645.0,-1 +19980630 00:00,1139100,1141900,1130600,1133600,1112325.0,1146052.4294899567,1078597.5705100433,1137082.5,1087567.5,-1 +19980701 00:00,1140600,1149400,1136300,1149400,1115545.0,1150497.0514419398,1080592.9485580602,1140010.0,1091080.0,-1 +19980702 00:00,1147200,1148800,1142500,1146300,1117905.0,1154435.1779355097,1081374.8220644903,1141387.5,1094422.5,-1 +19980706 00:00,1147800,1158400,1145600,1157800,1119890.0,1160349.9505684325,1079430.0494315675,1142832.5,1096947.5,-1 +19980707 00:00,1159800,1161300,1152800,1155600,1121730.0,1165068.9939892471,1078391.0060107529,1144702.5,1098757.5,-1 +19980708 00:00,1158800,1169400,1157500,1168100,1123995.0,1171823.3796505798,1076166.6203494202,1147245.0,1100745.0,-1 +19980709 00:00,1162800,1167200,1156300,1160000,1126305.0,1176351.9169879623,1076258.0830120377,1149082.5,1103527.5,-1 +19980710 00:00,1160300,1169100,1150600,1165300,1129740.0,1180584.2877814213,1078895.7122185787,1151955.0,1107525.0,-1 +19980713 00:00,1165600,1168400,1160600,1167500,1132990.0,1184755.3513462432,1081224.6486537568,1154147.5,1111832.5,-1 +19980714 00:00,1169400,1181600,1169400,1178100,1137895.0,1187177.9575005397,1088612.0424994603,1158332.5,1117457.5,-1 +19980715 00:00,1180600,1182800,1174400,1175600,1142145.0,1188980.1353152737,1095309.8646847263,1162155.0,1122135.0,-1 +19980716 00:00,1176900,1185900,1170600,1184400,1145740.0,1193939.2282095887,1097540.7717904113,1164857.5,1126622.5,-1 +19980717 00:00,1186300,1190000,1183100,1187500,1149535.0,1198332.8390915007,1100737.1609084993,1168652.5,1130417.5,-1 +19980720 00:00,1187500,1192300,1179400,1185000,1153770.0,1199335.605449725,1108204.394550275,1172655.0,1134885.0,-1 +19980721 00:00,1190000,1190000,1162800,1165300,1156845.0,1196412.5359354105,1117277.4640645895,1176997.5,1136692.5,-1 +19980722 00:00,1163400,1195900,1155300,1166300,1159175.0,1195033.1022922297,1123316.8977077703,1181015.0,1137335.0,-1 +19980723 00:00,1163100,1168400,1138800,1141900,1159535.0,1194537.3584919644,1124532.6415080356,1182035.0,1137035.0,-1 +19980724 00:00,1149700,1150900,1128800,1141600,1160115.0,1193486.98076231,1126743.01923769,1183027.5,1137202.5,-1 +19980727 00:00,1136300,1150000,1128400,1149800,1160900.0,1192477.6503242403,1129322.3496757597,1184802.5,1136997.5,-1 +19980728 00:00,1144400,1146600,1118800,1133100,1160610.0,1193084.2913702517,1128135.7086297483,1185877.5,1135342.5,-1 +19980729 00:00,1137200,1141300,1122500,1126600,1160260.0,1194016.7415489114,1126503.2584510886,1186090.0,1134430.0,-1 +19980730 00:00,1136300,1145900,1134100,1143400,1159960.0,1194200.642517336,1125719.357482664,1186052.5,1133867.5,-1 +19980731 00:00,1143400,1145000,1113100,1120600,1158675.0,1196600.4466025122,1120749.5533974878,1186642.5,1130707.5,-1 +19980803 00:00,1117800,1124200,1110300,1113800,1156475.0,1199154.9660262284,1113795.0339737716,1184525.0,1128425.0,-1 +19980804 00:00,1122200,1122200,1072500,1076100,1152500.0,1207729.0865396124,1097270.9134603876,1183640.0,1121360.0,-1 +19980805 00:00,1079400,1088800,1055900,1081600,1148175.0,1210881.6144836412,1085468.3855163588,1180747.5,1115602.5,-1 +19980806 00:00,1081300,1095200,1075600,1090900,1144720.0,1211895.072757683,1077544.927242317,1177877.5,1111562.5,-1 +19980807 00:00,1096900,1105900,1084700,1090300,1140970.0,1211424.5271788833,1070515.4728211167,1174330.0,1107610.0,-1 +19980810 00:00,1087500,1096600,1081900,1085900,1136890.0,1210122.694884184,1063657.305115816,1170767.5,1103012.5,-1 +19980811 00:00,1067800,1074400,1055000,1070600,1131515.0,1207585.2642298553,1055444.7357701447,1166652.5,1096377.5,-1 +19980812 00:00,1077500,1088100,1075000,1085000,1126985.0,1202804.7408331102,1051165.2591668898,1162805.0,1091165.0,-1 +19980813 00:00,1088100,1096600,1076300,1076400,1121585.0,1195642.1745342745,1047527.8254657255,1157780.0,1085390.0,-1 +19980814 00:00,1083400,1087200,1057800,1064800,1115450.0,1186933.2987487288,1043966.7012512713,1153332.5,1077567.5,-1 +19980817 00:00,1060000,1089400,1055000,1085000,1110450.0,1175472.0116575917,1045427.9883424082,1149945.0,1070955.0,-1 +19980818 00:00,1090000,1105900,1087800,1102500,1107310.0,1167304.6630959788,1047315.3369040212,1146332.5,1068287.5,-1 +19980819 00:00,1110900,1110900,1096300,1100000,1103995.0,1157568.5559768062,1050421.4440231938,1141067.5,1066922.5,-1 +19980820 00:00,1096900,1104100,1091600,1092500,1101525.0,1152365.8448002194,1050684.1551997806,1137315.0,1065735.0,-1 +19980821 00:00,1081900,1087200,1055000,1083800,1098635.0,1146520.4581266588,1050749.5418733412,1135580.0,1061690.0,-1 +19980824 00:00,1092500,1099400,1083100,1090600,1095675.0,1137475.8552544084,1053874.1447455916,1132222.5,1059127.5,-1 +19980825 00:00,1103800,1112500,1086400,1095000,1093770.0,1131885.0941229325,1055654.9058770675,1129950.0,1057590.0,-1 +19980826 00:00,1082800,1096300,1077500,1085000,1091690.0,1126836.487733485,1056543.512266515,1127870.0,1055510.0,1 +19980827 00:00,1070000,1078400,1038900,1042500,1086645.0,1119548.0986382742,1053741.9013617258,1124835.0,1048455.0,1 +19980828 00:00,1049700,1057200,1021600,1030000,1082115.0,1119687.238421473,1044542.7615785272,1120582.5,1043647.5,1 +19980831 00:00,1037500,1040200,950000,962500,1074550.0,1136546.1127813673,1012553.8872186329,1118740.0,1030360.0,-1 +19980901 00:00,960600,1005600,936300,996900,1070590.0,1141203.1404201796,999976.8595798204,1116250.0,1024930.0,-1 +19980902 00:00,998100,1017500,987800,990000,1066010.0,1144603.992136804,987416.0078631961,1111430.0,1020590.0,-1 +19980903 00:00,976300,993800,966900,985200,1060725.0,1145856.8947281218,975593.1052718783,1106692.5,1014757.5,-1 +19980904 00:00,994400,998100,957800,976300,1055025.0,1146502.0982268238,963547.901773176,1102425.0,1007625.0,-1 +19980908 00:00,1008800,1029700,998100,1025900,1052025.0,1143190.0124773753,960859.9875226247,1102327.5,1001722.5,-1 +19980909 00:00,1027500,1031300,1004800,1007500,1048870.0,1141599.3502619315,956140.6497380683,1098842.5,998897.5,-1 +19980910 00:00,984400,993400,968100,982500,1043745.0,1139210.1239982434,948279.8760017565,1095360.0,992130.0,-1 +19980911 00:00,981900,1015000,970000,1012500,1040550.0,1135706.3870688668,945393.6129311332,1094017.5,987082.5,-1 +19980914 00:00,1028800,1044500,1020900,1031600,1038890.0,1133452.802411942,944327.197588058,1092552.5,985227.5,-1 +19980915 00:00,1028800,1043100,1022800,1042000,1036740.0,1128937.297140426,944542.702859574,1089345.0,984135.0,-1 +19980916 00:00,1047500,1052500,1031600,1050000,1034115.0,1121539.6481262578,946690.3518737422,1086720.0,981510.0,-1 +19980917 00:00,1022500,1030300,1017800,1022300,1030230.0,1112342.4131906985,948117.5868093015,1084155.0,976305.0,-1 +19980918 00:00,1023800,1024100,1010900,1019700,1026590.0,1103636.1913400006,949543.8086599993,1080567.5,972612.5,-1 +19980921 00:00,996300,1034100,989400,1021900,1023495.0,1095935.3333785813,951054.6666214187,1078012.5,968977.5,-1 +19980922 00:00,1035000,1036600,1021600,1030000,1020465.0,1086182.0076920732,954747.9923079269,1074885.0,966045.0,-1 +19980923 00:00,1038800,1070000,1037800,1066300,1019030.0,1079192.815758573,958867.184241427,1074492.5,963567.5,-1 +19980924 00:00,1063100,1068100,1032500,1043800,1016970.0,1070401.1931365938,963538.8068634061,1073692.5,960247.5,1 +19980925 00:00,1031300,1054200,1026300,1043000,1016995.0,1070474.3969674304,963515.6030325696,1072352.5,961637.5,1 +19980928 00:00,1053100,1063100,1042500,1049100,1017950.0,1072983.7896205594,962916.2103794406,1072182.5,963717.5,-1 +19980929 00:00,1053800,1059400,1033800,1049400,1022295.0,1072654.5264076223,971935.4735923777,1071682.5,972907.5,-1 +19980930 00:00,1035000,1043100,1013800,1018400,1023370.0,1072416.0232842583,974323.9767157418,1070230.0,976510.0,-1 +19981001 00:00,1000300,1015500,980900,986300,1023185.0,1072758.1893264898,973611.8106735102,1070630.0,975740.0,-1 +19981002 00:00,988800,1008800,972200,1003100,1024080.0,1071476.2698954253,976683.7301045747,1072252.5,975907.5,1 +19981005 00:00,995900,1000000,963400,990000,1024765.0,1069712.003237146,979817.9967628542,1072892.5,976637.5,1 +19981006 00:00,1007500,1012800,975300,985300,1022735.0,1070849.3336231522,974620.6663768478,1069670.0,975800.0,-1 +19981007 00:00,986300,1000300,957500,972200,1020970.0,1073570.9923860757,968369.0076139242,1069127.5,972812.5,-1 +19981008 00:00,945600,967500,922200,962200,1019955.0,1076146.9736261328,963763.0263738672,1068907.5,971002.5,-1 +19981009 00:00,970000,995600,940600,986300,1018645.0,1076663.0135819903,960626.9864180097,1068347.5,968942.5,-1 +19981012 00:00,1006300,1014400,996900,997800,1016955.0,1075333.0943505352,958576.9056494647,1066365.0,967545.0,-1 +19981013 00:00,995600,1004100,987500,995300,1014620.0,1072538.3079863354,956701.6920136646,1063752.5,965487.5,-1 +19981014 00:00,989400,1018100,988400,1005000,1012370.0,1068069.5547558507,956670.4452441494,1062162.5,962577.5,-1 +19981015 00:00,1001300,1072500,999400,1050300,1013770.0,1071758.0711870985,955781.9288129015,1066630.0,960910.0,-1 +19981016 00:00,1061300,1067500,1050000,1056600,1015615.0,1076515.3210172164,954714.6789827837,1068797.5,962432.5,-1 +19981019 00:00,1056900,1068100,1055000,1063400,1017690.0,1082035.9990986232,953344.000901377,1068502.5,966877.5,-1 +19981020 00:00,1075600,1088000,1060900,1065000,1019440.0,1086860.305546623,952019.694453377,1071160.0,967720.0,-1 +19981021 00:00,1068800,1076300,1058800,1071300,1019690.0,1087836.662427444,951543.3375725561,1069722.5,969657.5,-1 +19981022 00:00,1067800,1084700,1061600,1080000,1021500.0,1093902.0994170748,949097.9005829251,1070595.0,972405.0,-1 +19981023 00:00,1079700,1080000,1067800,1071300,1022915.0,1097999.0402482445,947830.9597517555,1070832.5,974997.5,-1 +19981026 00:00,1077200,1085600,1067800,1075500,1024235.0,1101994.5595409337,946475.4404590664,1071942.5,976527.5,-1 +19981027 00:00,1084400,1089700,1062800,1066300,1025080.0,1104269.206335207,945890.7936647929,1072885.0,977275.0,-1 +19981028 00:00,1065600,1078100,1060300,1067800,1027550.0,1108806.3966712775,946293.6033287225,1074020.0,981080.0,-1 +19981029 00:00,1070900,1089700,1066300,1089700,1032720.0,1115953.9978614508,949486.0021385492,1078132.5,987307.5,-1 +19981030 00:00,1101300,1109100,1095000,1100000,1037565.0,1124535.4150846712,950594.5849153288,1081687.5,993442.5,-1 +19981102 00:00,1108100,1117500,1101900,1114800,1043805.0,1134074.9612274205,953535.0387725795,1086262.5,1001347.5,-1 +19981103 00:00,1115900,1118100,1107500,1111300,1050105.0,1140749.657316358,959460.3426836418,1090545.0,1009665.0,-1 +19981104 00:00,1124700,1130900,1110900,1118400,1057415.0,1145288.278646014,969541.7213539861,1096145.0,1018685.0,-1 +19981105 00:00,1115300,1138100,1111300,1137300,1066170.0,1149105.2542649987,983234.7457350012,1103160.0,1029180.0,-1 +19981106 00:00,1134700,1145000,1133100,1142800,1073995.0,1154815.3062355,993174.6937645,1107752.5,1040237.5,-1 +19981109 00:00,1139400,1142500,1125000,1131400,1080675.0,1157169.2056629127,1004180.7943370872,1113660.0,1047690.0,-1 +19981110 00:00,1130000,1139400,1125000,1126900,1087255.0,1155429.4079548917,1019080.5920451083,1120075.0,1054435.0,-1 +19981111 00:00,1138100,1140600,1118900,1123800,1093195.0,1151680.4332291384,1034709.5667708616,1125415.0,1060975.0,-1 +19981112 00:00,1123100,1131300,1116900,1120300,1096695.0,1152824.1893759388,1040565.8106240612,1124512.5,1068877.5,-1 +19981113 00:00,1122200,1130600,1121300,1127700,1100250.0,1154753.8897694468,1045746.1102305533,1127527.5,1072972.5,-1 +19981116 00:00,1142200,1143600,1128900,1138400,1104000.0,1158165.708709478,1049834.291290522,1131487.5,1076512.5,-1 +19981117 00:00,1136600,1156300,1130000,1143400,1107920.0,1161573.8013564742,1054266.1986435258,1135347.5,1080492.5,-1 +19981118 00:00,1143100,1149400,1135000,1147500,1111730.0,1165262.9468645244,1058197.0531354756,1138925.0,1084535.0,-1 +19981119 00:00,1152800,1159100,1146300,1155000,1115480.0,1170093.4269204927,1060866.5730795073,1141902.5,1089057.5,-1 +19981120 00:00,1163600,1167500,1158400,1166300,1120230.0,1175171.2085778972,1065288.7914221028,1146675.0,1093785.0,-1 +19981123 00:00,1174700,1192200,1171600,1191600,1126035.0,1185215.4452500993,1066854.5547499007,1153087.5,1098982.5,-1 +19981124 00:00,1190000,1196600,1184500,1186900,1132065.0,1190238.3366758346,1073891.6633241654,1158007.5,1106122.5,-1 +19981125 00:00,1189400,1191900,1181600,1188800,1138115.0,1193391.5872680289,1082838.4127319711,1163495.0,1112735.0,-1 +19981127 00:00,1194700,1197200,1190000,1195000,1143380.0,1199263.793715173,1087496.206284827,1167635.0,1119125.0,-1 +19981130 00:00,1190200,1193800,1166600,1166900,1146725.0,1199758.1547241912,1093691.8452758088,1171655.0,1121795.0,-1 +19981201 00:00,1161300,1180300,1152200,1178100,1149890.0,1202477.8655204792,1097302.1344795208,1175615.0,1124165.0,-1 +19981202 00:00,1172200,1179100,1160000,1175000,1153075.0,1203603.9174631715,1102546.0825368285,1179437.5,1126712.5,-1 +19981203 00:00,1172500,1183100,1151900,1152800,1154795.0,1202762.5087950167,1106827.4912049833,1181997.5,1127592.5,-1 +19981204 00:00,1166300,1188800,1155900,1179700,1156915.0,1205347.851454359,1108482.148545641,1184807.5,1129022.5,-1 +19981207 00:00,1180600,1195300,1180000,1192500,1159400.0,1209743.3411684206,1109056.6588315794,1187570.0,1131230.0,-1 +19981208 00:00,1185300,1197500,1175000,1184700,1162065.0,1211837.0915775097,1112292.9084224903,1190587.5,1133542.5,-1 +19981209 00:00,1186900,1189700,1178800,1188100,1165125.0,1213374.9274610854,1116875.0725389146,1193385.0,1136865.0,-1 +19981210 00:00,1188400,1188400,1167200,1168100,1167340.0,1211709.4669789935,1122970.5330210065,1195562.5,1139117.5,-1 +19981211 00:00,1164400,1173400,1155600,1170600,1169855.0,1208622.5366769673,1131087.4633230327,1198332.5,1141377.5,-1 +19981214 00:00,1161600,1164100,1139100,1144700,1170705.0,1206358.5818677451,1135051.4181322549,1200772.5,1140637.5,-1 +19981215 00:00,1146900,1167500,1145300,1166300,1172100.0,1204635.3961094683,1139564.6038905317,1202685.0,1141515.0,-1 +19981216 00:00,1171300,1171300,1157500,1164100,1173135.0,1203173.793251394,1143096.206748606,1202782.5,1143487.5,-1 +19981217 00:00,1172200,1185600,1170200,1185000,1175010.0,1203027.7015474145,1146992.2984525855,1205190.0,1144830.0,1 +19981218 00:00,1183100,1191300,1178800,1190200,1176770.0,1203948.4547022085,1149591.5452977915,1206927.5,1146612.5,1 +19981221 00:00,1192500,1213400,1190000,1203100,1178610.0,1207624.7479740907,1149595.2520259093,1209585.0,1147635.0,1 +19981222 00:00,1204100,1212200,1191900,1205300,1179295.0,1210096.0048537382,1148493.9951462618,1209850.0,1148740.0,-1 +19981223 00:00,1211900,1231900,1208100,1228100,1181355.0,1218725.3880097598,1143984.6119902402,1212997.5,1149712.5,-1 +19981224 00:00,1231600,1238800,1222800,1226900,1183260.0,1225518.8878225635,1141001.1121774365,1215330.0,1151190.0,-1 +19981228 00:00,1232500,1233100,1220000,1226300,1184825.0,1230856.939998223,1138793.060001777,1217247.5,1152402.5,-1 +19981229 00:00,1227200,1244400,1221300,1243100,1188635.0,1240363.2234375007,1136906.7765624993,1220660.0,1156610.0,-1 +19981230 00:00,1239400,1247500,1230300,1233800,1191420.0,1246470.5440481745,1136369.4559518255,1222627.5,1160212.5,-1 +19981231 00:00,1233100,1239400,1224700,1228800,1194110.0,1250917.9888748052,1137302.0111251948,1224987.5,1163232.5,-1 +19990104 00:00,1233800,1252200,1217200,1228800,1197910.0,1253306.4222671464,1142513.5777328536,1229072.5,1166747.5,-1 +19990105 00:00,1229400,1248800,1229400,1244400,1201145.0,1259393.1407428598,1142896.8592571402,1231107.5,1171182.5,-1 +19990106 00:00,1258100,1276300,1257500,1275000,1205270.0,1271608.136844503,1138931.863155497,1236455.0,1174085.0,-1 +19990107 00:00,1263800,1272200,1257800,1269400,1209505.0,1280687.2583232648,1138322.7416767352,1240292.5,1178717.5,-1 +19990108 00:00,1281900,1285000,1259700,1275000,1213850.0,1289729.3911414687,1137970.6088585313,1245717.5,1181982.5,-1 +19990111 00:00,1276900,1276900,1252200,1262800,1218585.0,1294272.575598641,1142897.424401359,1250715.0,1186455.0,-1 +19990112 00:00,1262200,1262200,1238100,1240000,1222055.0,1294936.0942563296,1149173.9057436704,1254702.5,1189407.5,-1 +19990113 00:00,1204100,1251300,1203800,1233100,1226475.0,1290202.1331537832,1162747.8668462168,1260322.5,1192627.5,-1 +19990114 00:00,1236300,1239100,1209100,1211600,1228740.0,1286711.3170455873,1170768.6829544127,1263127.5,1194352.5,-1 +19990115 00:00,1223800,1247800,1220300,1243100,1232690.0,1282728.381268782,1182651.618731218,1268757.5,1196622.5,-1 +19990119 00:00,1253000,1274700,1235000,1252800,1236080.0,1281729.6045985066,1190430.3954014934,1273512.5,1198647.5,-1 +19990120 00:00,1260900,1279400,1250300,1256300,1239385.0,1280627.806645523,1198142.193354477,1278062.5,1200707.5,-1 +19990121 00:00,1255800,1258400,1232200,1235900,1241025.0,1278831.3420605592,1203218.6579394408,1279912.5,1202137.5,1 +19990122 00:00,1221300,1238400,1217800,1225600,1242040.0,1276933.1167997357,1207146.8832002643,1280950.0,1203130.0,1 +19990125 00:00,1232800,1240000,1219100,1236300,1242450.0,1276867.7570448744,1208032.2429551256,1280932.5,1203967.5,1 +19990126 00:00,1241300,1257200,1236300,1255000,1243855.0,1277911.2167599397,1209798.7832400603,1282705.0,1205005.0,1 +19990127 00:00,1263800,1266300,1244100,1244700,1244775.0,1277864.9909338157,1211685.0090661843,1284307.5,1205242.5,1 +19990128 00:00,1252500,1269700,1251900,1266600,1245950.0,1280361.1900404505,1211538.8099595495,1285625.0,1206275.0,1 +19990129 00:00,1273400,1283000,1254100,1278800,1248200.0,1284944.7955498463,1211455.2044501537,1288752.5,1207647.5,1 +19990201 00:00,1286900,1286900,1270000,1270900,1250305.0,1287186.4574007047,1213423.5425992953,1291022.5,1209587.5,1 +19990202 00:00,1270800,1272200,1247700,1262800,1252005.0,1287885.5504417086,1216124.4495582914,1291935.0,1212075.0,1 +19990203 00:00,1256900,1279400,1256600,1271900,1253380.0,1290087.5795987695,1216672.4204012305,1293520.0,1213240.0,1 +19990204 00:00,1273800,1275000,1248100,1248400,1252050.0,1287431.4358103229,1216668.5641896771,1291815.0,1212285.0,1 +19990205 00:00,1256600,1256600,1232200,1240000,1250580.0,1285394.3418722802,1215765.6581277198,1290885.0,1210275.0,1 +19990208 00:00,1250900,1250900,1233400,1243800,1249020.0,1282068.9092104414,1215971.0907895586,1288740.0,1209300.0,1 +19990209 00:00,1243800,1245000,1215600,1218600,1246810.0,1281735.5150284143,1211884.4849715857,1286882.5,1206737.5,1 +19990210 00:00,1221300,1230000,1213300,1226900,1246155.0,1282044.8578988549,1210265.1421011451,1285627.5,1206682.5,1 +19990211 00:00,1230600,1256900,1225000,1256900,1247345.0,1283002.0035196454,1211687.9964803546,1285647.5,1209042.5,1 +19990212 00:00,1248100,1255000,1226300,1235000,1248515.0,1280777.7509676407,1216252.2490323593,1286862.5,1210167.5,1 +19990216 00:00,1247500,1256300,1233800,1243800,1248550.0,1280790.6885782545,1216309.3114217455,1285870.0,1211230.0,1 +19990217 00:00,1231900,1253600,1222500,1227500,1247285.0,1280722.5402803496,1213847.4597196504,1283960.0,1210610.0,1 +19990218 00:00,1231900,1243800,1222200,1239400,1246440.0,1279777.570397376,1213102.429602624,1282552.5,1210327.5,1 +19990219 00:00,1240000,1257500,1233800,1239400,1246615.0,1279765.6425277097,1213464.3574722903,1282540.0,1210690.0,1 +19990222 00:00,1244400,1277200,1242800,1276900,1249180.0,1283352.4801558212,1215007.5198441788,1286395.0,1211965.0,1 +19990223 00:00,1275900,1285000,1265900,1275000,1251115.0,1286511.8515549053,1215718.1484450947,1288195.0,1214035.0,1 +19990224 00:00,1278400,1288400,1254100,1254100,1251070.0,1286449.2651139053,1215690.7348860947,1289155.0,1212985.0,1 +19990225 00:00,1245300,1252800,1225900,1247500,1251210.0,1286509.399428319,1215910.600571681,1289745.0,1212675.0,1 +19990226 00:00,1247500,1248400,1228100,1239100,1249835.0,1284769.8694000707,1214900.1305999293,1288017.5,1211652.5,1 +19990301 00:00,1236600,1243100,1208800,1237800,1247785.0,1280416.4127797128,1215153.5872202872,1286372.5,1209197.5,1 +19990302 00:00,1245000,1253100,1223100,1228100,1245645.0,1277537.4740338533,1213752.5259661467,1285215.0,1206075.0,1 +19990303 00:00,1230900,1235600,1217800,1231300,1244070.0,1275526.3888582273,1212613.6111417727,1283137.5,1205002.5,1 +19990304 00:00,1240600,1252300,1232700,1250000,1242975.0,1271903.178304207,1214046.821695793,1281907.5,1204042.5,1 +19990305 00:00,1275000,1281300,1259200,1278100,1244460.0,1277153.8159290103,1211766.1840709897,1283722.5,1205197.5,1 +19990308 00:00,1282800,1288000,1272500,1285200,1246720.0,1283820.2210236003,1209619.7789763997,1285315.0,1208125.0,1 +19990309 00:00,1281300,1299400,1274400,1282500,1248655.0,1288851.8394279948,1208458.1605720052,1287812.5,1209497.5,-1 +19990310 00:00,1284700,1292200,1277800,1290300,1252240.0,1293840.2115379237,1210639.7884620763,1290272.5,1214207.5,-1 +19990311 00:00,1296900,1311900,1288800,1302200,1256005.0,1301222.849351777,1210787.150648223,1294517.5,1217492.5,-1 +19990312 00:00,1310000,1310300,1292200,1295300,1257925.0,1306283.7375765746,1209566.2624234254,1295402.5,1220447.5,-1 +19990315 00:00,1299400,1311900,1295000,1311600,1261755.0,1314204.80362213,1209305.19637787,1298205.0,1225305.0,-1 +19990316 00:00,1311300,1316600,1304700,1309800,1265055.0,1320774.0263734031,1209335.9736265969,1300710.0,1229400.0,-1 +19990317 00:00,1306900,1309400,1296300,1302500,1268805.0,1324002.0098827826,1213607.9901172174,1303140.0,1234470.0,-1 +19990318 00:00,1297800,1323400,1297500,1321600,1272915.0,1330912.1818280853,1214917.8181719147,1307572.5,1238257.5,-1 +19990319 00:00,1323100,1326300,1298400,1300600,1275975.0,1333026.3759693839,1218923.6240306161,1310947.5,1241002.5,-1 +19990322 00:00,1300600,1305900,1294200,1299100,1277085.0,1335022.1478414324,1219147.8521585676,1310100.0,1244070.0,-1 +19990323 00:00,1293100,1296300,1257000,1264100,1276540.0,1334749.7723754353,1218330.2276245647,1311280.0,1241800.0,-1 +19990324 00:00,1268400,1271600,1256300,1269400,1277305.0,1334711.6363759453,1219898.3636240547,1310620.0,1243990.0,-1 +19990325 00:00,1280600,1292500,1277500,1291300,1279495.0,1335511.4431216407,1223478.5568783593,1312427.5,1246562.5,-1 +19990326 00:00,1286300,1291300,1277200,1284700,1281775.0,1334653.3084071341,1228896.6915928659,1314242.5,1249307.5,-1 +19990329 00:00,1291600,1314400,1291600,1312200,1285495.0,1335884.8590988305,1235105.1409011695,1317617.5,1253372.5,-1 +19990330 00:00,1299400,1312200,1295600,1303400,1289260.0,1332707.8722148738,1245812.1277851262,1320377.5,1258142.5,-1 +19990331 00:00,1311600,1316100,1284400,1286300,1292010.0,1326467.9105576645,1257552.0894423355,1324170.0,1259850.0,-1 +19990401 00:00,1296900,1296900,1281300,1293800,1294200.0,1322762.8429957523,1265637.1570042477,1325955.0,1262445.0,1 +19990405 00:00,1309400,1323800,1302500,1323800,1296485.0,1326789.1432810763,1266180.8567189237,1328142.5,1264827.5,1 +19990406 00:00,1321900,1329800,1311600,1319400,1298195.0,1329598.7243014264,1266791.2756985736,1330055.0,1266335.0,1 +19990407 00:00,1326900,1333800,1313800,1328800,1300510.0,1333718.7879935417,1267301.2120064583,1331995.0,1269025.0,-1 +19990408 00:00,1331900,1347800,1322800,1345300,1303260.0,1341377.6284676788,1265142.3715323212,1335540.0,1270980.0,-1 +19990409 00:00,1344400,1356900,1335900,1348800,1305590.0,1348552.6768253562,1262627.3231746438,1337712.5,1273467.5,-1 +19990412 00:00,1334700,1362500,1332200,1360600,1308855.0,1357713.9183261357,1259996.0816738643,1341892.5,1275817.5,-1 +19990413 00:00,1362500,1364700,1340300,1351900,1310870.0,1363215.2041738306,1258524.7958261694,1344470.0,1277270.0,-1 +19990414 00:00,1360600,1360600,1326900,1330300,1311895.0,1364914.750093715,1258875.249906285,1347130.0,1276660.0,-1 +19990415 00:00,1334400,1335600,1310000,1326300,1313085.0,1366275.9494181105,1259894.0505818895,1349227.5,1276942.5,-1 +19990416 00:00,1329100,1329100,1311900,1321300,1313070.0,1366251.5043036581,1259888.4956963419,1348560.0,1277580.0,-1 +19990419 00:00,1326900,1345300,1283800,1289100,1312495.0,1366446.477273565,1258543.522726435,1350505.0,1274485.0,-1 +19990420 00:00,1298100,1310300,1288800,1306300,1312855.0,1366539.5778599405,1259170.4221400595,1351600.0,1274110.0,-1 +19990421 00:00,1310600,1337800,1257800,1336900,1316495.0,1366186.6280675125,1266803.3719324875,1358082.5,1274907.5,-1 +19990422 00:00,1351300,1362500,1343900,1359700,1321010.0,1369150.0415454744,1272869.9584545256,1363370.0,1278650.0,-1 +19990423 00:00,1358800,1367500,1350000,1357500,1324320.0,1372934.878381006,1275705.121618994,1366260.0,1282380.0,-1 +19990426 00:00,1365000,1368100,1354700,1361300,1328150.0,1375734.5142877386,1280565.4857122614,1370037.5,1286262.5,-1 +19990427 00:00,1371300,1375000,1358400,1365600,1330820.0,1380472.6978119013,1281167.3021880987,1371725.0,1289915.0,-1 +19990428 00:00,1364400,1372500,1350000,1353400,1333320.0,1382227.978899153,1284412.021100847,1374667.5,1291972.5,-1 +19990429 00:00,1355600,1360600,1338100,1345600,1336285.0,1380384.9897959172,1292185.0102040828,1376942.5,1295627.5,-1 +19990430 00:00,1350900,1356300,1315000,1334700,1338330.0,1377922.7821704915,1298737.2178295085,1380915.0,1295745.0,1 +19990503 00:00,1334400,1357200,1330300,1356300,1339955.0,1379696.4883968881,1300213.5116031119,1382307.5,1297602.5,1 +19990504 00:00,1351300,1358100,1331300,1333100,1340640.0,1379400.8771830567,1301879.1228169433,1383637.5,1297642.5,1 +19990505 00:00,1339400,1350000,1318400,1349700,1341685.0,1380239.0801991178,1303130.9198008822,1385552.5,1297817.5,1 +19990506 00:00,1344400,1351300,1323800,1335000,1341170.0,1379792.278544902,1302547.721455098,1385225.0,1297115.0,1 +19990507 00:00,1345000,1349800,1334400,1346300,1341045.0,1379583.784360693,1302506.215639307,1384680.0,1297410.0,1 +19990510 00:00,1348400,1357200,1335300,1342200,1340125.0,1377616.8591163468,1302633.1408836532,1383130.0,1297120.0,1 +19990511 00:00,1353100,1368800,1257800,1357200,1340390.0,1378283.7936870933,1302496.2063129067,1389890.0,1290890.0,1 +19990512 00:00,1357500,1372200,1315000,1366300,1342190.0,1381393.1070197248,1302986.8929802752,1393452.5,1290927.5,1 +19990513 00:00,1372500,1380000,1368100,1370200,1344385.0,1384684.1947810375,1304085.8052189625,1394755.0,1294015.0,1 +19990514 00:00,1345600,1362500,1333100,1343000,1345470.0,1384368.7968965622,1306571.2031034378,1397332.5,1293607.5,1 +19990517 00:00,1336300,1344800,1323100,1343100,1348170.0,1377317.2880385122,1319022.7119614878,1397047.5,1299292.5,1 +19990518 00:00,1345300,1349800,1326300,1336300,1349670.0,1372432.3461005231,1326907.6538994769,1398697.5,1300642.5,1 +19990519 00:00,1344700,1348800,1332500,1348100,1350230.0,1372247.0025207791,1328212.9974792209,1394480.0,1305980.0,1 +19990520 00:00,1351300,1355900,1300600,1343100,1349400.0,1371176.6847798282,1327623.3152201718,1395877.5,1302922.5,1 +19990521 00:00,1341300,1346900,1195800,1334200,1348235.0,1370637.7029619196,1325832.2970380804,1404732.5,1291737.5,1 +19990524 00:00,1338400,1338400,1303900,1310900,1345715.0,1372568.6980693536,1318861.3019306464,1403795.0,1287635.0,1 +19990525 00:00,1313800,1323400,1286900,1288400,1341855.0,1377060.7083439603,1306649.2916560397,1401427.5,1282282.5,1 +19990526 00:00,1293100,1310000,1280900,1306600,1339515.0,1377455.283341061,1301574.716658939,1399582.5,1279447.5,1 +19990527 00:00,1298400,1302800,1280000,1284400,1336455.0,1381200.2556144225,1291709.7443855775,1396830.0,1276080.0,1 +19990528 00:00,1290000,1307500,1285900,1305900,1335015.0,1381704.925037421,1288325.074962579,1394025.0,1276005.0,1 +19990601 00:00,1301300,1301600,1283800,1298800,1332140.0,1380291.6521004213,1283988.3478995787,1390790.0,1273490.0,1 +19990602 00:00,1297500,1301900,1206300,1297800,1330375.0,1380791.1035781228,1279958.8964218772,1394185.0,1266565.0,1 +19990603 00:00,1306900,1309100,1297800,1302800,1328030.0,1378992.4606941226,1277067.5393058774,1390317.5,1265742.5,1 +19990604 00:00,1314700,1331900,1309400,1319400,1327250.0,1378239.3910534338,1276260.6089465662,1389657.5,1264842.5,1 +19990607 00:00,1334400,1341900,1329100,1337500,1326810.0,1377283.513846373,1276336.486153627,1389750.0,1263870.0,1 +19990608 00:00,1333800,1338000,1315900,1321600,1325780.0,1375793.9020673253,1275766.0979326747,1388735.0,1262825.0,1 +19990609 00:00,1324100,1330900,1318100,1321600,1324000.0,1371903.736806224,1276096.263193776,1379590.0,1268410.0,1 +19990610 00:00,1314400,1315000,1295900,1309100,1321140.0,1365282.8771151134,1276997.1228848866,1374367.5,1267912.5,1 +19990611 00:00,1312200,1322200,1290900,1298100,1317535.0,1356540.14196872,1278529.85803128,1372082.5,1262987.5,1 +19990614 00:00,1306900,1307500,1295500,1297800,1315275.0,1353342.9852369416,1277207.0147630584,1367940.0,1262610.0,1 +19990615 00:00,1304700,1316600,1300800,1305900,1313415.0,1349443.6705277893,1277386.3294722107,1365862.5,1260967.5,1 +19990616 00:00,1323800,1338800,1321600,1334800,1313340.0,1349183.571250644,1277496.428749356,1366492.5,1260187.5,1 +19990617 00:00,1328800,1355600,1326300,1346600,1313265.0,1348822.4619454201,1277707.5380545799,1367392.5,1259137.5,1 +19990618 00:00,1340600,1346900,1333800,1343100,1313265.0,1348822.4619454201,1277707.5380545799,1364227.5,1262302.5,1 +19990621 00:00,1344700,1350000,1336600,1349400,1314025.0,1351913.1973706852,1276136.8026293148,1354660.0,1273390.0,1 +19990622 00:00,1340000,1351900,1333400,1337000,1315330.0,1354474.8642863913,1276185.1357136087,1354765.0,1275895.0,1 +19990623 00:00,1330000,1336300,1321300,1332800,1317550.0,1355346.8517207452,1279753.1482792548,1355425.0,1279675.0,1 +19990624 00:00,1328800,1338100,1306600,1316900,1318065.0,1355530.251900928,1280599.748099072,1356120.0,1280010.0,1 +19990625 00:00,1325900,1330200,1312500,1316600,1319675.0,1353836.9598383934,1285513.0401616066,1357062.5,1282287.5,1 +19990628 00:00,1326900,1336300,1324700,1333800,1321070.0,1355146.5080370628,1286993.4919629372,1358202.5,1283937.5,1 +19990629 00:00,1330000,1351300,1327800,1351300,1323695.0,1358583.7646671531,1288806.2353328469,1360932.5,1286457.5,1 +19990630 00:00,1346300,1375000,1338400,1367500,1327180.0,1364840.4620258436,1289519.5379741564,1359992.5,1294367.5,-1 +19990701 00:00,1370000,1385000,1360600,1380600,1331070.0,1373609.9153736816,1288530.0846263184,1364865.0,1297275.0,-1 +19990702 00:00,1381300,1393000,1379100,1391900,1334695.0,1384393.1076098478,1284996.8923901522,1367350.0,1302040.0,-1 +19990706 00:00,1392500,1407500,1385900,1387200,1337180.0,1391906.4323704734,1282453.5676295266,1369767.5,1304592.5,-1 +19990707 00:00,1390600,1397200,1385200,1395600,1340880.0,1400665.0683699534,1281094.9316300466,1372710.0,1309050.0,-1 +19990708 00:00,1390600,1406300,1387500,1395600,1344580.0,1408172.5027027559,1280987.4972972441,1376860.0,1312300.0,-1 +19990709 00:00,1400000,1404700,1393800,1402200,1349235.0,1415337.7767949274,1283132.2232050726,1380405.0,1318065.0,-1 +19990712 00:00,1409400,1409400,1395000,1400600,1354360.0,1419699.341900573,1289020.658099427,1384262.5,1324457.5,-1 +19990713 00:00,1393800,1399200,1386600,1395000,1359220.0,1421391.2666752094,1297048.7333247906,1389272.5,1329167.5,-1 +19990714 00:00,1400000,1402200,1387500,1398400,1363845.0,1423158.6906624432,1304531.3093375568,1393590.0,1334100.0,-1 +19990715 00:00,1407800,1488800,1403100,1411300,1367670.0,1428835.876107516,1306504.123892484,1401727.5,1333612.5,-1 +19990716 00:00,1412500,1421600,1407500,1420000,1371340.0,1435731.657844786,1306948.342155214,1404257.5,1338422.5,-1 +19990719 00:00,1421900,1422500,1405600,1410000,1374685.0,1439807.5698203011,1309562.4301796989,1407887.5,1341482.5,-1 +19990720 00:00,1401300,1404100,1375300,1378000,1376115.0,1440201.6686604945,1312028.3313395055,1410915.0,1341315.0,-1 +19990721 00:00,1380900,1389100,1370000,1378800,1378205.0,1439727.954252864,1316682.045747136,1413050.0,1343360.0,-1 +19990722 00:00,1374400,1380000,1354700,1361400,1379635.0,1438124.7691908593,1321145.2308091407,1415200.0,1344070.0,-1 +19990723 00:00,1366600,1370000,1351300,1357500,1381665.0,1433774.7409319985,1329555.2590680015,1416270.0,1347060.0,-1 +19990726 00:00,1348800,1361300,1346300,1350000,1383335.0,1428701.4314223635,1337968.5685776365,1417737.5,1348932.5,-1 +19990727 00:00,1360000,1372000,1353800,1365000,1384895.0,1425204.6750172959,1344585.3249827041,1419470.0,1350320.0,-1 +19990728 00:00,1362500,1373100,1355900,1367300,1385695.0,1423885.3377832666,1347504.6622167334,1419797.5,1351592.5,-1 +19990729 00:00,1349400,1352500,1333100,1343800,1384510.0,1426195.8681089887,1342824.1318910113,1418432.5,1350587.5,-1 +19990730 00:00,1348100,1353400,1328800,1330900,1382025.0,1429824.1579423738,1334225.8420576262,1415962.5,1348087.5,-1 +19990802 00:00,1327500,1347500,1325000,1329400,1378900.0,1431626.3880803532,1326173.6119196468,1413482.5,1344317.5,-1 +19990803 00:00,1337200,1338400,1313800,1323600,1375720.0,1433490.7746183136,1317949.2253816864,1410527.5,1340912.5,-1 +19990804 00:00,1327200,1338800,1305300,1306900,1371285.0,1435526.5838845838,1307043.4161154162,1407705.0,1334865.0,-1 +19990805 00:00,1308800,1317200,1288400,1315600,1367285.0,1434849.051832317,1299720.948167683,1404455.0,1330115.0,-1 +19990806 00:00,1312200,1320000,1295000,1300600,1362205.0,1433669.969740426,1290740.030259574,1400432.5,1323977.5,-1 +19990809 00:00,1305900,1318000,1297200,1300500,1357200.0,1431184.511892693,1283215.488107307,1395907.5,1318492.5,-1 +19990810 00:00,1298800,1301600,1270000,1282200,1351560.0,1430209.2314012032,1272910.7685987968,1391587.5,1311532.5,-1 +19990811 00:00,1296900,1305300,1286300,1305300,1346905.0,1424932.0844002261,1268877.9155997739,1387562.5,1306247.5,-1 +19990812 00:00,1306900,1318100,1300000,1300200,1341350.0,1415993.968276077,1266706.031723923,1376585.0,1306115.0,-1 +19990813 00:00,1316300,1332500,1311300,1331900,1336945.0,1402326.969226997,1271563.030773003,1373545.0,1300345.0,-1 +19990816 00:00,1331300,1339700,1322500,1333800,1333135.0,1389271.5219799017,1276998.4780200983,1369757.5,1296512.5,-1 +19990817 00:00,1344400,1351600,1331300,1347000,1331585.0,1384287.6858898103,1278882.3141101897,1367127.5,1296042.5,-1 +19990818 00:00,1342000,1343800,1334100,1335600,1329425.0,1377552.7830364127,1281297.2169635873,1364502.5,1294347.5,-1 +19990819 00:00,1323800,1332300,1316900,1328800,1327795.0,1373634.4360785559,1281955.5639214441,1362377.5,1293212.5,-1 +19990820 00:00,1330600,1339100,1326900,1338800,1326860.0,1370967.8405728505,1282752.1594271495,1360955.0,1292765.0,-1 +19990823 00:00,1348100,1364500,1346600,1363900,1327555.0,1373499.2042046655,1281610.7957953345,1362452.5,1292657.5,-1 +19990824 00:00,1360600,1379700,1353800,1365000,1327555.0,1373499.2042046655,1281610.7957953345,1362745.0,1292365.0,-1 +19990825 00:00,1371900,1387800,1279100,1384400,1328410.0,1377788.9793333155,1279031.0206666845,1370462.5,1286357.5,-1 +19990826 00:00,1382800,1384200,1365000,1365000,1329470.0,1380988.7771594007,1277951.2228405993,1370412.5,1288527.5,-1 +19990827 00:00,1368800,1370600,1351300,1351600,1330505.0,1382921.008050976,1278088.991949024,1371050.0,1289960.0,-1 +19990830 00:00,1353400,1355000,1323900,1326600,1330365.0,1382807.0165516164,1277922.9834483836,1371555.0,1289175.0,-1 +19990831 00:00,1329400,1337500,1307500,1325000,1330435.0,1382844.437127296,1278025.562872704,1372030.0,1288840.0,-1 +19990901 00:00,1329400,1335600,1323100,1335600,1331870.0,1383183.4329391436,1280556.5670608564,1371890.0,1291850.0,-1 +19990902 00:00,1321300,1326700,1306600,1322500,1332215.0,1383177.8207618063,1281252.1792381937,1372250.0,1292180.0,-1 +19990903 00:00,1348800,1362800,1346900,1361900,1335280.0,1385638.4193556549,1284921.5806443451,1376462.5,1294097.5,-1 +19990907 00:00,1360600,1366300,1342800,1355200,1338015.0,1386424.514560673,1289605.485439327,1379400.0,1296630.0,-1 +19990908 00:00,1348400,1360600,1335000,1349100,1341360.0,1382593.9374787323,1300126.0625212677,1382295.0,1300425.0,-1 +19990909 00:00,1347500,1352500,1336900,1351300,1343660.0,1381591.16924114,1305728.83075886,1384032.5,1303287.5,1 +19990910 00:00,1362500,1363600,1349400,1354500,1346375.0,1378856.3100105275,1313893.6899894725,1386455.0,1306295.0,1 +19990913 00:00,1351300,1354700,1345000,1348100,1347185.0,1378982.8159627356,1315387.1840372644,1385570.0,1308800.0,1 +19990914 00:00,1340600,1345600,1333800,1340600,1347525.0,1378885.4767183154,1316164.5232816846,1385692.5,1309357.5,1 +19990915 00:00,1354400,1354400,1320600,1320800,1346215.0,1379672.5118620617,1312757.4881379383,1385395.0,1307035.0,1 +19990916 00:00,1325000,1328100,1303100,1323800,1345625.0,1380207.7052151794,1311042.2947848206,1385712.5,1305537.5,1 +19990917 00:00,1326300,1339400,1321600,1337200,1346045.0,1379998.4666860397,1312091.5333139603,1386065.0,1306025.0,1 +19990920 00:00,1339400,1340000,1330900,1336300,1345920.0,1379997.4177425462,1311842.5822574538,1385707.5,1306132.5,1 +19990921 00:00,1322500,1324700,1301600,1309100,1343180.0,1379754.942241923,1306605.057758077,1383642.5,1302717.5,1 +19990922 00:00,1312500,1318400,1297500,1311600,1340510.0,1378105.845515163,1302914.154484837,1380597.5,1300422.5,1 +19990923 00:00,1318100,1342500,1237800,1280000,1335290.0,1375928.400559077,1294651.599440923,1375077.5,1295502.5,-1 +19990924 00:00,1277500,1283800,1263100,1280600,1331070.0,1375812.6910232275,1286327.3089767725,1370955.0,1291185.0,-1 +19990927 00:00,1287500,1297500,1282800,1282800,1327630.0,1375965.0431881465,1279294.9568118535,1367335.0,1287925.0,-1 +19990928 00:00,1279400,1288100,1255600,1281900,1325395.0,1377685.8204181192,1273104.1795818808,1365205.0,1285585.0,-1 +19990929 00:00,1284400,1291300,1267800,1267800,1322535.0,1380543.7674407929,1264526.2325592071,1361857.5,1283212.5,-1 +19990930 00:00,1274400,1294400,1269700,1283800,1319945.0,1379979.3726543386,1259910.6273456614,1360325.0,1279565.0,-1 +19991001 00:00,1279400,1285600,1266300,1283400,1317990.0,1380075.7439353028,1255904.2560646972,1357642.5,1278337.5,-1 +19991004 00:00,1291900,1306300,1287500,1306300,1315210.0,1374077.9845077102,1256342.0154922898,1353557.5,1276862.5,-1 +19991005 00:00,1307200,1319700,1286900,1301900,1312545.0,1368693.2136848539,1256396.7863151461,1351590.0,1273500.0,-1 +19991006 00:00,1307500,1328100,1306900,1326300,1311405.0,1365423.6069794474,1257386.3930205526,1350495.0,1272315.0,-1 +19991007 00:00,1328600,1330000,1315000,1320000,1309840.0,1360875.9246021858,1258804.0753978142,1348885.0,1270795.0,-1 +19991008 00:00,1317500,1338800,1312300,1337200,1308975.0,1357477.4071567587,1260472.5928432413,1348942.5,1269007.5,-1 +19991011 00:00,1335900,1341300,1333100,1338100,1308475.0,1355538.611208661,1261411.388791339,1348330.0,1268620.0,-1 +19991012 00:00,1331300,1333100,1311900,1314100,1307150.0,1351959.44096951,1262340.55903049,1347897.5,1266402.5,-1 +19991013 00:00,1306900,1313100,1282500,1286600,1305440.0,1350643.8228471885,1260236.1771528115,1346022.5,1264857.5,-1 +19991014 00:00,1284800,1291900,1267500,1284100,1303455.0,1348746.1238544595,1258163.8761455405,1343992.5,1262917.5,-1 +19991015 00:00,1260000,1267500,1245000,1248100,1299000.0,1347548.8207889749,1250451.1792110251,1341135.0,1256865.0,-1 +19991018 00:00,1249400,1257500,1234400,1255600,1294965.0,1343855.869290697,1246074.130709303,1338150.0,1251780.0,-1 +19991019 00:00,1271900,1282500,1259400,1260800,1292550.0,1343151.165994471,1241948.834005529,1335150.0,1249950.0,-1 +19991020 00:00,1277500,1292500,1271300,1292200,1291580.0,1341421.3322454367,1241738.6677545633,1334990.0,1248170.0,-1 +19991021 00:00,1272200,1288800,1266300,1286300,1291895.0,1341518.7634606648,1242271.2365393352,1329395.0,1254395.0,-1 +19991022 00:00,1297500,1312200,1295600,1303400,1293035.0,1342616.0155200555,1243453.9844799445,1330925.0,1255145.0,-1 +19991025 00:00,1293100,1304700,1287500,1295000,1293645.0,1343007.0289291274,1244282.9710708726,1331557.5,1255732.5,-1 +19991026 00:00,1301900,1306900,1281900,1282500,1293675.0,1343009.1615921464,1244340.8384078536,1331025.0,1256325.0,-1 +19991027 00:00,1283800,1303100,1282500,1301300,1295350.0,1343312.0891955302,1247387.9108044698,1332482.5,1258217.5,-1 +19991028 00:00,1324400,1345000,1321900,1345000,1298410.0,1350652.2396150855,1246167.7603849145,1336825.0,1259995.0,-1 +19991029 00:00,1358400,1376900,1357200,1365600,1302520.0,1361845.5627870483,1243194.4372129517,1341880.0,1263160.0,-1 +19991101 00:00,1365000,1370000,1356300,1359400,1305175.0,1369483.129346141,1240866.870653859,1343845.0,1266505.0,-1 +19991102 00:00,1359700,1372500,1347500,1348100,1307485.0,1374421.9636299706,1240548.0363700294,1345570.0,1269400.0,-1 +19991103 00:00,1360000,1363800,1351300,1356900,1309015.0,1378934.676057602,1239095.323942398,1346312.5,1271717.5,-1 +19991104 00:00,1367500,1373600,1357700,1364700,1311250.0,1385174.3532267953,1237325.6467732047,1348675.0,1273825.0,-1 +19991105 00:00,1386300,1391100,1367800,1372200,1313000.0,1390851.5253543565,1235148.4746456435,1350417.5,1275582.5,-1 +19991108 00:00,1370000,1383800,1367500,1379400,1315065.0,1397524.6452817982,1232605.3547182018,1353090.0,1277040.0,-1 +19991109 00:00,1385000,1386900,1362800,1367200,1317720.0,1403246.7350014017,1232193.2649985983,1355587.5,1279852.5,-1 +19991110 00:00,1362500,1383900,1360800,1377500,1322265.0,1410317.4451676386,1234212.5548323614,1359495.0,1285035.0,-1 +19991111 00:00,1381900,1385600,1374700,1383800,1327250.0,1417360.099322995,1237139.900677005,1363467.5,1291032.5,-1 +19991112 00:00,1392500,1399700,1371300,1397500,1334720.0,1422073.845937085,1247366.154062915,1370135.0,1299305.0,-1 +19991115 00:00,1398400,1402500,1394100,1398100,1341845.0,1425385.6601601879,1258304.3398398121,1376157.5,1307532.5,-1 +19991116 00:00,1405600,1426300,1400900,1424400,1350025.0,1432249.0810225327,1267800.9189774673,1384435.0,1315615.0,-1 +19991117 00:00,1422500,1429400,1413100,1415600,1356195.0,1438655.8628380762,1273734.1371619238,1389450.0,1322940.0,-1 +19991118 00:00,1424400,1430000,1416300,1428100,1363285.0,1444867.6274399152,1281702.3725600848,1395677.5,1330892.5,-1 +19991119 00:00,1424100,1429700,1420000,1425000,1369365.0,1450311.6805990215,1288418.3194009785,1400542.5,1338187.5,-1 +19991122 00:00,1424400,1430000,1415000,1424700,1375850.0,1452599.6319209414,1299100.3680790586,1406862.5,1344837.5,-1 +19991123 00:00,1428400,1428400,1400600,1408800,1382165.0,1447013.1695963733,1317316.8304036267,1413387.5,1350942.5,-1 +19991124 00:00,1407500,1424400,1400000,1420600,1388130.0,1443362.0595306747,1332897.9404693253,1419637.5,1356622.5,-1 +19991126 00:00,1424700,1428800,1412500,1414400,1391600.0,1444215.587044145,1338984.412955855,1421052.5,1362147.5,-1 +19991129 00:00,1408800,1419200,1404400,1410000,1393820.0,1445600.2896863276,1342039.7103136724,1421990.0,1365650.0,-1 +19991130 00:00,1407500,1423100,1390000,1392500,1395475.0,1444806.972391138,1346143.027608862,1425100.0,1365850.0,-1 +19991201 00:00,1393100,1405000,1390000,1401300,1398135.0,1442443.5668917422,1353826.4331082578,1427010.0,1369260.0,-1 +19991202 00:00,1406300,1413600,1403800,1411300,1400855.0,1441206.6282199367,1360503.3717800633,1429475.0,1372235.0,-1 +19991203 00:00,1430300,1454100,1430300,1436900,1404465.0,1444145.4372455748,1364784.5627544252,1435042.5,1373887.5,-1 +19991206 00:00,1435300,1437200,1422500,1427500,1407230.0,1445201.9949436423,1369258.0050563577,1436930.0,1377530.0,-1 +19991207 00:00,1432800,1433100,1413800,1419400,1409230.0,1445293.7269288686,1373166.2730711314,1439155.0,1379305.0,-1 +19991208 00:00,1413400,1420600,1406300,1406300,1411185.0,1441741.784843959,1380628.215156041,1440375.0,1381995.0,-1 +19991209 00:00,1418100,1422200,1393800,1410000,1412810.0,1439201.2788625334,1386418.7211374666,1442397.5,1383222.5,1 +19991210 00:00,1422800,1428100,1408800,1420000,1414620.0,1437542.0068929403,1391697.9931070597,1444837.5,1384402.5,1 +19991213 00:00,1414400,1427200,1412800,1421300,1415810.0,1437490.8579166047,1394129.1420833953,1444977.5,1386642.5,1 +19991214 00:00,1416300,1424800,1406300,1408100,1416310.0,1436760.4180886357,1395859.5819113643,1446235.0,1386385.0,1 +19991215 00:00,1403800,1422000,1400000,1418000,1415990.0,1436121.8553541396,1395858.1446458604,1445450.0,1386530.0,1 +19991216 00:00,1421900,1426600,1411600,1423800,1416400.0,1436815.3863544143,1395984.6136455857,1445762.5,1387037.5,1 +19991217 00:00,1430000,1433100,1420600,1423800,1416185.0,1436189.4270100396,1396180.5729899604,1445405.0,1386965.0,1 +19991220 00:00,1425600,1431900,1410900,1416900,1415780.0,1435378.0203081842,1396181.9796918158,1445847.5,1385712.5,1 +19991221 00:00,1415900,1440600,1413400,1433400,1416215.0,1436939.5048191748,1395490.4951808252,1447197.5,1385232.5,1 +19991222 00:00,1436300,1441900,1429700,1437500,1417650.0,1440030.3932047675,1395269.6067952325,1447462.5,1387837.5,1 +19991223 00:00,1450200,1464400,1449700,1460900,1419665.0,1448939.7860794917,1390390.2139205083,1449665.0,1389665.0,1 +19991227 00:00,1465000,1467800,1450600,1458100,1421850.0,1455433.061206507,1388266.938793493,1451917.5,1391782.5,-1 +19991228 00:00,1458800,1465000,1454800,1461400,1424420.0,1461651.148249819,1387188.851750181,1454142.5,1394697.5,-1 +19991229 00:00,1463100,1468100,1452500,1463400,1427965.0,1465859.6051569348,1390070.3948430652,1456375.0,1399555.0,-1 +19991230 00:00,1471300,1478800,1461900,1466300,1431215.0,1470527.353020393,1391902.646979607,1459767.5,1402662.5,-1 +19991231 00:00,1468400,1475000,1462500,1468800,1434090.0,1475509.8454849846,1392670.1545150154,1462657.5,1405522.5,-1 +20000103 00:00,1482500,1482500,1438800,1455600,1435025.0,1477487.495216367,1392562.504783633,1463660.0,1406390.0,-1 +20000104 00:00,1435300,1440600,1396400,1400600,1433680.0,1478641.2989136213,1388718.7010863787,1465652.5,1401707.5,-1 +20000105 00:00,1399400,1415300,1372500,1402800,1432850.0,1479419.2387741092,1386280.7612258908,1466585.0,1399115.0,-1 +20000106 00:00,1396300,1415000,1392500,1403400,1432705.0,1479620.7745326664,1385789.2254673336,1467055.0,1398355.0,-1 +20000107 00:00,1403100,1444400,1400600,1444400,1434425.0,1480397.8996257577,1388452.1003742423,1469930.0,1398920.0,-1 +20000110 00:00,1462500,1469100,1450300,1458100,1436330.0,1482907.638411581,1389752.361588419,1472240.0,1400420.0,-1 +20000111 00:00,1458100,1460900,1435000,1440900,1437310.0,1483403.726254231,1391216.273745769,1474082.5,1400537.5,-1 +20000112 00:00,1445900,1446300,1428800,1433400,1438575.0,1482741.0899333414,1394408.9100666586,1475272.5,1401877.5,-1 +20000113 00:00,1444700,1457500,1432800,1451300,1440240.0,1483682.7623431107,1396797.2376568893,1477140.0,1403340.0,-1 \ No newline at end of file From 4ddbf6b97e55be4abbfc4a0e2b4a2f8bb50ac3b7 Mon Sep 17 00:00:00 2001 From: Josue Nina Date: Thu, 12 Dec 2024 12:39:04 -0500 Subject: [PATCH 3/3] Update QCAlgorithm with SqueezeMomentum indicator --- Algorithm/QCAlgorithm.Indicators.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Algorithm/QCAlgorithm.Indicators.cs b/Algorithm/QCAlgorithm.Indicators.cs index a55b412d3f97..bb82218d1245 100644 --- a/Algorithm/QCAlgorithm.Indicators.cs +++ b/Algorithm/QCAlgorithm.Indicators.cs @@ -1951,6 +1951,26 @@ public SortinoRatio SORTINO(Symbol symbol, int sortinoPeriod, double minimumAcce return sortinoRatio; } + /// + /// Creates a Squeeze Momentum indicator to identify market squeezes and potential breakouts. + /// Compares Bollinger Bands and Keltner Channels to signal low or high volatility periods. + /// + /// The symbol for which the indicator is calculated. + /// The period for Bollinger Bands. + /// The multiplier for the Bollinger Bands' standard deviation. + /// The period for Keltner Channels. + /// The multiplier for the Average True Range in Keltner Channels. + /// The resolution of the data. + /// Selects a value from the BaseData to send into the indicator. If null, defaults to the Value property of BaseData (x => x.Value). + /// The configured Squeeze Momentum indicator. + [DocumentationAttribute(Indicators)] + public SqueezeMomentum SM(Symbol symbol, int bollingerPeriod = 20, decimal bollingerMultiplier = 2m, int keltnerPeriod = 20, decimal keltnerMultiplier = 1.5m, Resolution? resolution = null, Func selector = null) + { + var name = CreateIndicatorName(symbol, $"SM({bollingerPeriod}, {bollingerMultiplier}, {keltnerPeriod}, {keltnerMultiplier})", resolution); + var squeezeMomentum = new SqueezeMomentum(name, bollingerPeriod, bollingerMultiplier, keltnerPeriod, keltnerMultiplier); + InitializeIndicator(squeezeMomentum, resolution, selector, symbol); + return squeezeMomentum; + } /// /// Creates an SimpleMovingAverage indicator for the symbol. The indicator will be automatically