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 Probabilistic 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 -2.251 Tracking Error 0.062 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect.Algorithm.CSharp { public class VerticalResistanceThrustAssembly : QCAlgorithm { private Symbol spySymbol; public override void Initialize() { SetStartDate(2016, 12, 7); //Set Start Date SetEndDate(2017,1,21); SetCash(1000000); //Set Strategy Cash var spy = AddEquity("SPY", Resolution.Minute); var symbols = new [] {QuantConnect.Symbol.Create("SPY", SecurityType.Equity, Market.USA)}; SetUniverseSelection(new ManualUniverseSelectionModel(symbols)); spy.SetDataNormalizationMode(DataNormalizationMode.Raw); spySymbol = spy.Symbol; var option = AddOption("SPY"); option.SetFilter(-5, 5, TimeSpan.Zero, TimeSpan.FromDays(10)); SetBenchmark(spy.Symbol); } /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here. /// Slice object keyed by symbol containing the stock data public override void OnData(Slice data) { if (!Portfolio.Invested) { OptionChain chain; if (data.OptionChains.TryGetValue("SPY", out chain)) { // find the second call strike under market price expiring today var contract = ( from optionContract in chain.OrderByDescending(x => x.Strike) where optionContract.Right == OptionRight.Put where optionContract.Strike < chain.Underlying.Price select optionContract ).FirstOrDefault(); if (contract != null) { SetHoldings(contract.Symbol, -1); } } } } } }