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 -15.441 Tracking Error 0.062 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect.Algorithm.CSharp { public class ExploreOptionsArrays : QCAlgorithm { private Symbol optionSymbol; public override void Initialize() { SetStartDate(2020, 5, 27); //Set Start Date SetCash(100000); //Set Strategy Cash var ibm = AddEquity("IBM", Resolution.Minute); var ibmOptions = AddOption("IBM", Resolution.Minute); ibmOptions.SetFilter(-3, 0, TimeSpan.FromDays(10), TimeSpan.FromDays(300)); optionSymbol = ibmOptions.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) { OptionChain chain; if (data.OptionChains.TryGetValue(optionSymbol, out chain)) { var atmContract = chain .OrderByDescending(i => i.Expiry) .ThenBy(i => Math.Abs(chain.Underlying.Price - i.Strike)) .ThenBy(i => i.Right) .FirstOrDefault(); Console.WriteLine(atmContract.UnderlyingSymbol + " " + atmContract.UnderlyingLastPrice); Console.WriteLine(atmContract.Symbol + " " +atmContract.Expiry + " " + atmContract.Strike + " " + atmContract.Right.ToString() + "/r"); return; /*int n = 1; foreach (OptionContract k in chain) { Console.WriteLine(k.Symbol + " " + k.Expiry + " " + k.Strike + " " + k.Right.ToString() + "/n"); } */ //Console.WriteLine(atmContract.ToString()); } //Console.WriteLine(data.Time.ToString("dd/mm/yyyy")); var x = 1; /* if (!Portfolio.Invested) { SetHoldings("IBM", 1); Console.WriteLine("Purchased Stock"); } */ } } }