Strategijos
ETH Deribit savaitinis put-credit-spread — volatilumo rizikos premijos ir neigiamosios pusės iškreiptumo išnaudojimas (apibrėžtos rizikos opcionai, iškreiptumo sąlyga, 3 parametrų)
Rezultatas: Atsisakyta
EthDeribitWeeklyPutCreditSpreadSkewVrp
ETH Deribit savaitinis put-credit-spread — volatilumo rizikos premijos ir neigiamosios pusės iškreiptumo išnaudojimas (apibrėžtos rizikos opcionai, iškreiptumo sąlyga, 3 parametrų)
Hipotezė
DEFINED-RISK, vienos prekybos vietos opcionų strategija, taikoma DERIBIT ETH savaitiniams galiojimo terminams, parduodanti nuolat pervertintą neigiamosios pusės kripto volatiliškumo paviršiaus dalį. Kartą per savaitinį ciklą (artimiausias galiojimo terminas ~5-7 DTE) ir ONLY, kai akivaizdžiai brangus neigiamosios pusės draudimas (25 delta put IV yra brangesnė už ATM IV, atsižvelgiant į iškreiptumo maržą AND ATM IV virš slenkančio realizuoto kintamumo), ji atidaro PUT CREDIT SPREAD: SELL vieną ~25 delta put ir BUY……Rodyti daugiauRodyti mažiau
DEFINED-RISK, vienos prekybos vietos opcionų strategija, taikoma DERIBIT ETH savaitiniams galiojimo terminams, parduodanti nuolat pervertintą neigiamosios pusės kripto volatiliškumo paviršiaus dalį. Kartą per savaitinį ciklą (artimiausias galiojimo terminas ~5-7 DTE) ir ONLY, kai akivaizdžiai brangus neigiamosios pusės draudimas (25 delta put IV yra brangesnė už ATM IV, atsižvelgiant į iškreiptumo maržą AND ATM IV virš slenkančio realizuoto kintamumo), ji atidaro PUT CREDIT SPREAD: SELL vieną ~25 delta put ir BUY vieną ~10 delta put tuo pačiu galiojimo terminu. Didžiausias nuostolis apribotas iki (strike pločio − grynojo kredito), todėl dėl staigaus kainos pokyčio sąskaita negali būti likviduota — tiesiogiai sprendžiama didžiausia rizikos peržiūros pastaba dėl short-vol strategijų. Ši strategija sąmoningai užpildo didžiausią gamyklos portfelio spragą: opcionai sudaro 4.7% portfelio, palyginti su ≥15% kvota, o ankstesnė aprėptis iš esmės lygi nuliui. Ji sąmoningai skiriasi nuo paprasto short strangle: skiriasi bazinis aktyvas (ETH), struktūra (apibrėžtos rizikos vertikalusis spread, o ne nepadengtos pozicijos abiejose pusėse) ir signalas (put-SKEW brangumas + VRP, o ne neapdorotas IV/RV). Tik 3 reguliuojami parametrai — taip siekiama išvengti perpritaikymo, dėl kurio žlugo 259 ankstesnių hipotezių. NOT finansavimo pajamingumo (L33), NOT impulso / tendencijos konfluencijos perėmimas (išnaudotas), NOT kainos apsisukimas / išblėsimas — P&L šaltinis yra struktūrinė draudimo premija ir kripto put iškreiptumo premija, o ne krypties kainos prognozė.
Layer-3 rezultatas „No trades produced / 0 evaluated bars“ turėjo dvi konkrečias priežastis, ir nei viena iš jų nebuvo įėjimo slenkstis (grįžtamasis ryšys teisingai sako, kad slenksčių nereikia švelninti). Pirma, eilutė „0 evaluated bars“ yra klaidinantis vingis šiai šeimai: RollingOptionsStrategy.on_bar visiškai perrašo FactoryStrategy.on_bar ir niekada nepasiekia _process_primary, todėl bars_seen yra 0 kiekvienai slenkančiųjų opcionų strategijai, įskaitant tas, kurios prekiauja normaliai — tai patvirtinau……Rodyti daugiauRodyti mažiau
Layer-3 rezultatas „No trades produced / 0 evaluated bars“ turėjo dvi konkrečias priežastis, ir nei viena iš jų nebuvo įėjimo slenkstis (grįžtamasis ryšys teisingai sako, kad slenksčių nereikia švelninti). Pirma, eilutė „0 evaluated bars“ yra klaidinantis vingis šiai šeimai: RollingOptionsStrategy.on_bar visiškai perrašo FactoryStrategy.on_bar ir niekada nepasiekia _process_primary, todėl bars_seen yra 0 kiekvienai slenkančiųjų opcionų strategijai, įskaitant tas, kurios prekiauja normaliai — tai patvirtinau perskaitęs rolling_options_template.py ir base_template.py, o ne pridėdamas super().on_bar() iškvietimą, kuris būtų nukreipęs pirminius barus į bazinės klasės tarpkojomis išlygiavimo barjerą, kur protarpiniai opcionų kojų barai (tas pats 1-DAY laiko intervalas kaip ir pirminis) būtų užblokavę apdorojimą visam laikui. Antra, tikrieji blokatoriai: (a) ANNUALIZATION MISMATCH — paveldimi realizuoto svyravimo nustatymai buvo valandiniai (rv_window=168, bars_per_year=8760), o vykdymas vyksta su 1-DAY barais, todėl dienos logaritminės grąžos buvo anualizuotos su sqrt(8760) vietoj sqrt(365), išpūsdamos RV 4.90x kartus (įprasta 3%/dieną ETH juosta rodo 281% vietoj 57%); tuomet VRP slenkstis iv >= rv*(1+margin) lygino ~60% IV su ~281% RV ir kiekvieną ciklą buvo False. Pataisyta išvedant bars_per_year iš sukonfigūruoto baro tipo ir išreiškiant RV langą kalendorinėmis dienomis, kad nukrypimas negalėtų pasikartoti su jokiu intervalu (patikrinta: 1-DAY -> 365, 1-HOUR -> 8760, 4-HOUR -> 2190, ir slenkstis dabar praeinamas su įprasta juosta). (b) ROLE MAPPING — paveldėtas karkasas susiejojo kojas pagal opciono tipą ir reikalavo vieno pirkimo (call) plius vieno pardavimo (put) opciono (strangle), todėl put spredo dvi P kojos susidūrė viename rakte, antroji buvo atmesta kaip dublikatas, parengties patikra reikalavo neegzistuojančios pirkimo opciono kojos, ir kiekviena koja buvo pateikiama SELL (du neuždengti trumpi put opcionai, o ne apibrėžtos rizikos vertikalus spredas). Kojos dabar susiejamos pagal įvykdymo kainą į trumpą/ilgą, trumpoji parduodama, o ilgoji perkama tuo pačiu talpykloje saugomu kontraktų skaičiumi, atomiškai. Taip pat pašalinau paveldėtą premijos kartotinumo stabdį: ilgoji sparno koja jau riboja nuostolį, todėl stabdis apribotoje struktūroje tik anksčiau realizuoja apribotą nuostolį ir prideda mokesčių. Pozicijos dydžio aritmetika patikrinta nuo pradžios iki galo (150 pločio spredas, $22 kreditas, $128 maksimalus nuostolis -> 15 kontraktai = 1.9% rizikuojamo kapitalo). Išlaikiau nepakeistą viską, kas praėjo Layers 1-2: švarius importus, modulio lygio laisvą funkciją _bar_ts, išsprendžiančią Layer-2 staticmethod persiejimo TypeError, DVOL analizatorių, Black-Scholes IV atvirkštinį skaičiavimą ir nepertraukiamą calculate_signal. lookback_days yra 49 (7 ciklai, 14 opcionų kojos), nes vienam baro tipui skirtas katalogo įkroviklis kainuoja ~10s vienai kojai, o didesnė grandinė rizikuoja Layer-3 realaus laiko riba; tai apriboja pradinį pavyzdį ir yra įkroviklio savybė, o ne hipotezės savybė.
verification_loop: Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% esant 2 sandoriams, kai metrics_reliable=false ir data_days=1 — tai nėra veiklos rezultatų vertinimas (grąža vienam nominalo vienetui opcionų kojoms nėra prasminga, nes premijos nominali vertė << apsauginės kojos nominalios vertės, o smėlio dėžė yra 1 dienų bandomasis testas). Tai pateikiama tik kaip kontekstas: jei toliau nurodyta įkėlimo / retrospektyvinio laikotarpio……Rodyti daugiauRodyti mažiau
verification_loop: Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% esant 2 sandoriams, kai metrics_reliable=false ir data_days=1 — tai nėra veiklos rezultatų vertinimas (grąža vienam nominalo vienetui opcionų kojoms nėra prasminga, nes premijos nominali vertė << apsauginės kojos nominalios vertės, o smėlio dėžė yra 1 dienų bandomasis testas). Tai pateikiama tik kaip kontekstas: jei toliau nurodyta įkėlimo / retrospektyvinio laikotarpio problema bus išspręsta ir susikaups tikra savaitinių opcionų imtis, analitikas turėtų dar kartą patikrinti, ar surinktas grynasis kreditas viršija Deribit 0.03% už pusę viso sandorio ciklo, apimančio 4 kojas (atidarymas+uždarymas × trumpoji+ilgoji), ir galimą nuostolį dėl priskyrimo praslydimo, nes put credit spread grąžos vienam nominalo vienetui pranašumas struktūriškai menkas. - [kritinis] rolling_options.lookback_days=49 apriboja ANY atgalinio testavimo opcionų grandinę, kurią galima išspręsti per ENTIRE, maždaug 49 dienomis iki „dabar“ = ~7 savaitinių ciklų / ~14 opcionų kojų, nepaisant 6.5 metų Deribit ETH opcionų istorijos. Likusią lango dalį strategija lieka be pozicijų ir prekiauja tik laikotarpio pabaigoje. Smėlio dėžė tai patvirtina empiriškai: bars_processed=2400 (~6.5 metų), tačiau data_days=1 ir total_trades=2 (trades_count=4). Variacijos rizikos premijos ir iškreiptumo pranašumo neįmanoma atskirti nuo triukšmo turint ~7 ciklų / ~14 kojų — gerokai mažiau nei ~30-100 sandorių, reikalingų išmatuojamai opcionų imčiai. Būtent ši įkėlimo sąnaudų ir imties dydžio aklavietė-22 lėmė, kad beveik identiška BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp strategija (ta pati prekybos vieta, tas pats lookback_days=49) buvo atmesta Layer 4 dienų prieš tai. Paties kūrėjo paaiškinime pripažįstamas šis apribojimas („lookback_days yra 49 (7 ciklų, 14 opcionų kojų), nes katalogo įkėlimas kiekvienam barų tipui kainuoja ~10s vienai kojai, o didesnė grandinė kelia grėsmę Layer-3 vykdymo laiko limitui“). Esant dabartinei konfigūracijai, strategija niekada negali sukurti išmatuojamo viso laikotarpio atgalinio testo. — pataisymas: neperduokite jos su ~7 ciklais. Prieš pateikdami iš naujo išspręskite įkėlimo sąnaudų ir imties dydžio aklavietę-22: grupuokite / vykdykite lygiagrečiai arba talpykloje saugokite kiekvienos kojos catalog.bars() įkėlimus per barus, kad lookback_days galėtų aprėpti daugelį savaitinių ciklų metų (~200-300 ciklų) neviršydama smėlio dėžės vykdymo laiko limito, tada nustatykite lookback_days, kad apimtų visą testavimo langą. Jei įkėliklis iš tiesų negali per skirtą laiką apdoroti išmatuojamos savaitinių opcionų istorijos, šios šeimos neįmanoma testuoti dabartinėje savaitinio dažnio aplinkoje ir strategiją reikėtų pertvarkyti (pavyzdžiui, naudoti mažiau, ilgesnio termino mėnesinių ciklų per visą laikotarpį), užuot
Įgyvendinimas
Apibrėžtos rizikos savaitinis put credit spread Deribit ETH. Kiekvieno savaitinio galiojimo ciklo metu (~7 DTE) rolling-options karkasas nustato dvi put kojas (~5% ir ~10% OTM); strategija pagal strike kainą priskiria jas trumpajai (aukštesnio strike, ~25 delta) ir ilgajai (žemesnio strike, ~10 delta) kojai, SELLS trumpąją ir BUYS ilgąją, naudodama vienodą 1:1 kontraktų skaičių, o poziciją laiko iki pratęsimo rezervo prieš Europos grynųjų pinigų atsiskaitymą. Įėjimą dviejų brangumo testų rezultatai lemia ciklo……Rodyti daugiauRodyti mažiau
Apibrėžtos rizikos savaitinis put credit spread Deribit ETH. Kiekvieno savaitinio galiojimo ciklo metu (~7 DTE) rolling-options karkasas nustato dvi put kojas (~5% ir ~10% OTM); strategija pagal strike kainą priskiria jas trumpajai (aukštesnio strike, ~25 delta) ir ilgajai (žemesnio strike, ~10 delta) kojai, SELLS trumpąją ir BUYS ilgąją, naudodama vienodą 1:1 kontraktų skaičių, o poziciją laiko iki pratęsimo rezervo prieš Europos grynųjų pinigų atsiskaitymą. Įėjimą dviejų brangumo testų rezultatai lemia ciklo įėjimo lange: neigiamosios pusės iškreiptumas (trumposios put IV >= Deribit DVOL ATM IV x (1 + skew_margin)) ir variacijos rizikos premija (ATM IV >= slenkantis 14 dienų realizuotas kintamumas x (1 + vrp_margin)). Kojų IV išvedamos iš kiekvienos kojos USD premijos baro, naudojant Black-Scholes. Didžiausias nuostolis vienam spread yra (strike pločio ir grynojo kredito skirtumas), nustatomas įėjimo metu, o pozicijos dydis apskaičiuojamas tik pagal jį: kontraktai = floor(nuosavas kapitalas x risk_frac / max_loss), skaičių apribojant taip, kad bendrasis spread plotis neviršytų 50% nuosavo kapitalo, ir nustatant Deribit 1 kontrakto ETH minimumą. 3 reguliuojami parametrai (skew_margin, vrp_margin, risk_frac); finansinis svertas 1.0; nėra perp / bazinio aktyvo prekybos kelio.
Patikros rezultatai
Patikrinimas nepavyko (4 sluoksnis — QA peržiūra) [class=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% per 2 sandorius su metrics_reliable=false ir data_days=1 — tai nėra rezultatų vertinimas (grąža nominaliojo dydžio atžvilgiu nėra prasminga opcionų kojoms, kai premijos nominalas << sparno nominalas, o smėlio dėžė yra 1 dienų bandymas). Ji perkeliama toliau tik kaip kontekstas: jei toliau aprašyta įkroviklio/atgalinio žvilgsnio problema bus išspręsta ir susikaups tikra savaitinių……Rodyti daugiauRodyti mažiau
Patikrinimas nepavyko (4 sluoksnis — QA peržiūra) [class=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% per 2 sandorius su metrics_reliable=false ir data_days=1 — tai nėra rezultatų vertinimas (grąža nominaliojo dydžio atžvilgiu nėra prasminga opcionų kojoms, kai premijos nominalas << sparno nominalas, o smėlio dėžė yra 1 dienų bandymas). Ji perkeliama toliau tik kaip kontekstas: jei toliau aprašyta įkroviklio/atgalinio žvilgsnio problema bus išspręsta ir susikaups tikra savaitinių opcionų imtis, analitikas turėtų iš naujo patikrinti, ar surinktas grynasis kreditas padengia Deribit 0.03% už pusę už pirkimo-pardavimo ciklą per 4 kojas (atidarymas+uždarymas x short+long) pridėjus bet kokį priskyrimo slydimą, nes put kredito spredo pranašumas nominaliojo dydžio atžvilgiu yra struktūriškai menkas. - [critical] rolling_options.lookback_days=49 apriboja ENTIRE išsprendžiamą ANY atgalinio testavimo opcionų grandinę iki ~49 dienų, pasibaigiančių „dabar" = ~7 savaitinių ciklų / ~14 opcionų kojų, nepaisant Deribit 6.5 metų ETH opcionų istorijos. Strategija likusį laikotarpį lieka be pozicijų ir prekiauja tik pačioje pabaigoje. Smėlio dėžė tai empiriskai patvirtina: bars_processed=2400 (~6.5 metai), tačiau data_days=1 ir total_trades=2 (trades_count=4). Dispersijos rizikos premijos + iškrypimo pranašumo neįmanoma atskirti nuo triukšmo turint ~7 ciklus / ~14 kojas — gerokai mažiau nei ~30-100 sandorių, reikalingų išmatuojamai opcionų imčiai. Tai yra ta pati įkroviklio sąnaudų ir imties dydžio spąstų-22 problema, dėl kurios prieš kelias dienas 4 sluoksnyje buvo atmesta beveik identiška BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp (ta pati birža, tas pats lookback_days=49). Paties kūrėjo pagrindime pripažįstamas apribojimas („lookback_days yra 49 (7 ciklai, 14 opcionų kojos), nes katalogo įkroviklis pagal juostų tipą kainuoja ~10s už koją, o didesnė grandinė kelia grėsmę -3 sluoksnio laiko ribai"). Esamai konfigūracijai strategija niekada negali sugeneruoti išmatuojamo pilno atgalinio testavimo. — pataisa: Nepraleiskite toliau su ~7 ciklais. Prieš pateikdami iš naujo išspręskite įkroviklio sąnaudų ir imties dydžio spąstų-22 problemą: sugrupuokite/lygiagretinkite arba talpykloje saugokite catalog.bars() įkėlimus kiekvienai kojai per juostas, kad lookback_days galėtų pasiekti daugybę metų savaitinių ciklų (~200-300 ciklai) neviršydamas smėlio dėžės laiko ribos, tuomet nustatykite lookback_days taip, kad apimtų visą testavimo langą. Jei įkroviklis iš tiesų negali išspręsti išmatuojamos savaitinių opcionų istorijos per skirtą laiką, ši šeima nėra testuojama dabartiniame įrankyje savaitiniu ritmu ir turėtų būti pertvarkyta (pvz., mažesnis, ilgesnio termino mėnesinių ciklų skaičius visame periode), o ne
Iteracijų istorija
Patikra nepavyko (Layer 2 — sintetiniai scenarijai): Naudoti parametrai: ['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'] Patikrinkite, ar __init__ nustato visus atributus naudodamas self.parameters.get(). - steady_uptrend: TypeError:……Rodyti daugiauRodyti mažiau
Patikra nepavyko (Layer 2 — sintetiniai scenarijai): Naudoti parametrai: ['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'] Patikrinkite, ar __init__ nustato visus atributus naudodamas self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000)
Patikra nepavyko (Layer 2 — sintetiniai scenarijai): Naudoti parametrai: ['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'] Patikrinkite, ar __init__ nustato visus atributus naudodamas self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts()……Rodyti daugiauRodyti mažiau
Patikra nepavyko (Layer 2 — sintetiniai scenarijai): Naudoti parametrai: ['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'] Patikrinkite, ar __init__ nustato visus atributus naudodamas self.parameters.get(). - steady_uptrend: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - steady_downtrend: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - flat_ranging: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - volatility_spike: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - zero_volume: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000) - price_gap: TypeError: FactoryStrategy._bar_ts() priima 1 pozicinį argumentą, tačiau buvo pateikta 2 (juostos laiko žyma: 1735691040000)
Patikrinimas nepavyko (3 sluoksnis — smėlio dėžės atgalinis testavimas): Nesusidarė nė vienas sandoris Naudotas juostų tipas: ETH-PERPETUAL.DERIBIT-1-DAY-LAST-EXTERNAL, Apdorota juostų: 2400 Diagnostika: calculate_signal() niekada nebuvo įvertinta (įvertinta 0 juostų) -> jokia pirminė juosta nepasiekė bazinio šablono signalo kelio -> jei perrašote on_bar(), iškvieskite super().on_bar(bar); patikrinkite, ar bar_type atitinka instrumento duomenis. NOT atlaisvinkite įėjimo slenksčių — įėjimo logika niekada nebuvo vykdoma. Įsitikinkite, kad jūsų strategija sudaro sandorius su pateiktais duomenimis ir parametrais.
Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=hypothesis_mismatch]: - [edge_concern] Tai nėra verdikto pagrindas — kliūtis susijusi su duomenų tikslumu, o ne rezultatais. (Informacijai: smėlio dėžės rezultatas taip pat neigiamas: -2.9%, PF 0.13, laimėjimų 0.125, -$2,149 nuostolis laikotarpio pabaigoje tariamai sustabdytame portfelyje — tačiau tai netinkamos strategijos rezultatas.) - WHOLE-STRATEGY SWAP / MISLINK. Hipotezė yra ETH Deribit savaitinis PUT CREDIT SPREAD (parduoti ~25d put, BUY ~10d put —……Rodyti daugiauRodyti mažiau
Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=hypothesis_mismatch]: - [edge_concern] Tai nėra verdikto pagrindas — kliūtis susijusi su duomenų tikslumu, o ne rezultatais. (Informacijai: smėlio dėžės rezultatas taip pat neigiamas: -2.9%, PF 0.13, laimėjimų 0.125, -$2,149 nuostolis laikotarpio pabaigoje tariamai sustabdytame portfelyje — tačiau tai netinkamos strategijos rezultatas.) - WHOLE-STRATEGY SWAP / MISLINK. Hipotezė yra ETH Deribit savaitinis PUT CREDIT SPREAD (parduoti ~25d put, BUY ~10d put — apibrėžtos rizikos vertikalusis spread). Kodas yra BTC Deribit savaitinis delta neutralus SHORT STRANGLE (klasės pavadinimas, docstring, iter-3 pagrindimas ir visi mechanizmai aprašo strangle). Skiriasi ir instrumentas, ir AND mechanizmas → neteisingai sugeneruotas / susietas artefaktas, o ne ši hipotezė. Sugeneruokite / susiekite iš naujo tinkamą ETH put credit spread. - Neteisingas instrumentas: hipotezė yra ETH, tačiau instrument_id ir bar_type yra BTC-PERPETUAL.DERIBIT, o rolling_options.underlying yra „BTC“. Niekur nėra ETH. - Neteisinga struktūra / rizika neapibrėžta: hipotezė apriboja didžiausią nuostolį PURCHASED ~10d put apsaugine koja. Kodas pateikia TWO SELL kojas be NO perkamos apsauginės kojos; nuostolį kraštutiniu atveju riboja tik minkštasis kito baro premijos stopas (smėlio dėžės largest_loss -$2,149, palyginti su avg_win ~$214, rodo, kad jis nuostolio kraštutiniu atveju neapriboja) — būtent tokio neriboto profilio hipotezė ir vengia. - Pagrindinio pranašumo nėra: hipotezės signalas yra neigiamosios pusės SKEW brangumas (25d put IV, palyginti su ATM IV) ir IV>RV. Kodas neskaičiuoja iškreiptumo — tik vidutinį strangle IV/RV VRP. Put iškreiptumo išnaudojimas, kuris skiria šią hipotezę, neįgyvendintas.
Atmetimo priežastis
verification_loop: Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% esant 2 sandoriams, kai metrics_reliable=false ir data_days=1 — tai nėra veiklos rezultatų vertinimas (grąža vienam nominalo vienetui opcionų kojoms nėra prasminga, nes premijos nominali vertė << apsauginės kojos nominalios vertės, o smėlio dėžė yra 1 dienų bandomasis testas). Tai pateikiama tik kaip kontekstas: jei toliau nurodyta įkėlimo / retrospektyvinio laikotarpio……Rodyti daugiauRodyti mažiau
verification_loop: Patikra nepavyko (Layer 4 — QA peržiūra) [klasė=code_defect]: - [edge_concern] Smėlio dėžės avg_trade_return_pct yra -45.45% esant 2 sandoriams, kai metrics_reliable=false ir data_days=1 — tai nėra veiklos rezultatų vertinimas (grąža vienam nominalo vienetui opcionų kojoms nėra prasminga, nes premijos nominali vertė << apsauginės kojos nominalios vertės, o smėlio dėžė yra 1 dienų bandomasis testas). Tai pateikiama tik kaip kontekstas: jei toliau nurodyta įkėlimo / retrospektyvinio laikotarpio problema bus išspręsta ir susikaups tikra savaitinių opcionų imtis, analitikas turėtų dar kartą patikrinti, ar surinktas grynasis kreditas viršija Deribit 0.03% už pusę viso sandorio ciklo, apimančio 4 kojas (atidarymas+uždarymas × trumpoji+ilgoji), ir galimą nuostolį dėl priskyrimo praslydimo, nes put credit spread grąžos vienam nominalo vienetui pranašumas struktūriškai menkas. - [kritinis] rolling_options.lookback_days=49 apriboja ANY atgalinio testavimo opcionų grandinę, kurią galima išspręsti per ENTIRE, maždaug 49 dienomis iki „dabar“ = ~7 savaitinių ciklų / ~14 opcionų kojų, nepaisant 6.5 metų Deribit ETH opcionų istorijos. Likusią lango dalį strategija lieka be pozicijų ir prekiauja tik laikotarpio pabaigoje. Smėlio dėžė tai patvirtina empiriškai: bars_processed=2400 (~6.5 metų), tačiau data_days=1 ir total_trades=2 (trades_count=4). Variacijos rizikos premijos ir iškreiptumo pranašumo neįmanoma atskirti nuo triukšmo turint ~7 ciklų / ~14 kojų — gerokai mažiau nei ~30-100 sandorių, reikalingų išmatuojamai opcionų imčiai. Būtent ši įkėlimo sąnaudų ir imties dydžio aklavietė-22 lėmė, kad beveik identiška BtcDeribitWeeklyDeltaHedgedAtmStraddleVrp strategija (ta pati prekybos vieta, tas pats lookback_days=49) buvo atmesta Layer 4 dienų prieš tai. Paties kūrėjo paaiškinime pripažįstamas šis apribojimas („lookback_days yra 49 (7 ciklų, 14 opcionų kojų), nes katalogo įkėlimas kiekvienam barų tipui kainuoja ~10s vienai kojai, o didesnė grandinė kelia grėsmę Layer-3 vykdymo laiko limitui“). Esant dabartinei konfigūracijai, strategija niekada negali sukurti išmatuojamo viso laikotarpio atgalinio testo. — pataisymas: neperduokite jos su ~7 ciklais. Prieš pateikdami iš naujo išspręskite įkėlimo sąnaudų ir imties dydžio aklavietę-22: grupuokite / vykdykite lygiagrečiai arba talpykloje saugokite kiekvienos kojos catalog.bars() įkėlimus per barus, kad lookback_days galėtų aprėpti daugelį savaitinių ciklų metų (~200-300 ciklų) neviršydama smėlio dėžės vykdymo laiko limito, tada nustatykite lookback_days, kad apimtų visą testavimo langą. Jei įkėliklis iš tiesų negali per skirtą laiką apdoroti išmatuojamos savaitinių opcionų istorijos, šios šeimos neįmanoma testuoti dabartinėje savaitinio dažnio aplinkoje ir strategiją reikėtų pertvarkyti (pavyzdžiui, naudoti mažiau, ilgesnio termino mėnesinių ciklų per visą laikotarpį), užuot
„Stratmill“ yra tyrimų ir popierinės prekybos įrankis, o ne finansų konsultantas ar brokeris. Testavimo ir popierinės prekybos rezultatai yra hipotetiniai. Prekyba susijusi su nuostolio rizika.