| Overall Statistics |
|
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 16.013% Drawdown 16.700% Expectancy 0 Net Profit 25.035% Sharpe Ratio 0.616 Sortino Ratio 0.834 Probabilistic Sharpe Ratio 42.565% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0 Beta 0.999 Annual Standard Deviation 0.142 Annual Variance 0.02 Information Ratio -0.55 Tracking Error 0 Treynor Ratio 0.088 Total Fees $1.31 Estimated Strategy Capacity $1000000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X Portfolio Turnover 0.19% |
# region imports
from AlgorithmImports import *
# endregion
class CustomFillModelAlgorithm(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2022, 6, 28)
self.SetCash(100000)
security = self.AddEquity("SPY", Resolution.Daily)
security.SetFillModel(MyFillModel())
def OnData(self, data: Slice):
if not self.Portfolio.Invested:
self.SetHoldings("SPY", 1)
class MyFillModel(FillModel):
def MarketFill(self, asset: Security, order: MarketOrder) -> OrderEvent:
return super().MarketFill(asset, order)
def LimitFill(self, asset: Security, order: LimitOrder) -> OrderEvent:
return super().LimitFill(asset, order)
def LimitIfTouchedFill(self, asset: Security, order: LimitIfTouchedOrder) -> OrderEvent:
return super().LimitIfTouchedFill(asset, order)
def StopMarketFill(self, asset: Security, order: StopMarketOrder) -> OrderEvent:
return super().StopMarketFill(asset, order)
def StopLimitFill(self, asset: Security, order: StopLimitOrder) -> OrderEvent:
return super().StopLimitFill(asset, order)
def TrailingStopFill(self, asset: Security, order: TrailingStopOrder) -> OrderEvent:
return super().TrailingStopFill(asset, order)
def MarketOnOpenFill(self, asset: Security, order: MarketOnOpenOrder) -> OrderEvent:
return super().MarketOnOpenFill(asset, order)
def MarketOnCloseFill(self, asset: Security, order: MarketOnCloseOrder) -> OrderEvent:
return super().MarketOnCloseFill(asset, order)
def ComboMarketFill(self, order: Order, parameters: FillModelParameters) -> List[OrderEvent]:
return super().ComboMarketFill(order, parameters)
def ComboLimitFill(self, order: Order, parameters: FillModelParameters) -> List[OrderEvent]:
return super().ComboLimitFill(order, parameters)
def ComboLegLimitFill(self, order: Order, parameters: FillModelParameters) -> List[OrderEvent]:
return super().ComboLegLimitFill(order, parameters)