diff --git a/Algorithm/QCAlgorithm.Indicators.cs b/Algorithm/QCAlgorithm.Indicators.cs
index e51f0c0961b0..6564fef8ecce 100644
--- a/Algorithm/QCAlgorithm.Indicators.cs
+++ b/Algorithm/QCAlgorithm.Indicators.cs
@@ -1205,6 +1205,26 @@ public ImpliedVolatility IV(Symbol symbol, Symbol mirrorOption = null, decimal?
return iv;
}
+ ///
+ /// Creates a new JurikMovingAverage indicator.
+ ///
+ /// The symbol whose JMA we want
+ /// The period of the JMA
+ /// The phase parameter (-100 to 100), controls the tradeoff between lag and overshoot
+ /// The resolution
+ /// Selects a value from the BaseData to send into the indicator, if null defaults to the Value property of BaseData (x => x.Value)
+ /// The JurikMovingAverage indicator for the requested symbol over the specified period
+ [DocumentationAttribute(Indicators)]
+ public JurikMovingAverage JMA(Symbol symbol, int period, decimal phase = 0,
+ Resolution? resolution = null, Func selector = null)
+ {
+ var name = CreateIndicatorName(symbol, $"JMA({period},{phase})", resolution);
+ var jurikMovingAverage = new JurikMovingAverage(name, period, phase);
+ InitializeIndicator(jurikMovingAverage, resolution, selector, symbol);
+
+ return jurikMovingAverage;
+ }
+
///
/// Creates a new KaufmanAdaptiveMovingAverage indicator.
///
diff --git a/Indicators/JurikMovingAverage.cs b/Indicators/JurikMovingAverage.cs
new file mode 100644
index 000000000000..968aa8edfa21
--- /dev/null
+++ b/Indicators/JurikMovingAverage.cs
@@ -0,0 +1,228 @@
+/*
+ * 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 System;
+
+namespace QuantConnect.Indicators
+{
+ ///
+ /// Represents the Jurik Moving Average (JMA) indicator.
+ /// JMA is a volatility-adaptive filter that produces smoother output with less lag
+ /// than the traditional EMA. It uses volatility bands to dynamically adjust its
+ /// smoothing factor, combined with a three-stage adaptive pipeline: adaptive EMA,
+ /// Kalman-style velocity estimation, and Jurik error correction.
+ /// The period parameter controls both the base smoothing constants and the volatility
+ /// band adaptation rate. Higher periods produce smoother, more lagged output.
+ /// Note: The original JMA algorithm is proprietary (Jurik Research). This implementation
+ /// follows the community-standard reverse-engineered formula used by pandas_ta,
+ /// TradingView, and other open-source libraries.
+ ///
+ public class JurikMovingAverage : Indicator, IIndicatorWarmUpPeriodProvider
+ {
+ private readonly int _period;
+ private readonly decimal _phaseRatio;
+ private readonly decimal _beta;
+
+ // Volatility band constants derived from period
+ private readonly double _length1;
+ private readonly double _pow1;
+ private readonly double _bet;
+
+ // Volatility tracking
+ private const int VolatilitySumLength = 10;
+ private const int VolatilityAvgLength = 65;
+ private readonly RollingWindow _voltyWindow;
+ private readonly RollingWindow _vSumWindow;
+ private decimal _vSum;
+
+ // Adaptive band state
+ private decimal _upperBand;
+ private decimal _lowerBand;
+
+ // Three-stage filter state
+ private decimal _ma1;
+ private decimal _det0;
+ private decimal _det1;
+ private decimal _jma;
+
+ ///
+ /// Gets a flag indicating when this indicator is ready and fully initialized
+ ///
+ public override bool IsReady => Samples >= _period;
+
+ ///
+ /// Required period, in data points, for the indicator to be ready and fully initialized.
+ ///
+ public int WarmUpPeriod => _period;
+
+ ///
+ /// Initializes a new instance of the class using the specified name and period.
+ ///
+ /// The name of this indicator
+ /// The period of the JMA, controls the smoothing window and volatility adaptation
+ /// The phase parameter (-100 to 100), controls the tradeoff between lag and overshoot
+ public JurikMovingAverage(string name, int period, decimal phase = 0)
+ : base(name)
+ {
+ if (period < 2)
+ {
+ throw new ArgumentOutOfRangeException(nameof(period),
+ "JMA period must be greater than or equal to 2.");
+ }
+
+ _period = period;
+
+ // Compute phase ratio: clamp phase to [-100, 100] range
+ if (phase < -100m)
+ {
+ _phaseRatio = 0.5m;
+ }
+ else if (phase > 100m)
+ {
+ _phaseRatio = 2.5m;
+ }
+ else
+ {
+ _phaseRatio = phase / 100m + 1.5m;
+ }
+
+ // Base smoothing constant from period
+ _beta = 0.45m * (_period - 1) / (0.45m * (_period - 1) + 2m);
+
+ // Volatility band constants derived from period
+ var length = 0.5 * (_period - 1);
+ _length1 = Math.Max(Math.Log(Math.Sqrt(length)) / Math.Log(2.0) + 2.0, 0);
+ _pow1 = Math.Max(_length1 - 2.0, 0.5);
+ var length2 = _length1 * Math.Sqrt(length);
+ _bet = length2 / (length2 + 1);
+
+ // Rolling windows for volatility tracking
+ _voltyWindow = new RollingWindow(VolatilitySumLength + 1);
+ _vSumWindow = new RollingWindow(VolatilityAvgLength);
+ }
+
+ ///
+ /// Initializes a new instance of the class using the specified period.
+ ///
+ /// The period of the JMA, controls the smoothing window and volatility adaptation
+ /// The phase parameter (-100 to 100), controls the tradeoff between lag and overshoot
+ public JurikMovingAverage(int period, decimal phase = 0)
+ : this($"JMA({period},{phase})", period, phase)
+ {
+ }
+
+ ///
+ /// Computes the next value of this indicator from the given state
+ ///
+ /// The input given to the indicator
+ /// A new value for this indicator
+ protected override decimal ComputeNextValue(IndicatorDataPoint input)
+ {
+ var price = input.Value;
+
+ if (Samples == 1)
+ {
+ // Seed all state from first price
+ _ma1 = price;
+ _upperBand = price;
+ _lowerBand = price;
+ _jma = price;
+ _det0 = 0;
+ _det1 = 0;
+ _vSum = 0;
+ _voltyWindow.Add(0);
+ _vSumWindow.Add(0);
+ return 0m;
+ }
+
+ // Compute volatility relative to adaptive bands
+ var del1 = price - _upperBand;
+ var del2 = price - _lowerBand;
+ var volty = Math.Abs(del1) != Math.Abs(del2)
+ ? Math.Max(Math.Abs(del1), Math.Abs(del2))
+ : 0m;
+
+ // Update rolling volatility sum (running average over VolatilitySumLength bars)
+ _voltyWindow.Add(volty);
+ var oldest = _voltyWindow.Count > VolatilitySumLength
+ ? _voltyWindow[VolatilitySumLength]
+ : _voltyWindow[_voltyWindow.Count - 1];
+ _vSum = _vSum + (volty - oldest) / VolatilitySumLength;
+ _vSumWindow.Add(_vSum);
+
+ // Average volatility: mean of v_sum values over available history (up to 65 bars)
+ decimal avgVolty = 0;
+ var count = _vSumWindow.Count;
+ if (count > 0)
+ {
+ decimal sum = 0;
+ for (var i = 0; i < count; i++)
+ {
+ sum += _vSumWindow[i];
+ }
+ avgVolty = sum / count;
+ }
+
+ // Relative volatility factor, clamped to [1, length1^(1/pow1)]
+ var dVolty = avgVolty == 0 ? 0m : volty / avgVolty;
+ var maxRVolty = (decimal)Math.Pow(_length1, 1.0 / _pow1);
+ var rVolty = Math.Max(1.0m, Math.Min(maxRVolty, dVolty));
+
+ // Update Jurik volatility bands using adaptive coefficient
+ var pow2 = Math.Pow((double)rVolty, _pow1);
+ var kv = (decimal)Math.Pow(_bet, Math.Sqrt(pow2));
+ _upperBand = del1 > 0 ? price : price - kv * del1;
+ _lowerBand = del2 < 0 ? price : price - kv * del2;
+
+ // Adaptive alpha: beta^(rVolty^pow1) — varies with market volatility
+ var alpha = (decimal)Math.Pow((double)_beta, pow2);
+
+ // Stage 1: Adaptive EMA
+ _ma1 = (1 - alpha) * price + alpha * _ma1;
+
+ // Stage 2: Kalman-style velocity estimation
+ _det0 = (price - _ma1) * (1 - _beta) + _beta * _det0;
+ var ma2 = _ma1 + _phaseRatio * _det0;
+
+ // Stage 3: Jurik adaptive error correction
+ _det1 = (ma2 - _jma) * (1 - alpha) * (1 - alpha) + alpha * alpha * _det1;
+ _jma = _jma + _det1;
+
+ if (!IsReady)
+ {
+ return 0m;
+ }
+
+ return _jma;
+ }
+
+ ///
+ /// Resets this indicator to its initial state
+ ///
+ public override void Reset()
+ {
+ _ma1 = 0;
+ _det0 = 0;
+ _det1 = 0;
+ _jma = 0;
+ _upperBand = 0;
+ _lowerBand = 0;
+ _vSum = 0;
+ _voltyWindow.Reset();
+ _vSumWindow.Reset();
+ base.Reset();
+ }
+ }
+}
diff --git a/Tests/Indicators/JurikMovingAverageTests.cs b/Tests/Indicators/JurikMovingAverageTests.cs
new file mode 100644
index 000000000000..7b2c37e5e53f
--- /dev/null
+++ b/Tests/Indicators/JurikMovingAverageTests.cs
@@ -0,0 +1,124 @@
+/*
+ * 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 System;
+using NUnit.Framework;
+using QuantConnect.Indicators;
+
+namespace QuantConnect.Tests.Indicators
+{
+ [TestFixture]
+ public class JurikMovingAverageTests : CommonIndicatorTests
+ {
+ protected override IndicatorBase CreateIndicator()
+ {
+ return new JurikMovingAverage(7);
+ }
+
+ protected override string TestFileName => "spy_jma.txt";
+
+ protected override string TestColumnName => "JMA_7";
+
+ [Test]
+ public void JmaComputesCorrectly()
+ {
+ // Values verified against pandas_ta_classic reference implementation:
+ // from pandas_ta_classic.overlap.jma import jma
+ // jma(pd.Series([10,11,12,11,10,11,12,13,12,11]), length=7, phase=0)
+ var jma = new JurikMovingAverage(7, 0);
+ var time = new DateTime(2024, 1, 1);
+ var prices = new decimal[] { 10, 11, 12, 11, 10, 11, 12, 13, 12, 11 };
+
+ // Feed first 6 bars: not ready (returns 0)
+ for (var i = 0; i < 6; i++)
+ {
+ jma.Update(time.AddDays(i), prices[i]);
+ Assert.IsFalse(jma.IsReady);
+ Assert.AreEqual(0m, jma.Current.Value);
+ }
+
+ // Bar 7 (first ready bar)
+ jma.Update(time.AddDays(6), prices[6]);
+ Assert.IsTrue(jma.IsReady);
+ Assert.AreEqual(11.504809085586068, (double)jma.Current.Value, 1e-6,
+ "JMA at bar 7 should match pandas_ta reference");
+
+ // Bar 8
+ jma.Update(time.AddDays(7), prices[7]);
+ Assert.AreEqual(12.474846874222544, (double)jma.Current.Value, 1e-6,
+ "JMA at bar 8 should match pandas_ta reference");
+
+ // Bar 9
+ jma.Update(time.AddDays(8), prices[8]);
+ Assert.AreEqual(12.515689573056372, (double)jma.Current.Value, 1e-6,
+ "JMA at bar 9 should match pandas_ta reference");
+
+ // Bar 10
+ jma.Update(time.AddDays(9), prices[9]);
+ Assert.AreEqual(11.711050292217287, (double)jma.Current.Value, 1e-6,
+ "JMA at bar 10 should match pandas_ta reference");
+ }
+
+ [Test]
+ public void PeriodAffectsOutput()
+ {
+ // Verify that different period values produce different outputs,
+ // confirming the period parameter controls smoothing behavior
+ var jma7 = new JurikMovingAverage(7);
+ var jma14 = new JurikMovingAverage(14);
+ var time = new DateTime(2024, 1, 1);
+
+ // Feed enough data for both to be ready
+ var prices = new decimal[] { 10, 11, 12, 11, 10, 11, 12, 13, 12, 11, 12, 13, 14, 13, 12 };
+ for (var i = 0; i < prices.Length; i++)
+ {
+ jma7.Update(time.AddDays(i), prices[i]);
+ jma14.Update(time.AddDays(i), prices[i]);
+ }
+
+ Assert.IsTrue(jma7.IsReady);
+ Assert.IsTrue(jma14.IsReady);
+ Assert.AreNotEqual(jma7.Current.Value, jma14.Current.Value,
+ "JMA(7) and JMA(14) should produce different values for the same input");
+ }
+
+ [Test]
+ public void PhaseAffectsOutput()
+ {
+ var jmaLag = new JurikMovingAverage(7, -100);
+ var jmaLead = new JurikMovingAverage(7, 100);
+ var time = new DateTime(2024, 1, 1);
+
+ var prices = new decimal[] { 10, 11, 12, 11, 10, 11, 12, 13, 12, 11 };
+ for (var i = 0; i < prices.Length; i++)
+ {
+ jmaLag.Update(time.AddDays(i), prices[i]);
+ jmaLead.Update(time.AddDays(i), prices[i]);
+ }
+
+ Assert.IsTrue(jmaLag.IsReady);
+ Assert.IsTrue(jmaLead.IsReady);
+ Assert.AreNotEqual(jmaLag.Current.Value, jmaLead.Current.Value,
+ "JMA with phase=-100 and phase=100 should produce different values");
+ }
+
+ [Test]
+ public void PeriodTooSmallThrows()
+ {
+ Assert.Throws(() => new JurikMovingAverage(1));
+ Assert.Throws(() => new JurikMovingAverage(0));
+ }
+ }
+}
diff --git a/Tests/TestData/spy_jma.txt b/Tests/TestData/spy_jma.txt
new file mode 100644
index 000000000000..4f633d49c26f
--- /dev/null
+++ b/Tests/TestData/spy_jma.txt
@@ -0,0 +1,501 @@
+Date,Open,High,Low,Close,Volume,JMA_7
+2/22/2013 12:00:00 AM,151.16,151.89,150.49,151.89,106292600,
+2/25/2013 12:00:00 AM,152.63,152.86,149,149,245483200,
+2/26/2013 12:00:00 AM,149.72,150.2,148.73,150.02,186331600,
+2/27/2013 12:00:00 AM,149.89,152.33,149.76,151.91,143932600,
+2/28/2013 12:00:00 AM,151.9,152.87,151.41,151.61,123724200,
+3/1/2013 12:00:00 AM,151.09,152.34,150.41,152.11,170612700,
+3/4/2013 12:00:00 AM,151.76,152.92,151.52,152.92,97328800,152.466951821586
+3/5/2013 12:00:00 AM,153.66,154.7,153.64,154.29,121238200,153.603012776242
+3/6/2013 12:00:00 AM,154.84,154.92,154.16,154.5,94284300,154.288366544423
+3/7/2013 12:00:00 AM,154.71,154.98,154.52,154.78,86002000,154.643179916927
+3/8/2013 12:00:00 AM,155.46,155.65,154.66,155.44,122805700,155.080052408648
+3/11/2013 12:00:00 AM,155.33,156.04,155.13,156.03,83235500,155.581145894216
+3/12/2013 12:00:00 AM,155.92,156.1,155.21,155.68,104108300,155.781613605679
+3/13/2013 12:00:00 AM,155.76,156.12,155.23,155.9,91051500,155.877060494037
+3/14/2013 12:00:00 AM,156.31,156.8,156.22,156.73,123614200,156.149543315601
+3/15/2013 12:00:00 AM,155.85,156.04,155.31,155.83,133153200,156.236277514093
+3/18/2013 12:00:00 AM,154.34,155.64,154.2,154.97,126518300,155.998934047869
+3/19/2013 12:00:00 AM,155.3,155.51,153.59,154.61,167049900,155.582607222696
+3/20/2013 12:00:00 AM,155.52,155.95,155.26,155.69,113607800,155.389131624865
+3/21/2013 12:00:00 AM,154.75,155.64,154.1,154.36,128492900,155.137469466612
+3/22/2013 12:00:00 AM,154.84,155.6,154.73,155.6,111103200,155.072816359778
+3/25/2013 12:00:00 AM,155.99,156.27,154.35,154.95,151231800,155.043838783465
+3/26/2013 12:00:00 AM,155.59,156.23,155.42,156.19,86114000,155.237198003992
+3/27/2013 12:00:00 AM,155.26,156.24,155,156.19,99783700,155.487163158578
+3/28/2013 12:00:00 AM,156.09,156.85,155.75,156.67,102687700,155.834181404954
+4/1/2013 12:00:00 AM,156.59,156.91,155.67,156.05,99128500,156.048142132875
+4/2/2013 12:00:00 AM,156.61,157.21,156.37,156.82,101291000,156.257125071554
+4/3/2013 12:00:00 AM,156.91,157.03,154.82,155.23,153781800,156.179791238466
+4/4/2013 12:00:00 AM,155.43,156.17,155.09,155.86,129370000,156.076834255845
+4/5/2013 12:00:00 AM,153.95,155.35,153.77,155.16,155171000,155.891954415253
+4/8/2013 12:00:00 AM,155.27,156.22,154.75,156.21,86039700,155.831006467409
+4/9/2013 12:00:00 AM,156.5,157.32,155.98,156.75,100591500,155.968133849114
+4/10/2013 12:00:00 AM,157.17,158.87,157.13,158.67,134837300,157.155929734257
+4/11/2013 12:00:00 AM,158.7,159.71,158.54,159.19,109635100,158.260137739253
+4/12/2013 12:00:00 AM,158.68,159.04,157.92,158.8,116024900,158.766860672783
+4/15/2013 12:00:00 AM,158,158.13,155.1,155.12,215505700,157.143789091940
+4/16/2013 12:00:00 AM,156.29,157.49,155.91,157.41,147152400,156.797802733594
+4/17/2013 12:00:00 AM,156.29,156.32,154.28,155.11,226231500,156.204977085984
+4/18/2013 12:00:00 AM,155.37,155.41,153.55,154.14,166888900,155.247908763664
+4/19/2013 12:00:00 AM,154.5,155.55,154.12,155.48,149219300,154.888760312858
+4/22/2013 12:00:00 AM,155.78,156.54,154.75,156.17,106216500,155.042508995913
+4/23/2013 12:00:00 AM,156.95,157.93,156.17,157.78,165592000,156.122764549245
+4/24/2013 12:00:00 AM,157.83,158.3,157.54,157.88,94996400,156.976311388014
+4/25/2013 12:00:00 AM,158.25,159.27,158.1,158.52,130774400,157.715695950949
+4/26/2013 12:00:00 AM,158.32,158.6,157.73,158.24,95639000,158.116731132488
+4/29/2013 12:00:00 AM,158.67,159.65,158.42,159.3,88223400,158.583850062660
+4/30/2013 12:00:00 AM,159.27,159.72,158.61,159.68,115647600,159.053891728806
+5/1/2013 12:00:00 AM,159.33,159.41,158.1,158.28,138538400,159.167683467568
+5/2/2013 12:00:00 AM,158.68,159.89,158.53,159.75,96232300,159.287224564746
+5/3/2013 12:00:00 AM,161.14,161.88,161.04,161.37,143795900,160.038575587342
+5/6/2013 12:00:00 AM,161.49,162.01,161.42,161.78,66618900,160.831603259819
+5/7/2013 12:00:00 AM,162.11,162.65,161.67,162.6,89907000,161.675447921067
+5/8/2013 12:00:00 AM,162.42,163.39,162.33,163.34,96840500,162.507029909814
+5/9/2013 12:00:00 AM,163.27,163.7,162.47,162.88,106479000,162.916143569527
+5/10/2013 12:00:00 AM,163,163.55,162.51,163.41,102968200,163.179381067617
+5/13/2013 12:00:00 AM,163,163.81,162.82,163.54,79718500,163.367270831364
+5/14/2013 12:00:00 AM,163.67,165.35,163.67,165.23,118429300,164.053790966950
+5/15/2013 12:00:00 AM,164.98,166.45,164.91,166.12,120520600,165.005819852980
+5/16/2013 12:00:00 AM,165.76,166.36,165.09,165.34,109631200,165.462577165767
+5/17/2013 12:00:00 AM,165.98,167.04,165.73,166.94,129521200,166.052546828097
+5/20/2013 12:00:00 AM,166.78,167.58,166.61,166.93,84703300,166.493048937132
+5/21/2013 12:00:00 AM,167.07,167.8,166.5,167.17,95130500,166.821181084853
+5/22/2013 12:00:00 AM,167.34,169.07,165.17,165.93,243215800,166.856205118057
+5/23/2013 12:00:00 AM,164.2,165.91,163.94,165.45,210629800,166.645115740670
+5/24/2013 12:00:00 AM,164.44,165.38,163.98,165.31,151265100,166.317948516902
+5/28/2013 12:00:00 AM,167.04,167.78,165.81,166.3,142755000,166.132467677538
+5/29/2013 12:00:00 AM,165.41,165.8,164.34,165.22,160155000,165.925700002790
+5/30/2013 12:00:00 AM,165.35,166.59,165.22,165.83,106389200,165.799752293126
+5/31/2013 12:00:00 AM,165.36,166.31,163.13,163.45,175401500,165.224451714170
+6/3/2013 12:00:00 AM,163.86,164.46,162.66,164.35,167947700,164.803656122294
+6/4/2013 12:00:00 AM,164.44,165.1,162.73,163.56,157405600,164.420191122575
+6/5/2013 12:00:00 AM,163.11,163.42,161.13,161.27,210885500,163.197232983167
+6/6/2013 12:00:00 AM,161.2,162.74,160.25,162.73,200017000,162.585363759889
+6/7/2013 12:00:00 AM,163.89,164.95,163.14,164.8,188303400,162.973012750724
+6/10/2013 12:00:00 AM,165.31,165.4,164.37,164.8,102463000,163.531261710770
+6/11/2013 12:00:00 AM,163.27,164.54,162.74,163.1,159335000,163.737520844332
+6/12/2013 12:00:00 AM,164.25,164.39,161.6,161.75,176792400,163.338745512510
+6/13/2013 12:00:00 AM,161.64,164.5,161.3,164.21,163114300,163.273913072726
+6/14/2013 12:00:00 AM,164.03,164.67,162.91,163.18,140994200,163.253534108740
+6/17/2013 12:00:00 AM,164.3,165.22,163.55,164.44,135807000,163.421690840452
+6/18/2013 12:00:00 AM,164.54,165.99,164.52,165.74,114574200,164.086968568709
+6/19/2013 12:00:00 AM,165.61,165.89,163.38,163.45,205760600,164.300203941947
+6/20/2013 12:00:00 AM,161.83,162.1,158.98,159.4,320271500,161.970091526739
+6/21/2013 12:00:00 AM,159.6,159.76,157.47,159.07,270449000,160.304432458437
+6/24/2013 12:00:00 AM,157.39,158.43,155.73,157.06,221705700,158.423790406676
+6/25/2013 12:00:00 AM,158.52,159.17,157.42,158.57,161967200,157.818256739993
+6/26/2013 12:00:00 AM,159.89,160.5,159.25,160.14,134499400,158.109662996185
+6/27/2013 12:00:00 AM,161.12,161.82,160.95,161.08,129281700,158.995845895049
+6/28/2013 12:00:00 AM,160.62,161.4,159.86,160.42,160138800,159.623591915621
+7/1/2013 12:00:00 AM,161.27,162.48,161.08,161.36,131682500,160.197086170580
+7/2/2013 12:00:00 AM,161.1,162.3,160.5,161.21,154807500,160.625873337504
+7/3/2013 12:00:00 AM,160.51,161.77,160.22,161.28,75214000,160.931919363561
+7/5/2013 12:00:00 AM,162.53,163.08,161.3,163.02,121865400,161.516254849938
+7/8/2013 12:00:00 AM,163.89,164.39,163.08,163.95,107930700,162.379386374179
+7/9/2013 12:00:00 AM,164.97,165.33,164.27,165.13,119159000,163.514808048394
+7/10/2013 12:00:00 AM,165.01,165.75,164.63,165.19,119410100,164.347767608762
+7/11/2013 12:00:00 AM,167.13,167.61,166.53,167.44,135448000,165.723823813993
+7/12/2013 12:00:00 AM,167.4,167.93,167.13,167.51,102636900,166.699885391283
+7/15/2013 12:00:00 AM,167.97,168.39,167.68,168.15,69376600,167.440137487063
+7/16/2013 12:00:00 AM,168.25,168.36,167.07,167.52,88577000,167.798965889555
+7/17/2013 12:00:00 AM,168.18,168.48,167.73,167.95,91526200,167.982202705314
+7/18/2013 12:00:00 AM,168.28,169.27,168.2,168.87,104445800,168.227038418293
+7/19/2013 12:00:00 AM,168.51,169.23,168.31,169.17,103363100,168.518302276832
+7/22/2013 12:00:00 AM,169.39,169.74,169.01,169.5,79268700,168.832418991423
+7/23/2013 12:00:00 AM,169.79,169.83,169.05,169.14,80761400,169.060654150431
+7/24/2013 12:00:00 AM,169.8,169.86,168.18,168.52,112662100,169.105746824550
+7/25/2013 12:00:00 AM,168.2,169.08,167.94,168.93,111033200,169.091348777149
+7/26/2013 12:00:00 AM,168.24,169.16,167.52,169.11,107418600,169.088293507012
+7/29/2013 12:00:00 AM,168.71,169.06,168.11,168.59,79614200,169.024606049773
+7/30/2013 12:00:00 AM,169.12,169.28,168.19,168.59,85026800,168.926025377991
+7/31/2013 12:00:00 AM,168.94,169.85,168.49,168.71,142264100,168.842071350157
+8/1/2013 12:00:00 AM,169.98,170.81,169.9,170.66,109966700,169.062842014060
+8/2/2013 12:00:00 AM,170.3,170.97,170.05,170.95,89402700,169.494368462621
+8/5/2013 12:00:00 AM,170.61,170.96,170.35,170.7,53408200,169.927933525265
+8/6/2013 12:00:00 AM,170.37,170.52,169.35,169.73,87231100,170.134830622596
+8/7/2013 12:00:00 AM,169.2,169.43,168.55,169.18,84558600,170.083399219437
+8/8/2013 12:00:00 AM,170,170.18,168.93,169.8,101924300,169.987136080067
+8/9/2013 12:00:00 AM,169.56,170.1,168.72,169.31,91473000,169.838548485056
+8/12/2013 12:00:00 AM,168.44,169.31,168.38,169.11,68436400,169.651721599304
+8/13/2013 12:00:00 AM,169.4,169.9,168.41,169.61,80630100,169.543093609249
+8/14/2013 12:00:00 AM,169.52,169.8,168.7,168.74,78905600,169.381083711448
+8/15/2013 12:00:00 AM,167.35,167.43,166.09,166.38,152546100,168.618030975504
+8/16/2013 12:00:00 AM,166.04,166.63,165.5,165.83,130207000,167.636618072250
+8/19/2013 12:00:00 AM,165.64,166.21,164.76,164.77,96296100,166.464132120633
+8/20/2013 12:00:00 AM,165.03,166.2,164.86,165.58,88917400,165.790280986530
+8/21/2013 12:00:00 AM,165.15,166.03,164.19,164.56,157723100,165.275673208659
+8/22/2013 12:00:00 AM,164.92,166.3,164.89,166.06,101273000,165.130628460030
+8/23/2013 12:00:00 AM,166.54,166.83,165.77,166.62,90796000,165.299877877729
+8/26/2013 12:00:00 AM,166.77,167.3,165.89,166,89398400,165.517586399246
+8/27/2013 12:00:00 AM,164.33,164.98,163.21,163.33,154275400,165.133726826758
+8/28/2013 12:00:00 AM,163.3,164.49,163.05,163.91,105120800,164.738790168200
+8/29/2013 12:00:00 AM,163.55,165.04,163.4,164.17,118828000,164.442168558207
+8/30/2013 12:00:00 AM,164.52,164.53,163.17,163.65,134186300,164.178620520143
+9/3/2013 12:00:00 AM,165.24,165.58,163.7,164.39,142802600,164.066368751981
+9/4/2013 12:00:00 AM,164.44,166.03,164.14,165.75,97290400,164.261554580359
+9/5/2013 12:00:00 AM,165.85,166.4,165.73,165.96,62845000,164.644406234109
+9/6/2013 12:00:00 AM,166.49,166.98,164.48,166.04,159383800,165.069482514514
+9/9/2013 12:00:00 AM,166.45,167.73,166.45,167.63,87407200,165.803831221208
+9/10/2013 12:00:00 AM,168.63,168.9,168.26,168.87,104783000,166.947520511336
+9/11/2013 12:00:00 AM,168.64,169.4,168.35,169.4,94325700,168.021617298428
+9/12/2013 12:00:00 AM,169.37,169.56,168.72,168.95,82557800,168.656252961404
+9/13/2013 12:00:00 AM,169.15,169.46,168.74,169.33,72257500,169.048183929125
+9/16/2013 12:00:00 AM,171.18,171.24,170.04,170.31,126050700,169.476831108722
+9/17/2013 12:00:00 AM,170.47,171.11,170.46,171.07,82232500,170.036204504181
+9/18/2013 12:00:00 AM,170.97,173.52,170.58,173.05,201318000,171.284126054956
+9/19/2013 12:00:00 AM,173.51,173.6,172.59,172.76,146440600,172.112472810356
+9/20/2013 12:00:00 AM,172.3,172.33,170.58,170.72,132317600,172.292767286462
+9/23/2013 12:00:00 AM,170.5,170.65,169.39,169.93,104533900,171.913075105795
+9/24/2013 12:00:00 AM,169.89,170.53,169.21,169.53,100422400,171.295307535270
+9/25/2013 12:00:00 AM,169.65,169.98,168.89,169.04,114559100,170.598639883776
+9/26/2013 12:00:00 AM,169.34,170.17,169.05,169.69,76579600,170.109761375193
+9/27/2013 12:00:00 AM,168.81,169.14,168.47,168.91,97695900,169.705349407840
+9/30/2013 12:00:00 AM,167.45,168.54,167.15,168.01,143609700,169.223766239150
+10/1/2013 12:00:00 AM,168.14,169.5,168,169.34,126981900,168.978634706117
+10/2/2013 12:00:00 AM,168.35,169.34,167.83,169.18,112803800,168.900929057496
+10/3/2013 12:00:00 AM,168.77,168.94,166.84,167.62,176384300,168.689639122277
+10/4/2013 12:00:00 AM,167.74,169.06,167.53,168.89,96600700,168.579361970457
+10/7/2013 12:00:00 AM,167.43,168.45,167.25,167.43,95653200,168.362119116071
+10/8/2013 12:00:00 AM,167.45,167.62,165.36,165.48,176560600,167.474759732715
+10/9/2013 12:00:00 AM,165.8,166.2,164.53,165.6,168100500,166.708704616731
+10/10/2013 12:00:00 AM,167.29,169.26,167.23,169.17,193988300,167.016189090007
+10/11/2013 12:00:00 AM,168.9,170.32,168.77,170.26,104956400,168.127520037933
+10/14/2013 12:00:00 AM,169.24,171.08,169.08,170.94,111248400,169.331867269359
+10/15/2013 12:00:00 AM,170.52,171.15,169.47,169.7,154901700,169.910325545034
+10/16/2013 12:00:00 AM,170.75,172.16,170.63,172.07,160895600,170.698093670989
+10/17/2013 12:00:00 AM,171.37,173.32,171.34,173.22,128890400,171.796015701614
+10/18/2013 12:00:00 AM,173.86,174.51,173.51,174.39,138055900,173.062743733279
+10/21/2013 12:00:00 AM,174.45,174.75,174.01,174.4,104058600,173.863218839382
+10/22/2013 12:00:00 AM,174.91,175.93,174.66,175.41,126638900,174.601475320746
+10/23/2013 12:00:00 AM,174.83,174.89,173.96,174.57,105043800,174.934884177347
+10/24/2013 12:00:00 AM,174.9,175.37,174.51,175.15,70037700,175.105737994900
+10/25/2013 12:00:00 AM,175.51,176,175.17,175.95,93453900,175.352277560631
+10/28/2013 12:00:00 AM,175.9,176.47,175.7,176.23,84497900,175.642180132560
+10/29/2013 12:00:00 AM,176.6,177.24,176.38,177.17,87200600,176.126155762312
+10/30/2013 12:00:00 AM,177.4,177.51,175.66,176.29,135506600,176.404170035105
+10/31/2013 12:00:00 AM,176.18,176.89,175.53,175.79,133352300,176.447003652365
+11/1/2013 12:00:00 AM,176.05,176.61,175.22,176.21,142771700,176.414869243663
+11/4/2013 12:00:00 AM,176.71,176.9,175.982,176.83,85257800,176.456793237654
+11/5/2013 12:00:00 AM,176.16,176.75,175.57,176.27,85466500,176.470017540251
+11/6/2013 12:00:00 AM,177.03,177.5,176.54,177.17,87123100,176.579437018039
+11/7/2013 12:00:00 AM,177.56,177.64,174.76,174.93,148632200,176.419046566739
+11/8/2013 12:00:00 AM,174.85,177.31,174.85,177.29,136500100,176.427269627648
+11/11/2013 12:00:00 AM,177.14,177.53,176.91,177.32,66226700,176.584998464708
+11/12/2013 12:00:00 AM,176.95,177.36,176.37,176.96,83193500,176.744960525588
+11/13/2013 12:00:00 AM,176.1,178.41,176.09,178.38,99795600,177.083640659090
+11/14/2013 12:00:00 AM,178.53,179.42,178.25,179.27,102965800,177.700877437475
+11/15/2013 12:00:00 AM,179.57,180.12,179.33,180.05,102759600,178.510526362232
+11/18/2013 12:00:00 AM,180.39,180.5,179.02,179.42,98459500,179.047431210170
+11/19/2013 12:00:00 AM,179.31,179.87,178.72,179.03,93045800,179.304090564238
+11/20/2013 12:00:00 AM,179.41,179.93,177.98,178.47,124692900,179.295798184905
+11/21/2013 12:00:00 AM,179,180.05,178.86,179.91,91804700,179.356051599155
+11/22/2013 12:00:00 AM,180.01,180.83,179.77,180.81,81234700,179.616868174327
+11/25/2013 12:00:00 AM,181.11,181.17,180.37,180.63,79187800,179.937156488438
+11/26/2013 12:00:00 AM,180.74,181.22,180.4,180.68,86697800,180.230434232518
+11/27/2013 12:00:00 AM,180.89,181.24,180.65,181.12,58227900,180.518950890729
+11/29/2013 12:00:00 AM,181.34,181.75,180.8,181,54981700,180.749784240361
+12/2/2013 12:00:00 AM,181.12,181.43,180.25,180.53,99262300,180.842299206545
+12/3/2013 12:00:00 AM,179.95,180.39,179.17,179.75,115939400,180.724786979850
+12/4/2013 12:00:00 AM,179.18,180.48,178.35,179.73,122956300,180.498645382007
+12/5/2013 12:00:00 AM,179.42,179.74,178.77,178.94,106333600,180.145587791136
+12/6/2013 12:00:00 AM,180.72,181.11,180.15,180.94,127424400,180.057224409650
+12/9/2013 12:00:00 AM,181.47,181.67,181.16,181.4,69987400,180.239229800194
+12/10/2013 12:00:00 AM,180.96,181.36,180.63,180.75,77428000,180.445167890656
+12/11/2013 12:00:00 AM,180.81,180.85,178.5,178.72,130188800,180.276913358319
+12/12/2013 12:00:00 AM,178.61,178.86,177.76,178.13,115321400,179.773140421579
+12/13/2013 12:00:00 AM,178.48,178.66,177.77,178.11,107741000,179.249999040411
+12/16/2013 12:00:00 AM,178.95,179.81,178.9,179.22,96100500,178.962911099597
+12/17/2013 12:00:00 AM,179.37,179.41,178.25,178.65,89432200,178.792429470351
+12/18/2013 12:00:00 AM,178.91,181.73,177.32,181.7,234455700,179.379422500494
+12/19/2013 12:00:00 AM,181.18,181.7,180.71,181.49,136717700,180.016470147183
+12/20/2013 12:00:00 AM,180.67,181.99,180.57,181.56,196678700,180.566792677059
+12/23/2013 12:00:00 AM,182.41,182.64,182.07,182.53,85407800,181.195454739454
+12/24/2013 12:00:00 AM,182.57,183.01,182.53,182.93,45363300,181.813539376469
+12/26/2013 12:00:00 AM,183.37,183.96,183.32,183.85,63215200,182.552420837214
+12/27/2013 12:00:00 AM,184.14,184.18,183.66,183.85,61794800,183.125955210604
+12/30/2013 12:00:00 AM,183.92,184.02,183.58,183.82,56807200,183.513429386333
+12/31/2013 12:00:00 AM,184.11,184.69,183.93,184.69,86123600,183.904972890720
+1/2/2014 12:00:00 AM,183.91,184.07,182.48,182.92,119511100,183.976395578685
+1/3/2014 12:00:00 AM,183.24,183.6,182.63,182.88,81352000,183.827149534680
+1/6/2014 12:00:00 AM,183.52,183.56,182.08,182.36,106889400,183.519161703053
+1/7/2014 12:00:00 AM,183.12,183.79,182.95,183.48,86041200,183.336694601472
+1/8/2014 12:00:00 AM,183.46,183.83,182.89,183.52,96481400,183.288088864412
+1/9/2014 12:00:00 AM,184.1,184.13,182.79,183.64,90529400,183.333184639403
+1/10/2014 12:00:00 AM,183.96,184.22,183.01,184.14,101986500,183.486671263334
+1/13/2014 12:00:00 AM,183.64,184.18,181.34,181.68,149507600,183.285400914463
+1/14/2014 12:00:00 AM,182.27,183.77,181.95,183.67,104596300,183.202701660032
+1/15/2014 12:00:00 AM,184.1,184.94,183.71,184.66,98370100,183.447899363770
+1/16/2014 12:00:00 AM,184.3,184.66,183.83,184.42,72112100,183.737690333250
+1/17/2014 12:00:00 AM,184.1,184.45,183.32,183.63,107832500,183.883045390456
+1/21/2014 12:00:00 AM,184.72,184.77,183.05,184.18,88504600,183.985573380276
+1/22/2014 12:00:00 AM,184.51,184.57,183.91,184.3,60761400,184.082757051648
+1/23/2014 12:00:00 AM,183.38,183.4,181.82,182.79,132343700,183.951833003333
+1/24/2014 12:00:00 AM,181.59,181.66,178.83,178.89,208595800,181.720314008565
+1/27/2014 12:00:00 AM,179.05,179.52,177.12,178.01,179949700,179.657670805798
+1/28/2014 12:00:00 AM,178.23,179.3,178.12,179.07,108851800,178.811758931421
+1/29/2014 12:00:00 AM,177.59,178.55,176.88,177.35,215244500,178.104348843752
+1/30/2014 12:00:00 AM,178.88,179.81,178.26,179.23,116150500,177.950926543537
+1/31/2014 12:00:00 AM,177,179.29,176.92,178.18,194573800,177.958807937364
+2/3/2014 12:00:00 AM,177.95,178.37,173.83,174.17,254370100,176.196080004095
+2/4/2014 12:00:00 AM,174.98,175.84,174.11,175.38,164781000,175.447864311684
+2/5/2014 12:00:00 AM,174.77,175.56,173.71,175.17,163629100,175.134530752413
+2/6/2014 12:00:00 AM,175.61,177.48,175.22,177.48,132379000,175.553194525039
+2/7/2014 12:00:00 AM,178.29,179.87,177.73,179.68,170701300,177.291484521034
+2/10/2014 12:00:00 AM,179.7,180.07,179.21,180.01,91977200,178.675432675890
+2/11/2014 12:00:00 AM,180.23,182.44,180.04,181.98,121636400,180.421476392851
+2/12/2014 12:00:00 AM,182.26,182.83,181.71,182.07,94414700,181.465666175826
+2/13/2014 12:00:00 AM,180.85,183.2,180.83,183.01,100515600,182.298638959259
+2/14/2014 12:00:00 AM,182.9,184.36,182.67,184.02,96413500,183.154991362868
+2/18/2014 12:00:00 AM,184.2,184.49,183.65,184.24,80018500,183.766542621985
+2/19/2014 12:00:00 AM,183.78,184.95,182.87,183.02,125995500,183.941442609894
+2/20/2014 12:00:00 AM,183.27,184.52,182.6,184.1,104841400,184.016133167333
+2/21/2014 12:00:00 AM,184.45,184.89,183.8,183.89,118069200,184.042009375408
+2/24/2014 12:00:00 AM,184.3,186.15,184.2,184.91,113918000,184.200624246307
+2/25/2014 12:00:00 AM,185.03,185.59,184.23,184.84,116815100,184.400994265540
+2/26/2014 12:00:00 AM,185.1,185.6,184.33,184.85,98329400,184.587047798711
+2/27/2014 12:00:00 AM,184.58,185.87,184.37,185.82,93720800,184.869542695469
+2/28/2014 12:00:00 AM,185.78,187.15,185.05,186.29,150681900,185.252075134500
+3/3/2014 12:00:00 AM,184.65,185.45,183.75,184.98,167434300,185.435706749061
+3/4/2014 12:00:00 AM,186.79,187.98,186.75,187.58,169638300,185.956218612194
+3/5/2014 12:00:00 AM,187.75,188.07,187.45,187.75,88273700,186.541388482932
+3/6/2014 12:00:00 AM,188.24,188.61,187.78,188.18,82328000,187.120457597531
+3/7/2014 12:00:00 AM,188.93,188.96,187.43,188.26,117468700,187.586172717291
+3/10/2014 12:00:00 AM,187.94,188.23,187.08,188.16,74834300,187.912717059109
+3/11/2014 12:00:00 AM,188.48,188.71,186.8,187.23,98827400,187.982555857330
+3/12/2014 12:00:00 AM,186.32,187.35,185.9,187.28,104701600,187.896640759361
+3/13/2014 12:00:00 AM,187.88,187.99,184.66,185.18,154146000,187.373127896035
+3/14/2014 12:00:00 AM,184.8,185.8,184.44,184.66,153743000,186.606468332002
+3/17/2014 12:00:00 AM,185.62,186.77,185.51,186.33,98250600,186.161390084663
+3/18/2014 12:00:00 AM,186.74,187.91,186.51,187.66,101626300,186.224364440122
+3/19/2014 12:00:00 AM,187.71,187.94,185.47,186.66,176115300,186.366867205211
+3/20/2014 12:00:00 AM,186.25,187.89,185.92,187.75,116944200,186.646048778176
+3/21/2014 12:00:00 AM,187.71,189.02,186.03,186.2,163058100,186.745706109687
+3/24/2014 12:00:00 AM,186.84,187.07,184.62,185.43,120889800,186.584178756436
+3/25/2014 12:00:00 AM,186.4,186.94,185.27,186.31,103492000,186.423319807326
+3/26/2014 12:00:00 AM,187,187.34,184.92,184.97,119656900,186.129082380276
+3/27/2014 12:00:00 AM,184.77,185.34,183.9,184.58,142204500,185.730473798063
+3/28/2014 12:00:00 AM,185.14,186.42,185,185.49,101527200,185.466443880784
+3/31/2014 12:00:00 AM,186.66,187.3,186.47,187.01,99626700,185.560748230628
+4/1/2014 12:00:00 AM,187.65,188.36,187.45,188.25,88958900,186.200720229139
+4/2/2014 12:00:00 AM,188.5,189.13,188.14,188.88,78714300,187.083447605342
+4/3/2014 12:00:00 AM,189.13,189.22,188.05,188.63,77253000,187.746362005688
+4/4/2014 12:00:00 AM,189.64,189.7,186.1,186.4,169003600,187.876707656946
+4/7/2014 12:00:00 AM,185.9,186.26,183.96,184.34,140661000,186.874910515092
+4/8/2014 12:00:00 AM,184.18,185.4,183.59,185.1,112585800,186.138366479723
+4/9/2014 12:00:00 AM,185.61,187.15,185.06,187.09,100013900,185.949996800253
+4/10/2014 12:00:00 AM,187.07,187.17,182.93,183.15,172873800,185.206260753403
+4/11/2014 12:00:00 AM,182.16,183.42,181.31,181.51,167016600,183.689132151843
+4/14/2014 12:00:00 AM,182.92,183.37,181.44,182.94,132183000,182.920676995085
+4/15/2014 12:00:00 AM,183.35,184.33,181.51,184.2,157026300,182.786434627933
+4/16/2014 12:00:00 AM,185.47,186.14,184.65,186.12,104151700,183.670680417668
+4/17/2014 12:00:00 AM,185.87,186.91,185.56,186.39,105192300,184.650463099328
+4/21/2014 12:00:00 AM,186.45,187.1,186.21,187.04,68212800,185.580475879425
+4/22/2014 12:00:00 AM,187.24,188.4,187.13,187.89,85686400,186.498565754343
+4/23/2014 12:00:00 AM,187.8,187.92,187.3,187.45,73611400,187.071890184709
+4/24/2014 12:00:00 AM,188.39,188.39,186.93,187.83,88109600,187.451923247073
+4/25/2014 12:00:00 AM,187.23,187.33,185.87,186.29,100307700,187.476759049968
+4/28/2014 12:00:00 AM,187.08,187.69,184.96,186.88,134950500,187.371170151238
+4/29/2014 12:00:00 AM,187.48,188.04,187.08,187.75,83971400,187.364625467693
+4/30/2014 12:00:00 AM,187.46,188.5,187.18,188.31,101461700,187.520162283223
+5/1/2014 12:00:00 AM,188.25,188.84,187.73,188.32,92856500,187.747212318251
+5/2/2014 12:00:00 AM,188.33,189.14,187.78,188.06,97969300,187.929101148883
+5/5/2014 12:00:00 AM,187.16,188.55,186.62,188.42,75827800,188.096556848864
+5/6/2014 12:00:00 AM,188.03,188.13,186.74,186.78,85356200,188.001333304731
+5/7/2014 12:00:00 AM,187.41,187.97,186.01,187.88,106377000,187.903434104654
+5/8/2014 12:00:00 AM,187.71,189.05,187.08,187.68,93495400,187.823782151249
+5/9/2014 12:00:00 AM,187.71,188.04,186.83,187.96,83648000,187.806451469234
+5/12/2014 12:00:00 AM,188.77,189.88,188,189.79,86871400,188.093470815890
+5/13/2014 12:00:00 AM,190.03,190.42,189.77,189.96,66416800,188.556254812370
+5/14/2014 12:00:00 AM,189.82,189.88,188.79,189.06,72243900,188.901142347874
+5/15/2014 12:00:00 AM,188.68,188.72,186.48,187.4,154897300,188.857867078714
+5/16/2014 12:00:00 AM,187.5,188.13,186.72,188.05,97384100,188.672148526736
+5/19/2014 12:00:00 AM,187.71,188.89,187.52,188.74,63676300,188.569267432747
+5/20/2014 12:00:00 AM,188.67,188.67,187.07,187.55,111512600,188.383154108934
+5/21/2014 12:00:00 AM,188.07,189.22,188.06,189.13,88998000,188.381422782095
+5/22/2014 12:00:00 AM,189.2,189.98,188.86,189.59,61519500,188.579313075280
+5/23/2014 12:00:00 AM,189.76,190.48,189.59,190.35,61108000,188.965655955707
+5/27/2014 12:00:00 AM,191.06,191.58,190.95,191.52,71961100,189.737895268707
+5/28/2014 12:00:00 AM,191.55,191.82,191.06,191.38,66048500,190.380476296457
+5/29/2014 12:00:00 AM,191.85,192.4,191.33,192.37,64139000,191.101681430114
+5/30/2014 12:00:00 AM,192.21,192.8,192.03,192.68,76256200,191.743388675451
+6/2/2014 12:00:00 AM,192.98,192.99,191.97,192.9,64568200,192.247809581730
+6/3/2014 12:00:00 AM,192.41,192.9,192.25,192.8,64985200,192.584949184674
+6/4/2014 12:00:00 AM,192.46,193.3,192.26,193.19,55495200,192.843914870178
+6/5/2014 12:00:00 AM,193.43,194.65,192.7,194.45,92035600,193.315075461228
+6/6/2014 12:00:00 AM,194.88,195.43,194.78,195.38,78650300,194.057283147240
+6/9/2014 12:00:00 AM,195.36,196.05,195.17,195.58,65025700,194.710147741117
+6/10/2014 12:00:00 AM,195.36,195.64,194.92,195.6,56992500,195.165045503289
+6/11/2014 12:00:00 AM,194.87,195.12,194.48,194.92,68703000,195.358125024334
+6/12/2014 12:00:00 AM,194.68,194.8,193.11,193.54,106125500,195.180104802294
+6/13/2014 12:00:00 AM,193.89,194.32,193.3,194.13,81991000,194.898232125619
+6/16/2014 12:00:00 AM,193.88,194.7,193.66,194.29,87349400,194.657555782376
+6/17/2014 12:00:00 AM,194,194.97,193.81,194.83,84776800,194.566375141494
+6/18/2014 12:00:00 AM,194.83,196.37,194.4,196.26,105144800,194.807825780381
+6/19/2014 12:00:00 AM,196.46,196.6,195.8,196.48,85833100,195.213584448030
+6/20/2014 12:00:00 AM,196.01,196.1,195.7,195.94,99965100,195.557942278351
+6/23/2014 12:00:00 AM,196,196.05,195.52,195.88,70447200,195.782874419745
+6/24/2014 12:00:00 AM,195.54,196.5,194.48,194.7,96018200,195.736652077994
+6/25/2014 12:00:00 AM,194.28,195.78,194.25,195.58,82694100,195.658820936063
+6/26/2014 12:00:00 AM,195.6,195.63,194.13,195.44,84216600,195.587101145136
+6/27/2014 12:00:00 AM,194.98,195.88,194.88,195.82,71326100,195.586865928258
+6/30/2014 12:00:00 AM,195.71,196.16,195.53,195.72,70396800,195.617951739906
+7/1/2014 12:00:00 AM,196.21,197.63,196.13,197.03,90321700,195.842926438709
+7/2/2014 12:00:00 AM,197.03,197.48,196.96,197.23,52316200,196.189691599827
+7/3/2014 12:00:00 AM,197.81,198.29,197.64,198.2,52894800,196.735773740487
+7/7/2014 12:00:00 AM,197.84,197.98,197.22,197.51,61676700,197.147066506331
+7/8/2014 12:00:00 AM,197.12,197.22,195.76,196.24,108055300,197.223920469747
+7/9/2014 12:00:00 AM,196.75,197.29,196.31,197.12,72953600,197.212534478006
+7/10/2014 12:00:00 AM,195.24,196.86,195.06,196.34,98922400,197.077339861820
+7/11/2014 12:00:00 AM,196.24,196.75,195.78,196.61,64226200,196.927761368559
+7/14/2014 12:00:00 AM,197.63,197.86,197.44,197.6,58563600,196.946879506303
+7/15/2014 12:00:00 AM,197.71,198.1,196.36,197.23,111297400,197.023072597013
+7/16/2014 12:00:00 AM,198.12,198.26,197.42,197.96,79978600,197.207258566234
+7/17/2014 12:00:00 AM,197.33,198.1,195.43,195.71,144412600,197.065321149345
+7/18/2014 12:00:00 AM,196.38,197.91,196.24,197.71,124256300,197.061243214430
+7/21/2014 12:00:00 AM,197.08,197.5,196.43,197.34,67480300,197.119016634943
+7/22/2014 12:00:00 AM,198.04,198.56,197.87,198.2,67612500,197.320488045876
+7/23/2014 12:00:00 AM,198.51,198.85,198.1,198.64,65545600,197.661604404863
+7/24/2014 12:00:00 AM,198.82,199.06,198.45,198.65,56417500,197.995926127431
+7/25/2014 12:00:00 AM,198.11,198.26,197.33,197.72,76782500,198.137211861432
+7/28/2014 12:00:00 AM,197.78,198.09,196.62,197.8,69106500,198.143046895333
+7/29/2014 12:00:00 AM,198.21,198.45,196.92,196.95,80408600,197.962285809406
+7/30/2014 12:00:00 AM,197.66,197.91,196.16,196.98,104105100,197.704463601417
+7/31/2014 12:00:00 AM,195.63,195.78,192.97,193.09,183073500,195.390825055225
+8/1/2014 12:00:00 AM,192.58,193.76,191.57,192.5,189075200,193.639142603931
+8/4/2014 12:00:00 AM,192.87,194.3,192.05,193.89,91108400,193.015442208341
+8/5/2014 12:00:00 AM,193.11,193.6,191.31,192.01,152557200,192.560489908027
+8/6/2014 12:00:00 AM,191.08,192.89,191.08,192.07,94628200,192.262793058203
+8/7/2014 12:00:00 AM,192.96,193.13,190.55,191.03,135507800,191.761274250600
+8/8/2014 12:00:00 AM,191.43,193.37,190.95,193.24,116999400,191.837246493476
+8/11/2014 12:00:00 AM,193.99,194.66,193.71,193.79,74451200,192.325324535637
+8/12/2014 12:00:00 AM,193.63,194.15,192.94,193.53,73605400,192.747543002570
+8/13/2014 12:00:00 AM,194.3,195.06,193.96,194.84,68961600,193.443741272019
+8/14/2014 12:00:00 AM,195.19,195.76,194.98,195.76,57228200,194.384081443413
+8/15/2014 12:00:00 AM,196.49,196.65,194.31,195.72,139872000,195.048037323610
+8/18/2014 12:00:00 AM,196.81,197.45,196.69,197.36,75188600,196.061495973338
+8/19/2014 12:00:00 AM,197.85,198.54,197.44,198.39,58964600,197.228636079637
+8/20/2014 12:00:00 AM,198.15,199.16,198.08,198.92,72725600,198.156230141213
+8/21/2014 12:00:00 AM,199.06,199.76,198.93,199.5,67745800,198.884037817465
+8/22/2014 12:00:00 AM,199.32,199.69,198.74,199.19,76067700,199.247722035620
+8/25/2014 12:00:00 AM,200.16,200.59,199.15,200.2,63806000,199.628191588772
+8/26/2014 12:00:00 AM,200.35,200.82,200.28,200.33,47256100,199.948720877419
+8/27/2014 12:00:00 AM,200.45,200.57,199.94,200.25,47820600,200.157207171355
+8/28/2014 12:00:00 AM,199.59,200.27,199.39,200.14,58267500,200.263985786892
+8/29/2014 12:00:00 AM,200.44,200.73,199.82,200.71,65886200,200.383287551707
+9/2/2014 12:00:00 AM,200.97,200.99,199.86,200.61,72322600,200.491767030516
+9/3/2014 12:00:00 AM,201.35,201.41,200.22,200.5,57371400,200.558365688921
+9/4/2014 12:00:00 AM,200.86,201.58,199.66,200.21,85000300,200.546015392440
+9/5/2014 12:00:00 AM,200.19,201.19,199.41,201.11,102015100,200.616234391061
+9/8/2014 12:00:00 AM,200.94,201.21,200,200.59,64102500,200.666540876288
+9/9/2014 12:00:00 AM,200.42,200.55,198.91,199.32,88482500,200.501841343297
+9/10/2014 12:00:00 AM,199.46,200.2,198.77,200.07,67154300,200.326497042687
+9/11/2014 12:00:00 AM,199.28,200.33,199.12,200.3,66737400,200.230194843711
+9/12/2014 12:00:00 AM,200.12,200.12,198.56,199.13,117408300,200.032434091336
+9/15/2014 12:00:00 AM,199.17,199.32,198.38,198.98,76357300,199.761617779716
+9/16/2014 12:00:00 AM,198.64,200.84,198.5,200.48,116043200,199.708744126373
+9/17/2014 12:00:00 AM,200.8,201.68,199.75,200.75,151153900,199.856743611298
+9/18/2014 12:00:00 AM,201.36,201.85,201.1,201.82,94940000,200.343636657759
+9/19/2014 12:00:00 AM,201.53,201.9,200.29,200.7,121449500,200.657036475268
+9/22/2014 12:00:00 AM,200.33,200.38,198.73,199.15,125433400,200.470757734893
+9/23/2014 12:00:00 AM,198.41,199.26,197.95,198.01,111088300,199.655709578430
+9/24/2014 12:00:00 AM,198.06,199.69,197.52,199.56,107137500,199.264806812164
+9/25/2014 12:00:00 AM,199.05,199.05,196.27,196.34,150009700,198.114071945050
+9/26/2014 12:00:00 AM,196.7,198.39,196.42,197.9,103505800,197.597557453495
+9/29/2014 12:00:00 AM,196.18,197.89,196.05,197.54,95085900,197.395106738589
+9/30/2014 12:00:00 AM,197.7,198.3,196.61,197.02,130138700,197.265840078670
+10/1/2014 12:00:00 AM,196.68,196.77,193.91,194.35,177612400,196.105619098941
+10/2/2014 12:00:00 AM,194.18,195.05,192.35,194.38,157170400,195.227229506183
+10/3/2014 12:00:00 AM,195.71,196.94,195.08,196.52,121466200,195.077563341323
+10/6/2014 12:00:00 AM,197.36,197.6,195.58,196.29,104737900,195.238122427498
+10/7/2014 12:00:00 AM,195.29,195.72,193.22,193.26,147603600,194.791360306270
+10/8/2014 12:00:00 AM,193.36,196.92,192.36,196.64,186054900,195.104301363507
+10/9/2014 12:00:00 AM,196.36,196.6,192.58,192.74,209978700,194.497943777516
+10/10/2014 12:00:00 AM,192.7,193.65,190.49,190.54,221648200,192.573333575508
+10/13/2014 12:00:00 AM,190.47,191.15,187.3,187.41,230050200,189.264998098935
+10/14/2014 12:00:00 AM,188.46,189.82,187.04,187.7,215307000,187.943441567104
+10/15/2014 12:00:00 AM,185.19,187.69,181.92,186.43,380336300,186.998677534993
+10/16/2014 12:00:00 AM,183.05,187.58,182.89,186.27,270175000,186.461014001252
+10/17/2014 12:00:00 AM,188.42,189.75,187.62,188.47,214253300,186.510468181116
+10/20/2014 12:00:00 AM,188.12,190.45,188.07,190.3,129599500,187.604281916997
+10/21/2014 12:00:00 AM,191.7,194.2,191.48,194.07,154476400,191.114690971361
+10/22/2014 12:00:00 AM,194.44,194.91,192.61,192.69,151477500,192.565105444800
+10/23/2014 12:00:00 AM,194.64,196.2,194.26,194.93,154681700,193.794662827283
+10/24/2014 12:00:00 AM,195.23,196.49,194.49,196.43,116840100,195.178086446185
+10/27/2014 12:00:00 AM,195.75,196.45,195.03,196.16,82755000,195.920642651966
+10/28/2014 12:00:00 AM,196.84,198.42,196.73,198.41,106688000,197.071598993331
+10/29/2014 12:00:00 AM,198.59,199.12,196.8,198.11,142365300,197.758805426053
+10/30/2014 12:00:00 AM,197.59,199.61,197.4,199.38,113026700,198.469392454351
+10/31/2014 12:00:00 AM,201.78,201.82,200.77,201.66,146857100,199.906821253401
+11/3/2014 12:00:00 AM,201.92,202.45,201.3,201.77,93539900,200.933436527224
+11/4/2014 12:00:00 AM,201.22,201.6,200.06,201.07,93177300,201.401483522831
+11/5/2014 12:00:00 AM,202.56,202.59,201.45,202.34,91468900,201.772591596234
+11/6/2014 12:00:00 AM,202.41,203.26,201.64,203.15,106742100,202.245639452146
+11/7/2014 12:00:00 AM,203.17,203.6,202.61,203.34,89472200,202.678255715290
+11/10/2014 12:00:00 AM,203.4,204.04,203.13,203.98,65917600,203.129222612079
+11/11/2014 12:00:00 AM,204.07,204.31,203.65,204.18,54299100,203.525086871833
+11/12/2014 12:00:00 AM,203.35,204.24,203.31,203.96,89967500,203.805874452942
+11/13/2014 12:00:00 AM,204.14,204.83,203.21,204.19,84991500,204.009658796674
+11/14/2014 12:00:00 AM,204.13,204.49,203.72,204.24,80335200,204.154676626175
+11/17/2014 12:00:00 AM,203.85,204.58,203.65,204.37,80377300,204.267331312621
+11/18/2014 12:00:00 AM,204.46,205.92,204.44,205.55,75891900,204.517892764766
+11/19/2014 12:00:00 AM,205.3,205.55,204.3,205.22,82229900,204.780441365297
+11/20/2014 12:00:00 AM,204.25,205.71,204.18,205.58,72589800,205.045409524141
+11/21/2014 12:00:00 AM,207.6,207.84,205.98,206.68,142173900,205.430102365324
+11/24/2014 12:00:00 AM,207.19,207.39,206.91,207.26,65675200,205.922701601062
+11/25/2014 12:00:00 AM,207.54,207.79,206.8,207.11,79019800,206.379545428018
+11/26/2014 12:00:00 AM,207.27,207.76,207.03,207.64,56385900,206.809422962135
+11/28/2014 12:00:00 AM,207.52,207.87,206.91,207.2,57890100,207.102524225571
+12/1/2014 12:00:00 AM,206.4,206.54,205.38,205.76,103806900,207.059751279357
+12/2/2014 12:00:00 AM,205.8,207.34,205.78,207.09,74456200,207.007480210850
+12/3/2014 12:00:00 AM,207.28,208.15,207.1,207.89,68873500,207.115091429680
+12/4/2014 12:00:00 AM,207.55,208.26,206.7,207.66,91225300,207.279987586817
+12/5/2014 12:00:00 AM,207.88,208.47,207.55,208,90989800,207.485064772917
+12/8/2014 12:00:00 AM,207.55,208.12,205.93,206.61,108465100,207.480071952543
+12/9/2014 12:00:00 AM,204.37,206.6,203.91,206.47,125039000,207.309593524775
+12/10/2014 12:00:00 AM,205.94,205.98,202.93,203.16,159237100,206.178384800747
+12/11/2014 12:00:00 AM,203.89,206.19,203.71,204.19,158628800,205.335854752281
+12/12/2014 12:00:00 AM,202.65,203.82,200.85,200.89,202123800,203.602338220616
+12/15/2014 12:00:00 AM,202,202.53,198.78,199.51,189556900,201.653689517499
+12/16/2014 12:00:00 AM,198.55,202.4,197.86,197.91,258910900,199.708707996494
+12/17/2014 12:00:00 AM,198.48,202.34,198.29,201.79,252523700,199.381180740188
+12/18/2014 12:00:00 AM,204.78,212.97,203.92,206.78,256995300,202.701686386831
+12/19/2014 12:00:00 AM,206.46,207.33,205.61,206.52,243364900,204.794619819406
+12/22/2014 12:00:00 AM,206.71,207.47,206.46,207.47,148194100,206.208434881170
+12/23/2014 12:00:00 AM,208.2,208.23,207.4,207.75,120621800,207.079756627882
+12/24/2014 12:00:00 AM,208.03,208.34,207.72,207.77,42963400,207.569669899883
+12/26/2014 12:00:00 AM,208.29,208.85,208.25,208.44,57211900,207.940724922975
+12/29/2014 12:00:00 AM,208.25,208.97,208.14,208.72,79532000,208.249346873576
+12/30/2014 12:00:00 AM,208.21,208.37,207.51,207.6,73448300,208.330135495230
+12/31/2014 12:00:00 AM,207.96,208.19,205.39,205.54,130281700,207.958642820624
+1/2/2015 12:00:00 AM,206.39,206.88,204.18,205.43,121408500,207.350373141658
+1/5/2015 12:00:00 AM,204.2,204.37,201.35,201.72,169440600,205.454610987886
+1/6/2015 12:00:00 AM,202.13,202.72,198.85,199.82,208923900,202.947560202961
+1/7/2015 12:00:00 AM,201.46,202.72,200.88,202.31,125069600,201.755879947690
+1/8/2015 12:00:00 AM,204,206.16,203.99,205.9,146056100,202.437907550032
+1/9/2015 12:00:00 AM,206.39,206.42,203.51,204.25,157609800,203.056232404816
+1/12/2015 12:00:00 AM,204.42,204.6,201.92,202.65,144060200,203.291663187962
+1/13/2015 12:00:00 AM,204.15,205.48,200.51,202.08,214372200,203.174861003877
+1/14/2015 12:00:00 AM,199.67,201.1,198.57,200.86,192575000,202.703796156687
+1/15/2015 12:00:00 AM,201.64,202.01,198.88,199.02,175449000,201.609195969251
+1/16/2015 12:00:00 AM,198.75,201.82,198.55,201.63,211716100,201.043867469494
+1/20/2015 12:00:00 AM,202.42,202.72,200.17,202.05,130876700,200.947698654915
+1/21/2015 12:00:00 AM,201.51,203.66,200.94,203.08,122704300,201.251553406946
+1/22/2015 12:00:00 AM,204.02,206.26,202.33,206.1,173707900,202.687188678700
+1/23/2015 12:00:00 AM,205.8,206.1,204.81,204.97,117357700,203.708358727652
+1/26/2015 12:00:00 AM,204.73,205.56,203.85,205.45,91710100,204.445023344084
+1/27/2015 12:00:00 AM,203,204.12,201.74,202.74,133646200,204.562656956810
+1/28/2015 12:00:00 AM,204.16,204.29,199.91,200.14,167686500,203.507964071928
+1/29/2015 12:00:00 AM,200.34,202.3,198.68,201.99,173312500,202.747055068916
+1/30/2015 12:00:00 AM,200.56,202.17,199.13,199.45,197508500,201.771928010511
+2/2/2015 12:00:00 AM,200.07,202.03,197.86,201.92,162707100,201.301634555992
+2/3/2015 12:00:00 AM,203.02,204.85,202.55,204.84,123867400,201.936522050826
+2/4/2015 12:00:00 AM,203.94,205.38,203.51,204.06,133968500,202.591921004691
+2/5/2015 12:00:00 AM,204.83,206.3,204.77,206.12,97731200,203.673030245375
+2/6/2015 12:00:00 AM,206.57,207.24,204.92,205.55,125590100,204.480614250801
+2/9/2015 12:00:00 AM,204.77,205.64,204.13,204.63,87084200,204.899586500646
+2/10/2015 12:00:00 AM,205.89,207.12,204.68,206.81,96142600,205.374880064120
+2/11/2015 12:00:00 AM,206.6,207.45,205.83,206.93,90227200,205.862832698325
+2/12/2015 12:00:00 AM,207.91,208.99,206.97,208.92,97226900,206.782572486749
+2/13/2015 12:00:00 AM,209.08,209.84,208.76,209.78,93617500,207.878135081180
+2/17/2015 12:00:00 AM,209.38,210.32,209.1,210.11,76896000,208.810397777952