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
-24.41
Tracking Error
0.066
Treynor Ratio
0
Total Fees
$0.00
namespace QuantConnect.Algorithm.CSharp
{
       public class ExploreOptionsArrays : QCAlgorithm
    {
           
        private Symbol optionSymbol;
        private int logged;
        private QuantConnect.Securities.Option.Option ibmOption;
        
        public override void Initialize()
        {
            SetStartDate(2020, 5, 27);  //Set Start Date
            SetCash(100000);             //Set Strategy Cash
            
            var ibm = AddEquity("IBM", Resolution.Minute);
            
            ibmOption = AddOption("IBM", Resolution.Minute);
            //ibmOption.SetFilter(-3, 0, TimeSpan.FromDays(10), TimeSpan.FromDays(300));
            ibmOption.SetFilter(0, 1, TimeSpan.FromDays(10), TimeSpan.FromDays(30));
            optionSymbol = ibmOption.Symbol;
            
            logged = 0;
           
        }

        /// 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)
        {
            OptionChain chain;
            
            if (data.OptionChains.TryGetValue(optionSymbol, out chain))
            {
                if (logged < 2) {
                    var enumerator = chain.GetEnumerator();
                    while (enumerator.MoveNext()) {
                        Log("MoveNext");
                    }
                    logged += 1;
                }
                
                var atmContract = chain
                    .OrderByDescending(i => i.Expiry)
                    .ThenBy(i => Math.Abs(chain.Underlying.Price - i.Strike))
                    .ThenBy(i => i.Right)
                    .FirstOrDefault();
                
                return;

            }

            var x = 1;
        }
    }
}