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;
        }
    }
}