Overall Statistics |
Total Trades 20 Average Win 0% Average Loss -4.05% Compounding Annual Return -33.016% Drawdown 78.000% Expectancy -1 Net Profit -77.706% Sharpe Ratio -0.924 Sortino Ratio -1.208 Probabilistic Sharpe Ratio 0.000% Loss Rate 100% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.016 Beta -1.64 Annual Standard Deviation 0.258 Annual Variance 0.066 Information Ratio -0.911 Tracking Error 0.41 Treynor Ratio 0.145 Total Fees $23.10 Estimated Strategy Capacity $420000000.00 Lowest Capacity Asset SPY R735QTJ8XC9X Portfolio Turnover 0.47% |
# region imports from AlgorithmImports import * # endregion class CustomFillModelAlgorithm(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 4, 1) self.SetCash(100000) self.Portfolio.MarginCallModel = MyMarginCallModel(self.Portfolio, self.DefaultOrderProperties) self.AddEquity("SPY", Resolution.Daily) def OnData(self, data: Slice): if not self.Portfolio.Invested: self.SetHoldings("SPY", -2) class MyMarginCallModel(DefaultMarginCallModel): def __init__(self, portfolio: SecurityPortfolioManager, defaultOrderProperties: IOrderProperties): super().__init__(portfolio, defaultOrderProperties) def ExecuteMarginCall(self, generatedMarginCallOrders: List[SubmitOrderRequest]) -> List[OrderTicket]: return super().ExecuteMarginCall(generatedMarginCallOrders) def GetMarginCallOrders(self, issueMarginCallWarning: bool) -> List[SubmitOrderRequest]: return super().GetMarginCallOrders(issueMarginCallWarning)