Type/to search
2
Follow
484
Followers
Strategi kuantitatif penapisan purata bergerak: Satu amalan kuantitatif idea Harness Engineer
Discussions
Created 2026-04-17 11:55:34  Updated 2026-04-21 09:00:18
 0
 374

img

Pengenalan: Pemikiran Harness Engineer

Baru-baru ini, dalam komuniti kejuruteraan AI/ML, satu cara pemikiran semakin dibincangkan secara meluas—Harness Engineer.

Ide terasnya sangat mudah:

Daripada memberikan jawapan sendiri berdasarkan tekaan, lebih baik bina rangka kerja, biar data dan eksperimen mencari jawapan sendiri.

Cara jurutera tradisional: Saya fikir parameter A bagus, saya tulis kod untuk melaksanakan A. Cara Harness Engineer: Saya tidak tahu mana satu lebih baik antara A, B, C; saya bina rangka kerja, biar A, B, C berjalan serentak, data memberitahu jawapannya.

Jurutera bertanggungjawab menentukan ruang carian dan kriteria penilaian, sistem bertanggungjawab mengoptimumkan secara automatik dalam ruang tersebut. Pemikiran ini dalam ML sepadan dengan walk-forward optimization, AutoML; dalam kuantitatif, ia juga mempunyai senario pelaksanaan semula jadi.

img

Syiling Aneh: Medan Trend Paling Jelas

Dalam pasaran niaga hadapan mata wang kripto, terdapat satu kategori syiling yang patut diberi perhatian khusus—syiling "aneh" dengan volum dagangan yang sangat besar.

Syiling jenis ini berkongsi beberapa ciri umum:

  • Modal sangat tertumpu, tingkah laku pemain utama jelas
  • Kesinambungan trend agak kuat, setelah bermula selalunya bertahan lama
  • Volatiliti tinggi, sebahagian syiling volum tinggi menunjukkan kecenderungan trend yang kuat dalam tempoh tertentu, strategi purata bergerak secara sejarah menunjukkan prestasi yang agak baik pada aset ini

Oleh itu, menggunakan strategi persilangan purata bergerak dua klasik pada syiling jenis ini adalah titik masuk yang mudah dan munasabah. Purata bergerak cepat melintasi purata bergerak perlahan, trend bermula, ikut; purata bergerak cepat melintasi ke bawah, trend berbalik, keluar. Logiknya mudah, tetapi pada aset dengan trend yang jelas, prestasi sejarah selalunya tidak buruk.

Hanya ada satu masalah: Syiling mana yang aneh? Kumpulan parameter purata bergerak mana yang digunakan?

Kedua-dua soalan ini, jika dinilai secara manual, terlalu subjektif; orang yang berbeza mungkin memberikan jawapan yang sama sekali berbeza. Selain itu, pasaran adalah dinamik, syiling aneh hari ini belum tentu syiling aneh esok, kombinasi parameter yang berkesan hari ini mungkin tidak berkesan esok.

Inilah tempat pemikiran Harness Engineer muncul.

Daripada memilih syiling dan melaraskan parameter secara manual, lebih baik menyerahkan kedua-dua soalan ini kepada rangka kerja untuk diselesaikan—tentukan kriteria penilaian, biar data sejarah berjalan dalam ruang calon dan memberikan jawapan sendiri. Manusia hanya perlu memutuskan standard apa yang digunakan untuk mengukur kebaikan, selebihnya diserahkan kepada sistem.

Berdasarkan idea ini, keseluruhan strategi direka sebagai rangka kerja pemilihan berputar, beroperasi dalam tiga lapisan.

img

Seni Bina Strategi: Mekanisme Perlumbaan Dua Lapisan

Lapisan Pertama: Pembinaan Kolam Asas

Daripada semua kontrak niaga hadapan di seluruh pasaran, ambil 150 syiling teratas mengikut volum dagangan dolar AS sebagai kolam calon.

Kenapa volum dagangan? Kerana di tempat yang volum dagangan tinggi, modal paling tertumpu, trend paling mudah terbentuk, dan syiling aneh paling padat. Langkah ini tidak membuat penilaian subjektif, semata-mata biar modal pasaran mengundi; sesiapa yang volum dagangan tinggi, masuk kolam.

javascript
const filtered = tickers .filter(t => t.Symbol.endsWith('USDT.swap')) .map(t => ({ symbol: t.Symbol, quoteVolume: t.Last * t.Volume })) .sort((a, b) => b.quoteVolume - a.quoteVolume) .slice(0, topN) .map(t => t.symbol);

Logiknya sangat langsung: tapis kontrak USDT, kira volum dagangan dolar AS, susun menurun, ambil N teratas. Tiada penilaian subjektif, modal pasaran mengundi sendiri.

Lapisan Kedua: Perlumbaan Dua Lapisan untuk Pemilihan Terbaik

Ini adalah bahagian paling teras keseluruhan strategi, dan juga tempat pemikiran Harness paling jelas terlihat.

Urutan pelaksanaan yang betul adalah seperti ini:

img

⚠️ Nota: Menggunakan skor parameter terbaik untuk mewakili keupayaan syiling itu sendiri mengandungi risiko overfitting tertentu—parameter yang berprestasi terbaik dalam sejarah belum tentu berkesan pada masa hadapan. Keterbatasan ini akan dibincangkan lebih lanjut di bahagian akhir artikel.

Proses Backtest

Untuk setiap syiling dalam kolam calon, jalankan pelbagai kumpulan kombinasi parameter MA secara serentak; setiap kumpulan parameter berjalan secara bebas pada lilin K sejarah, mensimulasikan logik masuk/keluar persilangan sebenar:

javascript
// Lintasi setiap syiling × setiap kumpulan parameter for (const params of maParamsList) { const bt = backtest_MA(records, params.fast, params.slow); // Setiap backtest bebas menghasilkan: kadar kemenangan, nisbah untung/rugi, pengeluaran maksimum, bilangan isyarat }

Logik teras setiap backtest adalah persilangan purata bergerak dua standard:

javascript
const crossUp = fastMA[i-1] <= slowMA[i-1] && fastMA[i] > slowMA[i]; const crossDown = fastMA[i-1] >= slowMA[i-1] && fastMA[i] < slowMA[i]; if (crossUp) position = { side: 'long', entryPrice: records[i].Close }; if (crossDown) position = { side: 'short', entryPrice: records[i].Close };

Skor Komprehensif

Selepas backtest selesai, berikan skor komprehensif untuk keputusan backtest setiap kumpulan parameter. Skor terdiri daripada dua bahagian:

Skor Wajaran Dinormalkan (jumlah pekali 0.80):

javascript
const score = Math.min(bt.winRate * 100, 100) * 0.30 // Kadar kemenangan, had atas 100 + Math.min(bt.profitFactor * 20, 60) * 0.30 // Nisbah untung/rugi, had atas 60 + Math.max(0, 1 - bt.maxDrawdown / maxMDD) * 100 * 0.20 // Kawalan pengeluaran maksimum + volPct * volPctBonus // Item bonus persentil volatiliti

Item Bonus Persentil Volatiliti: Item terakhir volPct × volPctBonus (pekali lalai 10) adalah item bonus bebas daripada sistem wajaran, digunakan untuk memilih syiling yang berada pada persentil volatiliti sejarah yang lebih tinggi apabila skor sama—kerana syiling jenis ini selalunya lebih aktif dalam trend.

Perlu dijelaskan bahawa set wajaran dan pekali bonus ini adalah tetapan berdasarkan pengalaman, bukan diperoleh melalui pengoptimuman; dalam penggunaan sebenar, ia boleh dilaraskan lagi mengikut keadaan pasaran.

Persaingan Lapisan Pertama: Persaingan Parameter

Pelbagai kumpulan parameter untuk syiling yang sama masing-masing mendapat skor, ambil skor tertinggi sebagai skor wakil syiling dan parameter terbaik:

javascript
if (score > bestScore) { bestScore = score; bestResult = bt; bestParams = params; // Rekod kombinasi parameter dengan prestasi sejarah terbaik semasa }

Persaingan Lapisan Kedua: Persaingan Syiling

Semua syiling masing-masing mengemukakan skor terbaik mereka, susun dan ambil N teratas untuk memasuki senarai putih:

javascript
results.sort((a, b) => b.score - a.score); const whitelist = results.slice(0, topCoins).map(r => r.coin);

Output akhir adalah parameter purata bergerak optimum khusus untuk setiap syiling dalam senarai putih, bukan satu set parameter untuk semua syiling.

Lapisan Ketiga: Pelaksanaan Dagangan Sebenar dan Kawalan Risiko

Gunakan konfigurasi yang telah dipilih untuk dagangan sebenar, sambil menambah mekanisme kawalan risiko berbilang lapisan:

Pencetus Isyarat: Kesan status persilangan purata bergerak syiling dalam senarai putih secara masa nyata; persilangan emas beli panjang, persilangan maut jual pendek:

javascript
const crossUp = fastPrev <= slowPrev && fastCur > slowCur; const crossDown = fastPrev >= slowPrev && fastCur < slowCur; if (crossUp) longList.push(sym); if (crossDown && allowShort) shortList.push(sym); } **Trailing Stop Dinamik**: Dicetuskan selepas untung terapung mencapai ambang, dan ambang pengeluaran diketatkan secara dinamik dengan untung terapung. Tiga ambang adalah tetapan pengalaman; logik teras adalah semakin tinggi untung terapung, semakin rendah toleransi terhadap pengeluaran, untuk mengunci keuntungan sedia ada: ```javascript function getDynamicTrailDrawdown(maxPnl) { if (maxPnl >= 7) return 3; // Untung terapung tinggi, toleransi pengeluaran diketatkan if (maxPnl >= 4) return 2; return 1.5; // Untung terapung rendah, beri ruang lebih kepada pergerakan harga }

Kesedaran Keadaan Pasaran: Kesan persentil volatiliti BTC; persekitaran volatiliti tinggi secara automatik mengurangkan pekali kedudukan; pasaran ekstrem secara langsung melarang menjual pendek:

javascript
if (marketState === 'volatile') positionScaleDown = 0.5; else if (marketState === 'high_vol') positionScaleDown = 0.8; else if (marketState === 'low_vol') positionScaleDown = 0.7;

Keseluruhan proses pemilihan dijalankan semula secara berputar secara berkala, tidak terpaku pada satu set konfigurasi; senarai putih dan parameter dikemas kini secara dinamik mengikut pasaran.


Andaian Asas: Kesinambungan Trend

Rangka kerja ini boleh berfungsi bergantung pada satu andaian teras:

Syiling dan parameter yang berprestasi baik dalam sejarah terkini mempunyai kesinambungan tertentu dalam jangka pendek seterusnya.

Ini bukan mistik, ada logik pasaran tertentu yang menyokongnya—inersia modal, kesinambungan sentimen pasaran, dan kesinambungan tingkah laku pemain utama semuanya menyebabkan trend kekal berkesan dalam jendela masa tertentu.

Tetapi perlu diakui secara jujur: andaian ini tidak melalui pengesahan statistik yang ketat, ia lebih merupakan pertimbangan berdasarkan pengalaman. Sama ada rangka kerja ini dapat terus berkesan dalam perdagangan sebenar akhirnya perlu diuji dengan data dagangan sebenar.


Apakah perbezaan dengan Harness Engineer sebenar?

Perlu dijelaskan perkara ini dengan jelas.

Strategi ini mempunyai bentuk Harness, tetapi berbanding dengan sistem Harness Engineer sebenar, masih terdapat jurang yang ketara:

DimensiHarness sebenarStrategi ini
Pembahagian sampelSet latihan + set pengesahan + set ujian holdoutUjian semula data sejarah penuh, tiada pengesahan luar sampel
Perlindungan overfittingUjian kebolehgeneralasan yang jelasBergantung pada kepelbagaian parameter untuk lindung nilai separa, tidak lengkap
Pengasingan eksperimenSetiap varian berjalan secara bebas tanpa saling mempengaruhiMengongsikan lilin K yang sama, mempunyai gandingan tersirat
Syarat pelancaranPerlu lulus validasi sebelum digunakanSkor tertinggi terus digunakan, tiada lapisan pengesahan kedua
Pengumpulan ralatPenilaian setiap lapisan bebasKedua-dua lapisan perlumbaan kuda berdasarkan optimum sejarah, ralat terkumpul

Perbezaan teras: Harness sebenar akan bertanya "adakah keputusan ini masih sah di luar sampel", manakala "optimum" yang dipilih oleh dua lapisan perlumbaan kuda strategi ini pada asasnya adalah optimum sejarah—overfitting pada peringkat parameter, digabungkan dengan overfitting pada peringkat mata wang, sama ada ia boleh berterusan ke masa hadapan adalah persoalan yang sentiasa terbuka.


Penutup: Mencari pedang di atas bot, atau patut dicuba?

Dalam dunia kuantitatif, ramalan sentiasa menjadi perkara yang sangat sukar.

Ramai akan berkata, menggunakan data sejarah untuk memilih parameter dan kemudian digunakan dalam dagangan sebenar, pada asasnya adalah mencari pedang di atas bot—pedang sudah jatuh ke dalam air, tanda yang diukir di atas bot tidak akan membantu mencarinya. Pasaran akan berubah, parameter yang berkesan akan menjadi tidak berkesan, syaitan hari ini mungkin menjadi biasa esok, purata bergerak optimum semalam mungkin menjadi bunyi hari ini.

Kritikan ini bukannya tidak berasas.

Tetapi sebaliknya, apa yang patut dicuba, tetap harus dicuba.

Intipati kuantitatif bukanlah untuk mencari jawapan yang sentiasa betul, tetapi untuk meningkatkan kebarangkalian kemenangan secara sistematik dalam ketidakpastian. Walaupun mencari pedang di atas bot, anda perlu mempunyai bot terlebih dahulu, dan mengukir tanda di atas bot—meletakkan strategi (bot) itu sendiri adalah permulaan kuantitatif.

Sudah tentu, rangka kerja itu sendiri tidak menjamin keuntungan. Mempunyai rangka kerja hanyalah titik permulaan, nilai sebenar terletak pada pelaksanaan dan pengulangan yang berterusan: senarai putih boleh dilaraskan, pemberat skor boleh diubah, ruang parameter boleh diperluas, ambang untung rugi boleh dioptimumkan. Setiap pelarasan adalah eksperimen baharu, mendekatkan rangka kerja ini kepada Harness sebenar.

Jalan itu ditempuh, bukan diimpikan.

Kod sumber strategi: Harness Engineer均线筛选量化策略

Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)