Overall Statistics |
Total Orders 10 Average Win 0.61% Average Loss -1.08% Compounding Annual Return 162.131% Drawdown 1.300% Expectancy 0.249 Start Equity 50000 End Equity 50670 Net Profit 1.340% Sharpe Ratio 3.869 Sortino Ratio 0 Probabilistic Sharpe Ratio 60.740% Loss Rate 20% Win Rate 80% Profit-Loss Ratio 0.56 Alpha 0.257 Beta 1.109 Annual Standard Deviation 0.122 Annual Variance 0.015 Information Ratio 2.496 Tracking Error 0.111 Treynor Ratio 0.424 Total Fees $10.00 Estimated Strategy Capacity $2500000.00 Lowest Capacity Asset SPXW 32E3B8UZGP5DA|SPX 31 Portfolio Turnover 0.82% |
from AlgorithmImports import * class SPXWeeklyOptionsDemoAlgorithm(QCAlgorithm): def initialize(self): self.set_start_date(2024, 1, 8) self.set_end_date(2024, 1, 12) self.set_cash(50000) # Add SPX and weekly SPX options self.spx = self.add_index("SPX") spxw = self.add_index_option(self.spx.symbol, "SPXW") self.spxw_option = spxw.symbol spxw.set_filter(lambda u: (u.strikes(-50, 50).expiration(0, 3).puts_only().include_weeklys())) self.current_option_symbol = None def on_data(self,slice): if self.time.hour == 12 and self.time.minute == 55: # Select an option by strike offset chain = slice.option_chains.get_value(self.spxw_option) short_contracts = [contract for contract in chain if contract.expiry.date() == self.Time.date() and contract.right == 1 and contract.bid_price != 0 and contract.strike <= chain.underlying.close - 5] contract_short = sorted(short_contracts, key = lambda x: x.strike, reverse=True)[0] # Select the highest strike # Order short symbol = contract_short.symbol self.Securities[symbol].set_fee_model(InteractiveBrokersFeeModel()) self.Securities[symbol].set_buying_power_model(BuyingPowerModel.NULL) self.market_order(symbol, -1) self.current_option_symbol = symbol # Check if the stop is reached or the option is expired at 16:00 if self.portfolio.invested == True: symbol = self.current_option_symbol if (self.time.hour == 16 and self.time.minute == 0): self.liquidate(symbol) elif self.Securities[symbol].high >= 8: self.liquidate(symbol)