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)