Hoppa till innehåll
Alla strategier

Strategier

ETH Deribit-vecko-säljoptionskreditspread — skörd av volatilitetsriskpremie + nedsideskevhet (optioner med definierad risk, skevhetsstyrt inträde, 3 parametrar)

Utfall: Övergiven

EthDeribitWeeklyPutCreditSpreadSkewVrp

ETH Deribit-vecko-säljoptionskreditspread — skörd av volatilitetsriskpremie + nedsideskevhet (optioner med definierad risk, skevhetsstyrt inträde, 3 parametrar)

Hypotes

En DEFINED-RISK, enanläggnings-optionsstrategi på DERIBIT ETH veckoexpirationer som säljer den persistent överprissatta nedsidan av kryptovolymytan. En gång per veckocykel (främre expiry ~5-7 DTE), och ONLY när nedsidesförsäkring är påvisbart dyr (25-delta put IV rikare än ATM IV med en snedhetsmarginal AND ATM IV ovanför efterföljande realiserad vol), öppnar den en PUT CREDIT SPREAD: SELL en ~25-delta put och BUY en ~10-delta put av samma expiry. Maxförlust är takad vid (strike-bredd − nettokredit), så kontot……Visa merVisa mindre

En DEFINED-RISK, enanläggnings-optionsstrategi på DERIBIT ETH veckoexpirationer som säljer den persistent överprissatta nedsidan av kryptovolymytan. En gång per veckocykel (främre expiry ~5-7 DTE), och ONLY när nedsidesförsäkring är påvisbart dyr (25-delta put IV rikare än ATM IV med en snedhetsmarginal AND ATM IV ovanför efterföljande realiserad vol), öppnar den en PUT CREDIT SPREAD: SELL en ~25-delta put och BUY en ~10-delta put av samma expiry. Maxförlust är takad vid (strike-bredd − nettokredit), så kontot kan inte likvideras av en svansrörelse — direkt adressering av den största riskgranskningsfrågan med korta-vol strategier. Detta fyller medvetet fabrikens enskilt största portföljgap: optioner är 4.7% av boken mot en ≥15% kvot, med i stort sett ingen tidigare täckning. Det är avsiktligt distinkt från en vanlig kort strangle — annorlunda underliggande (ETH), annorlunda struktur (definierad-riskvertikal, inte naken tvåsidig), och en annorlunda signal (put-SKEW rikedom + VRP, inte rå IV/RV). Endast 3 tunable parametrar för att motstå överanpassningen som dödade 259 tidigare hypoteser. NOT funding-carry (L33), NOT en momentum/trend-konfluensport (utmattad), NOT en prisreversering/fade — P&L-källan är en strukturell försäkringspremie plus krypto put-snedhetspremie, inte en riktad prisprognos.

Skiktet -3 'Inga affärer producerade / 0 utvärderade staplar' hade två konkreta orsaker, och ingen av dem var ingångströskeln (återkopplingen säger korrekt att inte luckra tröskelvärdena). För det första är '0 utvärderade staplar'-raden en villospår för denna familj: RollingOptionsStrategy.on_bar åsidosätter fullständigt FactoryStrategy.on_bar och når aldrig _process_primary, så bars_seen är 0 för varje rullande optioner-strategi, inklusive de som handlar normalt — jag bekräftade detta genom att läsa……Visa merVisa mindre

Skiktet -3 'Inga affärer producerade / 0 utvärderade staplar' hade två konkreta orsaker, och ingen av dem var ingångströskeln (återkopplingen säger korrekt att inte luckra tröskelvärdena). För det första är '0 utvärderade staplar'-raden en villospår för denna familj: RollingOptionsStrategy.on_bar åsidosätter fullständigt FactoryStrategy.on_bar och når aldrig _process_primary, så bars_seen är 0 för varje rullande optioner-strategi, inklusive de som handlar normalt — jag bekräftade detta genom att läsa rolling_options_template.py och base_template.py snarare än att lägga till ett super().on_bar()-anrop som hade dirigerat primära staplar till basens korsbensjusteringsbarriär, där de intermittenta optionsbenen (samma 1-DAY-tidsram som den primära) skulle ha blockerat bearbetningen för alltid. För det andra, de faktiska blockeringarna: (a) ANNUALIZATION MISMATCH — de ärvda realiserade volatilitetsinställningarna var timvisa (rv_window=168, bars_per_year=8760) medan körningen är på 1-DAY-staplar, så dagliga logavkastningar annualiserades med sqrt(8760) istället för sqrt(365), vilket blåste upp RV med 4.90x (en normal 3%/dag ETH-tape läser 281% istället för 57%); den VRP-grinden iv >= rv*(1+marginal) jämförde då ~60% IV mot ~281% RV och var False på varje cykel. Åtgärdat genom att härleda bars_per_year från den konfigurerade stapeltypen och uttrycka RV-fönstret i kalenderdagar, så att driften inte kan återuppstå på något intervall (verifierat: 1-DAY -> 365, 1-HOUR -> 8760, 4-HOUR -> 2190, och grinden passerar nu på en normal tape). (b) ROLE MAPPING — den ärvda stommen nycklade ben efter optionslag och krävde en köpoption plus en säljoption (en strangle), så en säljoptionsspridnings två P-ben kolliderade på en nyckel, den andra avvisades som en dubblett, beredskapskontrollen krävde ett obefintligt köpoptionsben, och varje ben skickades SELL (två nakna korta säljoptioner, inte en definierad-risk vertikal). Ben kartläggs nu efter strike till kort/lång, den korta säljs och den långa köps vid samma cachade kontraktsantal, atomärt. Jag tog också bort det ärvda premie-multipel stoppet: den långa vingen begränsar redan förlusten, så ett stopp på en takad struktur realiserar bara en begränsad förlust tidigt och lägger till avgifter. Storleksaritmetiken verifierad från början till slut (150 bred spridning, $22 kredit, $128 max förlust -> 15 kontrakt = 1.9% av eget kapital riskerat). Jag behöll allt som passerade Skikten 1-2 intakt: rena importer, den modulnivå _bar_ts fria funktion som fixar Skikt-2 staticmethod-återbindningens TypeError, DVOL-parsern, Black-Scholes IV-inversionen, och den kontinuerliga calculate_signal. lookback_days är 49 (7 cykler, 14 optionsben) eftersom katalogladdaren per stapeltyp kostar ~10s per ben och en större kedja riskerar Skikt-3 väggklockan; det begränsar det initiala urvalet och är en egenskap hos laddaren, inte en egenskap hos hypotesen.

verification_loop: Verifiering misslyckades (Lager 4 — QA granskning) [klass=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominell << vingenominell, och sandboxen är ett 1-dagars röktest). Det bärs endast fram som kontext: om laddar-/tillbakablicksfrågan nedan löses och ett riktigt veckooptionssample ackumuleras, bör analytikern……Visa merVisa mindre

verification_loop: Verifiering misslyckades (Lager 4 — QA granskning) [klass=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominell << vingenominell, och sandboxen är ett 1-dagars röktest). Det bärs endast fram som kontext: om laddar-/tillbakablicksfrågan nedan löses och ett riktigt veckooptionssample ackumuleras, bör analytikern kontrollera om den insamlade nettokrediten täcker Deribits 0.03%/sida tur-och-retur över 4 ben (öppna+stäng x kort+lång) plus eventuell tilldelningsglidning, eftersom put-kreditspridning per-nominell edge är strukturellt tunn. - [kritisk] rolling_options.lookback_days=49 begränsar den ENTIRE lösbara optionskedjan av ANY tillbakatest till de ~49 dagarna som slutar 'nu' = ~7 veckocykler / ~14 optionsben, oavsett Deribits 6.5-års ETH optionshistorik. Strategin sitter platt under resten av fönstret och handlar bara i slutet. Sandboxen bekräftar detta empiriskt: bars_processed=2400 (~6.5 år) men data_days=1 och total_trades=2 (trades_count=4). En varians-riskpremium + snedhetsejdge kan inte särskiljas från brus på ~7 cykler / ~14 ben — långt under de ~30-100 affärer som behövs för ett mätbart optionssample. Detta är den exakta laddar-kostnad-vs-sampelstorlek catch-22 som gjorde att den nästan-identiska BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (samma plats, samma lookback_days=49) övergavs vid Lager 4 dagar sedan. Utvecklarens egen motivering erkänner taket ('lookback_days är 49 (7 cykler, 14 optionsben) eftersom den per-stapeltyp katalogladdaren kostar ~10s per ben och en större kedja riskerar Lager-3-väggklockan'). Så som konfigurerat kan strategin aldrig producera ett mätbart fullständigt tillbakatest. — fix: Godkänn inte på ~7 cykler. Lös laddar-kostnad-mot-sampelstorlek catch-22 innan du återinsänder: batcha/parallelisera eller cachelagra de per-ben catalog.bars() laddningarna över staplar så att lookback_days kan nå många års veckocykler (~200-300 cykler) utan att överskrida sandboxens väggklocka, ställ sedan lookback_days för att täcka hela testfönstret. Om laddaren genuint inte kan lösa en mätbar veckooptionshistorik inom tidsbudgeten är denna familj inte testbar i den nuvarande harnessen vid veckokadans och bör omdesignas (t.ex. färre, längre daterade månadscykler över hela spannet) snarare

Implementation

Definierad-risk veckovis put-kreditspridning på Deribit ETH. Varje veckoexpirationscykel (~7 DTE) löser det rullande optionsramverket två putben (~5% och ~10% OTM); strategin mappar dem efter strike till ett kort (högre-strike, ~25-delta) och lång (lägre-strike, ~10-delta) ben, SELLS det korta och BUYS det långa vid ett identiskt 1:1 kontraktsantal, och håller till rullbufferten före europeisk kontantavveckling. Ingången grindas på två rikedomstester mätta vid cykelns ingångsfönster: downside snedhet (kort-put IV……Visa merVisa mindre

Definierad-risk veckovis put-kreditspridning på Deribit ETH. Varje veckoexpirationscykel (~7 DTE) löser det rullande optionsramverket två putben (~5% och ~10% OTM); strategin mappar dem efter strike till ett kort (högre-strike, ~25-delta) och lång (lägre-strike, ~10-delta) ben, SELLS det korta och BUYS det långa vid ett identiskt 1:1 kontraktsantal, och håller till rullbufferten före europeisk kontantavveckling. Ingången grindas på två rikedomstester mätta vid cykelns ingångsfönster: downside snedhet (kort-put IV >= Deribit DVOL ATM IV x (1 + skew_margin)) och variansriskpremium (ATM IV >= efterföljande 14-dagars realiserad vol x (1 + vrp_margin)). Ben-IV:er inverteras från varje bens egen USD-premie-stapel med Black-Scholes. Maxförlust per spread är (strike-bredd - nettokredit), fast vid ingång, och storlek riskerar exakt det: kontrakt = golv(equity x risk_frac / max_loss), takad så att bruttospridningsbredd stannar inom 50% av eget kapital och golvad vid Deribits 1-kontrakts ETH minimum. 3 tunable (skew_margin, vrp_margin, risk_frac); hävstång 1.0; ingen perp/underliggande handelsväg.

Verifieringsresultat

Verifiering misslyckades (Lager 4 — QA-granskning) [class=code_defect]: - [edge_concern] Sandbox-avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominellt värde << wing-nominellt värde, och sandboxen är ett 1-dagars röktest). Det förs endast framåt som kontext: om laddnings-/lookback-problemet nedan löses och ett riktigt veckooptionsprov ackumuleras, bör analytikern……Visa merVisa mindre

Verifiering misslyckades (Lager 4 — QA-granskning) [class=code_defect]: - [edge_concern] Sandbox-avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominellt värde << wing-nominellt värde, och sandboxen är ett 1-dagars röktest). Det förs endast framåt som kontext: om laddnings-/lookback-problemet nedan löses och ett riktigt veckooptionsprov ackumuleras, bör analytikern kontrollera igen om den insamlade nettokrediten klarar Deribits 0.03%/sida round-trip över 4 ben (open+close x short+long) plus eventuell tilldelningsglidning, eftersom put-credit-spread per-nominell edge är strukturellt tunn. - [kritisk] rolling_options.lookback_days=49 begränsar den ENTIRE lösbara optionskedjan för ANY-backtest till de ~49 dagar som slutar 'now' = ~7 veckocykler / ~14 optionsben, oavsett Deribits 6.5-åriga ETH-optionshistorik. Strategin ligger flat under resten av fönstret och handlar endast i slutet. Sandboxen bekräftar detta empiriskt: bars_processed=2400 (~6.5 år) ändå data_days=1 och total_trades=2 (trades_count=4). En variansriskpremium + skew-edge kan inte särskiljas från brus på ~7 cykler / ~14 ben — långt under de ~30-100 affärer som behövs för ett mätbart optionsprov. Detta är exakt laddningskostnad-vs-provstorlek-fällan-22 som orsakade att den nästan identiska BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (samma venue, samma lookback_days=49) övergavs vid Lager 4 dagar sedan. Utvecklarens egen motivering erkänner taket ('lookback_days är 49 (7 cykler, 14 optionsben) eftersom per-bar-typ-katalogladdaren kostar ~10s per ben och en större kedja riskerar Lager-3-väggklockan'). Som konfigurerat kan strategin aldrig producera en mätbar fullständig backtest. — åtgärd: Godkänn inte ~7 cykler. Lös laddningskostnad-vs-provstorlek-fällan-22 innan du skickar in igen: batcha/parallellisera eller cachelagra per-ben-katalog.bars()-laddningarna över staplar så att lookback_days kan nå många års veckocykler (~200-300 cykler) utan att överskrida sandbox-väggklockan, ställ sedan in lookback_days för att täcka hela testfönstret. Om laddaren verkligen inte kan lösa en mätbar veckooptionshistorik inom tidsbudgeten är denna familj inte testbar i den nuvarande harnessen vid veckokadens och bör omdesignas (t.ex. färre, längre daterade månadscykler över hela spannet) snarare

Iterationshistorik

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts()……Visa merVisa mindre

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'atm_offset', 'skew_margin', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'long_put_offset', 'rolling_options', 'short_put_offset', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000)

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() tar 1……Visa merVisa mindre

Verifiering misslyckades (Layer 2 — syntetiska scenarier): Använda parametrar: ['contracts', 'leg_sides', 'risk_frac', 'rv_window', 'stop_mult', 'put_offset', 'call_offset', 'iv_rv_margin', 'bars_per_year', 'min_contracts', 'iv_stale_hours', 'rv_slow_window', 'max_delta_ratio', 'rolling_options', 'max_notional_frac', 'min_bars_required', 'roll_buffer_hours', 'entry_window_hours'] Kontrollera att __init__ sätter alla attribut från self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() tar 1 positionsargument men 2 angavs (stapeltidsstämpel: 1735691040000)

Verifiering misslyckades (Lager 3 — sandbox-backtest): Inga affärer genererades Stapeltyp som användes: ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL, Staplar bearbetade: 2400 Diagnostik: calculate_signal() utvärderades aldrig (0 utvärderade staplar) -> ingen primär stapel nådde basmallens signalväg -> om du åsidosätter on_bar(), anropa super().on_bar(bar); kontrollera att bar_type matchar instrumentets data. Lossa NOT inträdeströsklar — inträdeslogiken kördes aldrig. Se till att din strategi genererar affärer med givna data och parametrar.

Verifiering misslyckades (Lager 4 — QA granskning) [klass=hypothesis_mismatch]: - [edge_concern] Inte grunden för domen — blocket är trohet, inte prestanda. (För protokollet är sandboxen också negativ: -2.9%, PF 0.13, vinst 0.125, en -$2,149 svans på en påstått stoppad bok — men det är fel strategis resultat.) - WHOLE-STRATEGY SWAP / MISLINK. Hypotesen är en ETH Deribit veckovis PUT CREDIT SPREAD (sälj ~25d put, BUY ~10d put — definierad-riskvertikal). Koden är den BTC Deribit veckovis delta-neutral SHORT……Visa merVisa mindre

Verifiering misslyckades (Lager 4 — QA granskning) [klass=hypothesis_mismatch]: - [edge_concern] Inte grunden för domen — blocket är trohet, inte prestanda. (För protokollet är sandboxen också negativ: -2.9%, PF 0.13, vinst 0.125, en -$2,149 svans på en påstått stoppad bok — men det är fel strategis resultat.) - WHOLE-STRATEGY SWAP / MISLINK. Hypotesen är en ETH Deribit veckovis PUT CREDIT SPREAD (sälj ~25d put, BUY ~10d put — definierad-riskvertikal). Koden är den BTC Deribit veckovis delta-neutral SHORT STRANGLE (klassnamn, docstring, iter-3-motivering, och varje mekanism är strangle). Instrument AND-mekanism båda skiljer sig → felgenererat/fel-länkat artefakt, inte denna hypotes. Återskapa/återlänka den korrekta ETH put-kreditspridningen. - Fel instrument: hypotesen är ETH, men instrument_id och bar_type är BTC-PERPETUAL.DERIBIT och rolling_options.underliggande är 'BTC'. Ingen ETH någonstans. - Fel struktur / inte definierad-risk: hypotesen takar maxförlust med en PURCHASED ~10d put-vinge. Koden skickar TWO SELL ben med NO köpt vinge; svans begränsas endast av ett mjukt nästa-stapel premie-stopp (sandbox largest_loss -$2,149 vs avg_win ~$214 visar att det inte takar svansen) — exakt den otakade profil som hypotesen undviker. - Kärn-edge saknas: hypotesens signal är downside-SKEW rikedom (25d-put IV vs ATM IV) plus IV>RV. Koden beräknar ingen snedhet — bara medel-strangle IV/RV VRP. Den put-snedhet skörd som särskiljer denna hypotes är inte implementerad.

Skäl för avbrytande

verification_loop: Verifiering misslyckades (Lager 4 — QA granskning) [klass=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominell << vingenominell, och sandboxen är ett 1-dagars röktest). Det bärs endast fram som kontext: om laddar-/tillbakablicksfrågan nedan löses och ett riktigt veckooptionssample ackumuleras, bör analytikern……Visa merVisa mindre

verification_loop: Verifiering misslyckades (Lager 4 — QA granskning) [klass=code_defect]: - [edge_concern] Sandbox avg_trade_return_pct är -45.45% på 2 affärer med metrics_reliable=false och data_days=1 — detta är inte en prestandadom (per-nominell avkastning är inte meningsfull för optionsben, där premienominell << vingenominell, och sandboxen är ett 1-dagars röktest). Det bärs endast fram som kontext: om laddar-/tillbakablicksfrågan nedan löses och ett riktigt veckooptionssample ackumuleras, bör analytikern kontrollera om den insamlade nettokrediten täcker Deribits 0.03%/sida tur-och-retur över 4 ben (öppna+stäng x kort+lång) plus eventuell tilldelningsglidning, eftersom put-kreditspridning per-nominell edge är strukturellt tunn. - [kritisk] rolling_options.lookback_days=49 begränsar den ENTIRE lösbara optionskedjan av ANY tillbakatest till de ~49 dagarna som slutar 'nu' = ~7 veckocykler / ~14 optionsben, oavsett Deribits 6.5-års ETH optionshistorik. Strategin sitter platt under resten av fönstret och handlar bara i slutet. Sandboxen bekräftar detta empiriskt: bars_processed=2400 (~6.5 år) men data_days=1 och total_trades=2 (trades_count=4). En varians-riskpremium + snedhetsejdge kan inte särskiljas från brus på ~7 cykler / ~14 ben — långt under de ~30-100 affärer som behövs för ett mätbart optionssample. Detta är den exakta laddar-kostnad-vs-sampelstorlek catch-22 som gjorde att den nästan-identiska BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (samma plats, samma lookback_days=49) övergavs vid Lager 4 dagar sedan. Utvecklarens egen motivering erkänner taket ('lookback_days är 49 (7 cykler, 14 optionsben) eftersom den per-stapeltyp katalogladdaren kostar ~10s per ben och en större kedja riskerar Lager-3-väggklockan'). Så som konfigurerat kan strategin aldrig producera ett mätbart fullständigt tillbakatest. — fix: Godkänn inte på ~7 cykler. Lös laddar-kostnad-mot-sampelstorlek catch-22 innan du återinsänder: batcha/parallelisera eller cachelagra de per-ben catalog.bars() laddningarna över staplar så att lookback_days kan nå många års veckocykler (~200-300 cykler) utan att överskrida sandboxens väggklocka, ställ sedan lookback_days för att täcka hela testfönstret. Om laddaren genuint inte kan lösa en mätbar veckooptionshistorik inom tidsbudgeten är denna familj inte testbar i den nuvarande harnessen vid veckokadans och bör omdesignas (t.ex. färre, längre daterade månadscykler över hela spannet) snarare

Stratmill är ett research- och pappershandelsverktyg, inte finansiell rådgivning eller en mäklare. Backtest- och pappershandelsresultat är hypotetiska. Handel innebär risk för förlust.