| Overall Statistics |
|
Total Orders 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Start Equity 100000 End Equity 100000 Net Profit 0% Sharpe Ratio 0 Sortino Ratio 0 Probabilistic Sharpe Ratio 0% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 Estimated Strategy Capacity $0 Lowest Capacity Asset Portfolio Turnover 0% Drawdown Recovery 0 |
from AlgorithmImports import *
#from Selection.OptionUniverseSelectionModel import OptionUniverseSelectionModel
class USEquityOptionsUniverseFrameworkAlgorithm(QCAlgorithm):
def initialize(self) -> None:
self.set_start_date(2024, 9, 1)
self.set_end_date(2024, 10, 1)
self.set_cash(100000)
self.add_universe_selection(EquityOptionsUniverseSelectionModel())
def on_data(self, data):
for _, chain in data.option_chains.items():
expiry = min(x.expiry for x in chain)
self.quit(f'Days to expiry: {(expiry - self.time).days}')
class EquityOptionsUniverseSelectionModel(OptionUniverseSelectionModel):
def __init__(self) -> None:
super().__init__(timedelta(1), self.select_option_chain_symbols)
def select_option_chain_symbols(self, dt: datetime) -> List[Symbol]:
return [Symbol.create("NVDA", SecurityType.OPTION, Market.USA)]
def filter(self, universe: OptionFilterUniverse) -> OptionFilterUniverse:
return universe.include_weeklys().expiration(30, 90)