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