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 QuantConnect.Securities.Option; namespace QuantConnect.Algorithm.CSharp { public class BasicTemplateAlgorithm : QCAlgorithm { private bool initialized; public override void Initialize() { SetStartDate(2017, 10, 07); SetEndDate(2017, 10, 11); SetCash(100000); SetBenchmark(dt => 1m); //AddEquity("SPY", Resolution.Minute); AddOption("SPY", Resolution.Minute).SetFilter(f => f .Strikes(-2, +2) .Expiration(TimeSpan.Zero, QuantConnect.Time.MaxTimeSpan) ); } public override void OnData(Slice data) { } public override void OnSecuritiesChanged(SecurityChanges changes) { if (initialized || changes.AddedSecurities.OfType<Option>().Count() == 0) { return; } var averageStrike = changes.AddedSecurities.OfType<Option>().Average(o => o.StrikePrice); var atm = changes.AddedSecurities.OfType<Option>() .OrderBy(o => Math.Abs(o.StrikePrice - averageStrike)) .First(); var securityVolume = new Identity("security-volume"); var tradeBarVolume = Identity(atm.Symbol, Field.Volume, "trade-bar-volume"); tradeBarVolume.Updated += (sender, args) => securityVolume.Update(args.EndTime, atm.Volume); PlotIndicator(atm.Symbol.ToString(), tradeBarVolume, securityVolume); initialized = true; } } }