Přeskočit na obsah
Všechny strategie

Strategie

BTC Přenos mezi seancemi (Cross-Session Momentum Carryover) — Long-Short, jeden nástroj OHLCV: Směr pohybu seance ASIA predikuje pohyb seance US; obchodujte seanci US v tomto směru ONLY, když je pohyb Asie velký, přes noc bez pozice (BINANCE BTCUSDT USD-M, 1H svíčky, intradenní, 2 parametr(y))

Výsledek: Zrušeno

BtcAsiaToUsSessionCarryoverLS

Dobře změřeno: 594 obchodů za celou historii 2020-2026 1H, vyvážené long/short (293/301), čistá exekuce (594 signalizováno, 594 odesláno, žádné výpadky)

Hypotéza

LONG-SHORT, SINGLE-INSTRUMENT, čistě OHLCV strategie INTRADAY na perpetuálu BTCUSDT.BINANCE USD-M patřící do skutečně odlišné rodiny od všeho, co je zde čekající nebo mrtvé — není to NOT trend/breakout (duální momentum TF, SuperTrend, Donchian, ORB), NOT mean-reverze/fade (obě mrtvé), ani NOT signál doplňkového feedu (všechny čistí poražení). Využívá intradenní SESSION LEAD-LAG: směrový tón nastavený během seance s nízkou účastí ASIA (00:00-08:00 UTC) má tendenci PERSIST přenést se do seance s vyšší likviditou US……Zobrazit víceZobrazit méně

LONG-SHORT, SINGLE-INSTRUMENT, čistě OHLCV strategie INTRADAY na perpetuálu BTCUSDT.BINANCE USD-M patřící do skutečně odlišné rodiny od všeho, co je zde čekající nebo mrtvé — není to NOT trend/breakout (duální momentum TF, SuperTrend, Donchian, ORB), NOT mean-reverze/fade (obě mrtvé), ani NOT signál doplňkového feedu (všechny čistí poražení). Využívá intradenní SESSION LEAD-LAG: směrový tón nastavený během seance s nízkou účastí ASIA (00:00-08:00 UTC) má tendenci PERSIST přenést se do seance s vyšší likviditou US (13:00-21:00 UTC), protože US/institucionální tok pokračuje v pohybu, spíše než by jej obracel. Každý den UTC se měří znaménko a velikost výnosu asijské seance; když je pohyb Asie LARGE (skutečný směrový signál, nikoli šum), strategie vstupuje do seance US ve směru SAME a drží pozici pouze po dobu této seance, přes noc jde FLAT (žádná expozice vůči financování, žádný noční gap, žádné vícedenní trendové riziko). To se liší od čekajícího BTC breakoutu opening-range (který obchoduje rozpětí BREAKOUT prvních hodin) — zde není žádný breakout; jde o směrové CARRYOVER již ustaveného pohybu seance do pozdější, samostatné seance. Zachovává přežitelné invarianty (jeden nástroj, čistě OHLCV s plnou historií 2020-2026 1H, long-short, žádný doplňkový feed podle poučení z čistých poražených, žádná druhá noha podle L69) a je postavena pro statistické brány: téměř denní kadence dává LARGE počet obchodů (>100/rok), který splňuje práh měřitelnosti a zpřesňuje deflovaný odhad Sharpe, a pouze 2 FREE parametry (práh vstupu podle pohybu Asie, násobek stopu ATR) minimalizují penalizaci za deflaci typu best-of--225-pokusů. Také vyplňuje nedostatečně zastoupený segment krátkého horizontu (8.6% vs 10%).

Iterace 2 opravuje selhání Layer-2 doslovně: všech šest syntetických scénářů vyvolalo 'TypeError: _day_of() takes 1 positional argument but 2 were given'. Harness Layer-2 znovu naváže každý volatelný atribut na proxy jako BOUND metodu, takže pomocné funkce @staticmethod _day_of/_hour_of obdržely instanci jako svůj první argument a svíčku jako druhý. Oprava: obě jsou nyní obyčejné instanční metody (self, bar) — místa volání již používala self._day_of(bar)/self._hour_of(bar), takže se nic jiného nezměnilo a chování……Zobrazit víceZobrazit méně

Iterace 2 opravuje selhání Layer-2 doslovně: všech šest syntetických scénářů vyvolalo 'TypeError: _day_of() takes 1 positional argument but 2 were given'. Harness Layer-2 znovu naváže každý volatelný atribut na proxy jako BOUND metodu, takže pomocné funkce @staticmethod _day_of/_hour_of obdržely instanci jako svůj první argument a svíčku jako druhý. Oprava: obě jsou nyní obyčejné instanční metody (self, bar) — místa volání již používala self._day_of(bar)/self._hour_of(bar), takže se nic jiného nezměnilo a chování v rámci enginu je identické. Za druhé, defenzivní změna ve stejné pomocné cestě: časové razítko hlášené harnessem (1735690980000) je v MILLISECONDS, zatímco engine dodává nanosekundy; starý kód bezpodmínečně dělil 1e9, což by pod harnessem zhroutilo každou syntetickou svíčku do stejné hodiny/dne a zmrazilo logiku seance (skryté druhé selhání Layer-2, jakmile by TypeError zmizel). Nová funkce _epoch_secs() normalizuje podle řádu velikosti (ns/us/ms/s) a je no-op pro skutečné nanosekundové svíčky, takže Layer-3 a skutečný backtest nejsou ovlivněny. Tvar signálu, pravidla vstupu/výstupu, ATR, sizing, importy a struktura třídy jsou jinak nezměněné oproti kódu, který již prošel Layer 1.

Premisa negativního očekávání na dobře změřeném vzorku pokrývajícím celou historii. Přes 594 obchodů napříč 2020-2026 přenos mezi seancemi Asie->US prodělává: profit_factor 0.937 (<1), total_return -9.81%, očekávaná hodnota -$17.34/obchod, Sharpe -0.15 s CI [-0.760, 0.458] obkročmo přes nulu, information_ratio -0.76. Jediným pozitivním rokem je 2020 (+15.3%); každý rok od té doby je negativní nebo plochý (2021 -8.1, 2022 -5.8, 2025 -10.8) s klouzavým Sharpe směřujícím k -8.3 do 2026 — hypotéza 'velký pohyb Asie predikuje pohyb US' se prostě nepotvrzuje. Je to také poplatkově marginální: avg_trade_return_pct 0.110% je pod hranicí poplatků Binance 0.15% USD-M (L22). S pouze 2 volnými parametry a čistě negativní směrovou výhodou nemůže ladění obrátit znaménko výhody, která neexistuje. Toto je signatura čistého poražence fee_edge/no_edge — nestojí za 2 hodin optimalizace.

Implementace

BTCUSDT.BINANCE USD-M perpetuál, 1H svíčky, intradenní long-short lead-lag mezi seancemi. Každý den UTC se výnos asijské seance (00:00-08:00 UTC open-to-close) inkrementálně kumuluje a normalizuje směrodatnou odchylkou posledních 30 asijských výnosů (záložní disperze založená na ATR, dokud se tato historie nezahřeje), což dává kontinuální na měřítku nezávislé z-skóre vracené v každé svíčce. V hodině otevření seance US (13:00 UTC) strategie vstupuje ve směru pohybu Asie SAME, když |z| >= entry_z, maximálně jeden vstup za kalendářní den. Vystupuje v hodině uzavření seance US (20:00 UTC), takže je kniha FLAT přes noc (žádné financování, žádné riziko gapu), nebo dříve na stopu založeném na ATR (stop_atr_mult x ATR, s dolní hranicí min_stop_pct). Sizing riskuje risk_frac kapitálu napříč vzdáleností stopu, s horní hranicí max_notional_frac x hrubá hodnota kapitálu. Veškerý stav (ATR, výnos seance, fronta disperze) je O(1) na svíčku; přechod dne je ukotven na vlastním časovém razítku svíčky, nikoli na počítadle svíček.

Výsledky ověření

CLEAN RESTART 2026-09-04 — historie verdiktů a záznamy učení tohoto běhu byly odstraněny a byl restartován od ověření. Jeho předchozí opuštění vzniklo kvůli pipeline, nikoli kvůli trhu: harness Layer-2 nesprávně navázal pomocné funkce @staticmethod (opraveno), QA vydával konečné výkonnostní verdikty na neoptimalizovaném kouřovém testu (odstraněno — QA nyní posuzuje pouze správnost) a časové limity sandboxu vznikaly kvůli hladovění backtestových slotů (opraveno). Hypotéza a kód strategie zůstávají beze změny. Ověřte kód podle jeho vlastních kvalit; výkonnost bude rozhodnuta později plným backtestem a optimalizátorem.

Přidejte _param_bounds = {entry_z: [...], stop_atr_mult: [...]} odpovídající omezením v kódu; ponechte veškeré konstanty hodin seance/ATR/rizika mimo něj.

Konfigurace deklaruje NO _param_bounds, přestože hypotéza spočívá na 'pouze 2 FREE parametrech', aby se minimalizovala penalizace za deflaci typu best-of--225-pokusů. Bez toho optimalizátor nemá žádnou explicitní plochu vázající jej na {entry_z, stop_atr_mult}, což podkopává disciplínu 2 parametrů. Nejde o defekt správnosti.

Nastavte us_exit_hour=21 pro celé okno, nebo zdokumentujte 20:00 jako zamýšlené.

Hypotéza pojmenovává seanci US 13:00-21:00 UTC, ale us_exit_hour je 20, což vynucuje uzavření pozice o hodinu dříve. Nepodstatné, nemění mechanismus ani invariant plochého stavu přes noc.

Kontrola backtestu

Sharpe
-0,15
Celkový výnos
-9,81%
Maximální drawdown
23,40%
Celkem obchodů
594
Úspěšnost
44,8%
Profit faktor
0,94

Dobře změřeno: 594 obchodů za celou historii 2020-2026 1H, vyvážené long/short (293/301), čistá exekuce (594 signalizováno, 594 odesláno, žádné výpadky)

Skutečně odlišná rodina intradenního lead-lag mezi seancemi; přes noc bez pozice, nízká korelace s benchmarkem (0.025), žádná závislost na doplňkovém feedu

Čistý poražený: profit_factor 0.937 (<1), total_return -9.81%, očekávaná hodnota -$17.34/obchod, Sharpe -0.15 (CI obkročmo přes nulu), information_ratio -0.76

avg_trade_return_pct 0.110% je pod hranicí poplatků Binance 0.15% USD-M — poplatkově marginální i bez ohledu na negativní očekávanou hodnotu

Pouze 2020 (+15.3%) je smysluplně pozitivní; každý následující rok je negativní nebo plochý (2025 -10.8%), klouzavý Sharpe směřuje k -8.3 do 2026 — premisa přenosu mezi seancemi (session-carryover) nemá trvalou výhodu

return_kurtosis 78.6 — nerovnoměrný trh (např. -6.07% den dne 2023-08-29), nikoli hladká výhoda

Historie iterací

Ověření selhalo (Layer 2 — syntetické scénáře): Použité parametry: ['entry_z', 'min_bars', 'risk_frac', 'atr_period', 'min_notional', 'min_stop_pct', 'min_vol_days', 'us_exit_hour', 'asia_end_hour', 'stop_atr_mult', 'us_entry_hour', 'asia_start_hour', 'max_notional_frac', 'vol_lookback_days'] Zkontrolujte, že __init__ nastavuje všechny atributy z self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) -……Zobrazit víceZobrazit méně

Ověření selhalo (Layer 2 — syntetické scénáře): Použité parametry: ['entry_z', 'min_bars', 'risk_frac', 'atr_period', 'min_notional', 'min_stop_pct', 'min_vol_days', 'us_exit_hour', 'asia_end_hour', 'stop_atr_mult', 'us_entry_hour', 'asia_start_hour', 'max_notional_frac', 'vol_lookback_days'] Zkontrolujte, že __init__ nastavuje všechny atributy z self.parameters.get(). - steady_uptrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) - steady_downtrend: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) - flat_ranging: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) - volatility_spike: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) - zero_volume: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000) - price_gap: TypeError: BtcAsiaToUsSessionCarryoverLS._day_of() takes 1 positional argument but 2 were given (bar timestamp: 1735690980000)

Stratmill je nástroj pro výzkum a paper trading, nikoli finanční poradenství ani broker. Výsledky backtestů a paper tradingu jsou hypotetické. Obchodování je spojeno s rizikem ztráty.