Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
using MathNet.Numerics.Statistics; using Python.Runtime; namespace QuantConnect.Algorithm.CSharp { public class MinuteJumpDetection : QCAlgorithm { public override void Initialize() { SetStartDate(2009, 06, 01); SetEndDate(2020, 01, 01); SetCash(3000); SetTimeZone(TimeZones.NewYork); // NB: note that fill-forward does not actually fill-forward while market is closed! var futureES = AddFuture(Futures.Indices.SP500EMini, Resolution.Minute, fillDataForward: true); futureES.SetFilter(x => x.FrontMonth()); } private Symbol currentContract = null; private TradeBarConsolidator consolidator = null; private HashSet<Symbol> seenFrontMonths = new HashSet<Symbol>(); private TradeBar prevBar = null; public override void OnData(Slice slice) { foreach (var chain in slice.FutureChains) { foreach (var contract in chain.Value) { // Second clause prevents buggy back-and-forth flipping of front month in early 2018 if (currentContract != contract.Symbol && !seenFrontMonths.Contains(contract.Symbol)) { Debug($"Cur: {currentContract}"); Debug($"New: {contract.Expiry}\t{contract.UnderlyingSymbol}\t{contract.Symbol}"); currentContract = contract.Symbol; seenFrontMonths.Add(contract.Symbol); } } } if (!slice.Bars.ContainsKey(currentContract)) return; var b = slice.Bars[currentContract]; if (prevBar != null) { if (Math.Abs(b.High - b.Open) > 6M && Math.Abs(b.High - b.Close) > 6M) { Debug($"{b.Time.ToString("yyyyMMdd HHmm")} {b.Open} {b.High} {b.Low} {b.Close} {b.Volume}"); } if (Math.Abs(b.Low - b.Open) > 6M && Math.Abs(b.Low - b.Close) > 6M) { Debug($"{b.Time.ToString("yyyyMMdd HHmm")} {b.Open} {b.High} {b.Low} {b.Close} {b.Volume}"); } // if (Math.Abs(b.High - b.Open) > 10M || Math.Abs(b.High - b.Close) > 10M) { // Debug($"{b.Time.ToString("yyyyMMdd HHmm")} {b.Open} {b.High} {b.Low} {b.Close} {b.Volume}"); // } } prevBar = b; } } }