Overall Statistics |
Total Orders 2 Average Win 0% Average Loss 0% Compounding Annual Return 0.328% Drawdown 0.000% Expectancy 0 Start Equity 100000 End Equity 100039.32 Net Profit 0.039% Sharpe Ratio -42.2 Sortino Ratio -54.579 Probabilistic Sharpe Ratio 63.429% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.054 Beta 0.011 Annual Standard Deviation 0.001 Annual Variance 0 Information Ratio -1.873 Tracking Error 0.101 Treynor Ratio -4.779 Total Fees $2.00 Estimated Strategy Capacity $7500000.00 Lowest Capacity Asset SPY R735QTJ8XC9X Portfolio Turnover 0.03% |
from AlgorithmImports import * class KalmanFilterStatisticalArbitrageDemo(QCAlgorithm): def initialize(self) -> None: self.set_start_date(2025, 1, 1) self.spy = self.add_equity("SPY", extended_market_hours=True).symbol self.order_properties = InteractiveBrokersOrderProperties() self.order_properties.time_in_force = TimeInForce.DAY self.order_properties.outside_regular_trading_hours = True def on_data(self, slice): if not self.portfolio.invested \ and self.spy in slice \ and not self.is_market_open(self.spy) \ and self.securities[self.spy].exchange.hours.is_open(self.time, extended_market_hours=True): self.limit_order(self.spy, 1, slice[self.spy].close, order_properties=self.order_properties)