| 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 -0.702 Tracking Error 0.127 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset |
namespace QuantConnect.Algorithm.CSharp
{
public class CalmFluorescentPinkShark : QCAlgorithm
{
Symbol _symbol;
public override void Initialize()
{
SetStartDate(2021, 1, 1);
SetEndDate(2021, 02, 28);
SetCash(100000);
SetWarmUp(2);
var equity = AddEquity("SPY", Resolution.Minute);
equity.SetDataNormalizationMode(DataNormalizationMode.Raw);
_symbol = equity.Symbol;
SetBenchmark("SPY");
var option = AddOption(_symbol, Resolution.Minute);
option.SetFilter(-20, 20, TimeSpan.FromDays(30), TimeSpan.FromDays(60));
option.PriceModel = OptionPriceModels.CrankNicolsonFD();
// Every week 30 mins after market is open
Schedule.On(DateRules.WeekStart(_symbol, 0), TimeRules.AfterMarketOpen(_symbol, 30), () =>
{
if (IsWarmingUp) return;
RunWeeklySchedule();
});
}
private void RunWeeklySchedule()
{
foreach(var i in this.CurrentSlice.OptionChains)
{
var chain = i.Value;
var option = chain.Where(x => x.Right == OptionRight.Call)
.OrderByDescending(x => x.Expiry)
.OrderByDescending(x => x.Greeks.Delta)
.FirstOrDefault();
if (option != null)
{
Plot("Options", "Delta", option.Greeks.Delta);
Plot("Options", "Strike", option.Strike);
Debug($"Expiration: {option.Expiry}");
Debug($"Strike: {option.Strike}");
Debug($"Delta: {option.Greeks.Delta}");
}
}
}
}
}