| Overall Statistics |
|
Total Trades 253 Average Win 0% Average Loss 0% Compounding Annual Return 21.309% Drawdown 6.000% Expectancy 0 Net Profit 9.978% Sharpe Ratio 1.578 Probabilistic Sharpe Ratio 62.677% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.07 Beta 0.339 Annual Standard Deviation 0.14 Annual Variance 0.02 Information Ratio -1.307 Tracking Error 0.172 Treynor Ratio 0.652 Total Fees $253.00 |
from QuantConnect.Orders.Fills import *
class MooMocEquityFillModel(FillModel):
def __init__(self, algorithm):
self.algorithm = algorithm
def MarketOnCloseFill(self, security, order):
fill = super().MarketOnCloseFill(security, order)
if fill.FillQuantity == 0:
return fill
else:
# Note: Ignoring slippage
self.algorithm.Debug(f"MarketOnCloseFill original FillPrice={fill.FillPrice} new FillPrice={security.Close}")
fill.FillPrice = security.Close
return fill
def MarketOnOpenFill(self, security, order):
fill = super().MarketOnOpenFill(security, order)
if fill.FillQuantity == 0:
return fill
else:
# Note: Ignoring slippage
self.algorithm.Debug(f"MarketOnOpenFill original FillPrice={fill.FillPrice} new FillPrice={security.Open}")
fill.FillPrice = security.Open
return fill
class DynamicResistanceGearbox(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 6, 22) # Set Start Date
self.SetCash(100000) # Set Strategy Cash
ticker = "BA"
self.equity = self.AddEquity(ticker, Resolution.Minute)
self.equity.SetDataNormalizationMode(DataNormalizationMode.Raw)
self.equity.SetFillModel(MooMocEquityFillModel(self))
self.Schedule.On(self.DateRules.EveryDay(ticker), self.TimeRules.BeforeMarketClose(ticker, 20), self.SubmitMarketOnCloseOrders) # MarketOnClose orders must be placed with at least a 16 minute buffer before market close.
self.Schedule.On(self.DateRules.EveryDay(ticker), self.TimeRules.At(16, 30), self.SubmitMarketOnOpenOrders)
def SubmitMarketOnCloseOrders(self):
self.MarketOnCloseOrder(self.equity.Symbol, 1)
def SubmitMarketOnOpenOrders(self):
self.MarketOnOpenOrder(self.equity.Symbol, 1)
def OnData(self, slice):
pass