BtcSpotDualTimeframeMomentumConfluenceLong
Hipotesis
BTC Spot Dual-Timeframe Momentum Confluence, LONG-ONLY 1x (BTCUSDT.BINANCE_SPOT, 4H Primary + 1D Confirm, Long Only When BOTH Timeframes Point UP, FLAT to Cash Otherwise, ATR-Trailing + Daily-Regime-Break Exit, Source-Optimised Parameters Retained)
Hipotesis
Port akaun LONG-ONLY, 1x, CASH bagi strategi berprestasi terbaik yang dinaik taraf oleh kilang (BtcDualTimeframeMomentumConfluenceLS, Sharpe 1.99, 458 dagangan, +$4,774 sepanjang 29 hari paper) ke BTCUSDT.BINANCE_SPOT, dicipta khusus sebagai FIRST LIVE-TRADING CANDIDATE kerana venue langsung adalah spot sahaja. Mekanisme tidak berubah, OHLCV tulen, instrumen tunggal: kaki FAST = tanda pulangan 18-bar trailing pada bar 4-HOUR; kaki SLOW = tanda pulangan 15-bar trailing pada bar DAILY (dibaca melalui on_extra_bar sebagai kaki konteks, bukan sekali-kala penghalang penyegerakan). Kedua-duanya mesti AGREE. Satu-satunya perubahan struktur yang dipaksa oleh akaun CASH adalah meruntuhkan {LONG/FLAT/SHORT} kepada {LONG/FLAT}: di mana induk futures pergi SHORT pada gabungan-turun bersama, versi spot memegang 100% USDT. Segala-galanya yang lain dikekalkan secara verbatim: trailing stop ATR(14) pada 3.033x ATR daripada ekstrem yang sedang berjalan, keluar regime-break harian, saiz relatif-modal berskala vol (risk_pct 1.011% / jarak stop 3.033xATR), siling nosional maksimum 49.7%, dan vektor parameter tepat yang dipilih oleh pengoptimuman sumber (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Tiga parameter boleh laras, tiada data tambahan, tiada pendek, tiada leveraj. Perubahan kod khusus spot: venue BINANCE_SPOT CASH (tiada pengganda leveraj dalam position_size), size_precision 5 / price_precision 2, min_notional $10, jualan bersaiz mengikut kuantiti asas yang dipegang sahaja. Data disahkan wujud: bar BTCUSDT.BINANCE_SPOT 4-HOUR dan 1-DAY berjalan berterusan sejak 2017-08-17 (~9 tahun, ~19,800 bar 4H).
Hipotesis
Port terus daripada induk futures yang dinaik taraf BtcDualTimeframeMomentumConfluenceLS ke venue spot, kerana venue langsung yang dimaksudkan adalah spot sahaja. Mekanisme dikekalkan secara verbatim: kaki momentum yang sama, get AGREE-atau-rata yang sama, trailing stop ATR(14) 3.033x yang sama daripada ekstrem yang sedang berjalan, keluar regime-break harian yang sama, saiz vol-berskala risk_pct / jarak stop yang sama dengan siling nosional 49.7%, dan vektor parameter tepat yang dipilih oleh pengoptimuman sumber (fast_lookback 18, slow_lookback 15, trail_atr_mult 3.033). Akaun CASH memaksa tepat satu perubahan struktur, seperti yang dinyatakan oleh hipotesis: {LONG,FLAT,SHORT} runtuh kepada {LONG,FLAT} — should_enter memulangkan BUY hanya pada gabungan-naik bersama dan None sebaliknya, jadi gabungan-turun bersama adalah 100% USDT dan bukannya pendek. Pengubahsuaian khusus spot: venue BINANCE_SPOT dengan leveraj 1.0 dan tiada terma leveraj dalam position_size, size_precision 5 / price_precision 2 (BTCUSDT spot), min_notional dinaikkan kepada $10, dan semua keluar disalurkan melalui close_position kurangkan-sahaja templat asas supaya SELL hanya boleh mengurangkan kuantiti asas yang dipegang (pendek spot telanjang mustahil secara struktur, dan pengawal _would_open_spot_short asas tidak pernah tercetus). calculate_signal memulangkan pulangan 18-bar 4H yang berterusan setiap bar (ia berubah dari bar ke bar); get gabungan diskret berada dalam should_enter, seperti yang diperlukan. Kos setiap bar ialah O(1): ATR menggunakan tetingkap 15-bar tetap dan pulangan pantas ialah carian berindeks tunggal, jadi tiada kerja penskalaan sejarah. Satu peringatan jujur untuk Penganalisis: kos pergi-balik spot ialah ~0.20% berbanding ~0.10% pada induk futures, jadi kelebihan setiap dagangan mesti mengatasi geseran berganda dua — struktur keluar mengikut trend (trail + regime break, tiada ambil-untung tetap) adalah apa yang menjadikan purata pegangan cukup panjang untuk ini munasabah, tetapi ia adalah metrik yang perlu diperhatikan dahulu.
Pelaksanaan
Konfluensi momentum dwi-tempoh-masa LONG-ONLY 1x BTCUSDT spot (BINANCE_SPOT, CASH). Kaki FAST = tanda pulangan 18-bar trailing pada bar 4-HOUR (primer); kaki SLOW = tanda pulangan 15-bar trailing pada bar 1-DAY, digunakan melalui on_extra_bar sebagai kaki konteks tempoh-masa lebih perlahan (tempoh masa berbeza, jadi penghalang penjajaran kaki-silang templat asas tidak pernah menangguhkan isyarat 4H). Kedua-dua kaki mesti menunjuk UP untuk memegang BTC; turun-bersama (di mana induk futures membuat pendek) dan percanggahan kedua-duanya bermaksud memegang 100% USDT. Keluar: trailing stop ATR(14) pada 3.033x ATR di bawah puncak berjalan kedudukan, OR kaki harian berbalik turun di bawah long (regime break tempoh-masa lebih tinggi). Saiz adalah berskala vol dan relatif modal: ekuiti * 1.011% / (3.033 * ATR), disiling pada 49.7% daripada baki USDT secara nosional, dengan pengganda leveraj NO (akaun CASH tidak boleh meminjam), dikuantumkan kepada size_precision 5 dan ditolak di bawah nosional minimum spot $10. Tiga parameter boleh laras, OHLCV tulen, tiada data tambahan, tiada pendek.
Keputusan Pengesahan
Sama ada gunakan self._atr (semasa) dalam perbandingan trail should_exit untuk sepadan tepat dengan induk, atau nyatakan secara eksplisit dalam penerangan bahawa trail berlabuh pada ATR bar-kemasukan supaya penganalisis tidak mengaitkan percanggahan daripada induk kepada perubahan venue.
Keputusan Pengesahan
ATR trailing-stop adalah FROZEN pada kemasukan (self._entry_atr, ditangkap dalam should_enter / semasa pengambilalihan kedudukan) dan tidak pernah disegarkan semula, jadi jarak trail adalah 3.033 x ATR-pada-kemasukan berbanding 3.033 x ATR(14) semasa. Induk futures yang dinaik taraf (BtcDualTimeframeMomentumConfluenceLS4H) mengetatkan trailnya dengan CURRENT ATR setiap bar. Perkataan hipotesis ('trailing stop ATR(14) pada 3.033x ATR daripada ekstrem yang sedang berjalan') dipenuhi dalam kedua-dua kes, dan oleh kerana _extreme adalah monoton tahap stop masih hanya meningkat, jadi ini bukan kecacatan ketepatan — tetapi pada pengembangan vol selepas kemasukan, stop berkesan lebih ketat daripada induk, yang merupakan perbezaan tingkah laku sebenar daripada strategi yang didakwa diport secara 'verbatim'.
Keputusan Pengesahan
Tetapkan keadaan dagangan daripada isian (on_order_filled / bar pertama dengan kedudukan terbuka) dan bukannya di dalam should_enter, atau reset ia secara defensif pada bahagian atas calculate_signal sebelum carian kedudukan.
Keputusan Pengesahan
should_enter() mengubah keadaan dagangan (_in_long = True, _extreme, _entry_atr) BEFORE templat asas telah mensaizkan pesanan dan menerapkan get nosional minimum. Jika position_size() memulangkan 0 atau semakan nosional minimum $10 menggugurkan kemasukan, strategi ditinggalkan ditandakan sebagai in-long dengan trail bersedia semasa rata. Pada praktiknya ini pulih sendiri pada bar seterusnya (calculate_signal melihat kedudukan adalah None dan mereset bendera, dan should_exit tidak pernah dicapai semasa rata), jadi tiada pepijat tingkah laku yang boleh diperhatikan — tetapi invarian ini rapuh jika laluan keluar pernah diubah.
Keputusan Pengesahan
Tiada pembetulan diperlukan untuk ketepatan. Jika penggunaan bar-sama tepat dikehendaki, kira semula _slow_dir secara malas daripada self._extra_bars[...] di dalam calculate_signal dan bukannya menyimpannya dalam cache di on_extra_bar.
Keputusan Pengesahan
Kependaman satu bar pada kaki harian: bar DAILY dan bar 4H terakhir hari itu berkongsi cap masa penutupan yang sama. Jika enjin menghantar bar utama 4H dahulu, _maybe_process_primary() berjalan dan mencapkan _last_processed_ts, dan kemas kini _slow_dir bagi bar harian (yang tiba pada ts yang sama) hanya digunakan daripada bar NEXT 4H. Ini bersifat konservatif (ia hanya boleh melewatkan isyarat, tidak pernah membocorkan data masa depan), tetapi ia bermaksud keluar regime-break harian boleh tercetus sehingga 4 jam selepas penutupan harian dalam kira-kira separuh kes, dan pariti backtest/paper bergantung pada susunan penghantaran yang stabil.
Keputusan Pengesahan
Pelaksanaan yang setia, tetapi tiga perkara yang perlu dipertimbangkan oleh penganalisis pada sejarah penuh: (1) kos pergi-balik spot ialah ~0.20% berbanding ~0.10% induk futures, jadi kelebihan kasar yang sama menghasilkan bersih kira-kira separuh — sandbox sudah menunjukkan komisen pada 10.03% daripada kasar; (2) vektor parameter (pantas 18 / perlahan 15 / trail 3.033) dipilih oleh larian pengoptimuman pada venue, gabungan tempoh masa dan set arah DIFFERENT (LONG/SHORT futures), jadi ini adalah pemindahan luar-sampel, bukan konfigurasi teroptimum — Sharpe sandbox ialah 0.527 dengan sharpe_ci_low -0.233 dan information_ratio -0.760 berbanding penanda aras, iaitu buku BTC panjang-sahaja yang berprestasi lebih rendah daripada memegang BTC pada tetingkap asap; (3) menggugurkan kaki pendek mengeluarkan kira-kira separuh populasi dagangan induk (250 dagangan, semua panjang, pendedahan 43.6%), jadi Sharpe terealisasi sepatutnya dijangka jauh di bawah 1.99 induk berbanding hampir kepadanya. Perkara pertama untuk disemak pada backtest sebenar: avg_trade_return_pct berbanding lantai spot 0.25% (sandbox menunjukkan 0.82%, tetapi tetingkap itu mengecualikan 2017 dan hanya 2401 hari) dan sama ada tersil vol 'normal' (-8.77% dalam sandbox) kekal negatif sepanjang sejarah penuh.
Semakan Backtest
314 dagangan ditutup sepanjang 3146 hari (2017-08 → 2026-03), metrics_reliable=true, entry_diag 314/314 kemasukan dihantar dengan 0 digugurkan.
Semakan Backtest
Dagangan melaksanakan hipotesis: semua 314 LONG / 0 pendek (keruntuhan CASH yang betul bagi LONG/FLAT/SHORT induk), nosional/ekuiti maksimum 0.50 berbanding siling 0.497, purata pegangan 4h8j dan pendedahan 43.6% menghasilkan semula induk futures.
Semakan Backtest
avg_trade_return_pct 1.20% berbanding pergi-balik 0.20% BINANCE_SPOT ~; komisen hanya 8.97% daripada kasar, kesan 4.33% — bukan marginal-fi.
Semakan Backtest
max_drawdown 10.3% (di bawah lalai spot 15%), PF 1.41, ganjaran 2.07 pada kadar kena 40.4% (bentuk trend yang betul), tersil vol tertekan +28.0%.
Semakan Backtest
Kepekatan melampau: 10 teratas daripada 314 dagangan = 93.8% daripada jumlah pulangan setiap dagangan, 20 teratas = 141% (dagangan 21–314 bersih negatif).
Semakan Backtest
Hanya 6/10 tahun kalendar positif — tepat pada lantai keras — dan kedua-dua tahun terkini negatif (2025 −10.5%, 2026 −9.9%).
Semakan Backtest
Sharpe 0.664 dengan sharpe_ci_low 0.0042 dan PSR 0.924 (<0.95): sudah marginal sebelum bar pemilihan ~225-percubaan.
Semakan Backtest
Kebimbangan QA sebahagiannya disahkan: tersil vol 'normal' kekal negatif (−7.70%, 16.1% DD), information_ratio −0.757, alfa hanya +2.4%/tahun — ia berprestasi lebih rendah daripada memegang BTC, dan benchmark_meaningful=true jadi kekurangan itu adalah nyata.
Semakan Backtest
Parameter adalah pemindahan luar-sampel daripada set venue/arah lain — tidak diselaraskan berbanding terlebih suai, tetapi juga tidak diuji di sini.
Stratmill ialah alat penyelidikan dan dagangan kertas, bukan nasihat kewangan atau broker. Keputusan ujian belakang dan dagangan kertas adalah bersifat hipotesis. Perdagangan melibatkan risiko kerugian.