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)
        {
        
        }
	}
}