Overall Statistics |
Total Trades 248 Average Win 1.30% Average Loss -2.25% Compounding Annual Return -52.348% Drawdown 68.000% Expectancy -0.390 Net Profit -52.445% Sharpe Ratio -0.385 Probabilistic Sharpe Ratio 6.266% Loss Rate 61% Win Rate 39% Profit-Loss Ratio 0.58 Alpha -0.467 Beta 0.89 Annual Standard Deviation 0.754 Annual Variance 0.569 Information Ratio -0.693 Tracking Error 0.705 Treynor Ratio -0.326 Total Fees $247.00 |
using System; using System.Collections.Generic; using System.Linq; using QuantConnect.Data; using QuantConnect.Data.Consolidators; using QuantConnect.Data.Market; using QuantConnect.Securities; using QuantConnect.Securities.Option; namespace QuantConnect.Algorithm.CSharp { public class Tester : QCAlgorithm { private static readonly string UnderlyingTicker = "AAPL"; private static readonly Symbol OptionSymbol = QuantConnect.Symbol.Create( UnderlyingTicker, SecurityType.Option, Market.USA ); private static readonly Symbol UnderlyingSymbol = QuantConnect.Symbol.Create( UnderlyingTicker, SecurityType.Equity, Market.USA ); public override void Initialize() { SetStartDate(new DateTime(2020, 1, 1)); SetEndDate(DateTime.Now); SetCash(50000); AddEquity(UnderlyingSymbol, Resolution.Daily, Market.USA, false); Option option = AddOption(UnderlyingSymbol, Resolution.Minute, Market.USA, false); option.SetFilter(u => u.Strikes(2, 2)); Schedule.On(DateRules.EveryDay(UnderlyingSymbol), TimeRules.Noon, MidDayHandler); } private void MidDayHandler() { if(Portfolio.Invested) { var holding = Portfolio.Values.Where(sh => sh.Invested).First(); Liquidate(holding.Symbol); } OptionChain chain; if(CurrentSlice.OptionChains.TryGetValue(OptionSymbol, out chain)) { foreach (var contract in chain.Contracts.Values.Take(2)) MarketOrder(contract.Symbol, 1); } } public override void OnData(Slice slice) { } } }