Idea utama strategi ini adalah menggunakan salib emas dan salib kematian garis purata bergerak pantas dan perlahan untuk menilai trend pasaran dan melaksanakan perdagangan berisiko rendah. Apabila garis purata bergerak pantas melintasi di atas garis purata bergerak perlahan, ia menunjukkan bahawa pasaran mungkin memasuki trend menaik, jadi pergi panjang; apabila garis purata bergerak pantas melintasi di bawah garis purata bergerak perlahan, ia menunjukkan bahawa pasaran mungkin memasuki trend menurun, jadi pergi pendek.
Ini adalah strategi yang menggunakan purata bergerak eksponensial harga. purata bergerak adalah penunjuk analisis trend yang meluruskan data harga untuk menilai trend harga. purata bergerak pantas mempunyai parameter yang lebih kecil dan boleh bertindak balas terhadap perubahan harga dengan lebih cepat; purata bergerak perlahan mempunyai parameter yang lebih besar dan bertindak balas terhadap perubahan harga dengan lebih perlahan. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan, ia menunjukkan bahawa pasaran mungkin memasuki pasaran lembu, dan kedudukan panjang harus ditubuhkan; apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan, ia menunjukkan bahawa pasaran mungkin memasuki pasaran beruang, dan kedudukan pendek harus ditubuhkan.
Secara khusus, strategi ini menentukan dua purata bergerak eksponensial, dengan tempoh 21 dan 55 untuk purata bergerak pantas dan perlahan masing-masing. Strategi menentukan masuk dan keluar berdasarkan salib emas dan salib kematian dua garis purata bergerak. Pergi panjang apabila purata bergerak pantas melintasi di atas purata bergerak perlahan, dan pergi pendek apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan.
Selain itu, strategi ini juga menggunakan penunjuk turun naik ATR untuk menetapkan stop loss dan mengambil keuntungan. ATR dapat menilai tahap turun naik pasaran dengan berkesan. Stop loss ditetapkan pada jarak 1.5 kali ATR dari harga; mengambil keuntungan ditetapkan dekat dengan jarak 1 kali ATR dari harga.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai beberapa risiko:
Untuk menangani risiko di atas, kita boleh mengoptimumkan dari aspek berikut:
Strategi ini boleh dioptimumkan lagi dalam aspek berikut:
Menggunakan kaedah pembelajaran mesin untuk mengoptimumkan parameter purata bergerak secara automatik untuk kebolehsesuaian yang lebih baik.
Tambah asas sebagai syarat penapisan untuk mengelakkan pergi panjang atau pendek secara buta apabila berita negatif utama tiba, seperti keputusan kadar Fed dan pelepasan data makro penting.
Tetapkan had atas dan bawah untuk turun naik, hentikan perdagangan apabila ATR menjadi terlalu tinggi atau terlalu rendah untuk mengelakkan kerugian dalam persekitaran pasaran yang melampau.
Menggabungkan asas saham seperti nisbah P / E dan pengembangan jumlah dagangan untuk menetapkan stop loss dinamik dan mengambil julat keuntungan.
Tambah mekanisme saiz kedudukan, mengurangkan kedudukan secara beransur-ansur apabila nisbah keuntungan mencapai tahap, menangguhkan perdagangan untuk tempoh apabila mengalami kerugian yang agak besar, dll.
Logik keseluruhan strategi ini jelas dan mudah, menggunakan silang purata bergerak berganda untuk menentukan trend pasaran, strategi trend berikut yang biasa. Sementara itu, strategi ini juga mengawal risiko dengan sangat baik dengan menggunakan penunjuk ATR untuk menetapkan stop loss dan mengambil keuntungan secara dinamik. Dengan pengoptimuman lanjut, strategi dapat ditingkatkan dari segi kawalan penarikan dan menunggang trend, sehingga membawa kepada prestasi pelaburan yang lebih stabil.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="No-Nonsense Strategy Template [WM]", overlay = true) price = close // // ATR stuff // atrLength = input(14, "ATR Length") slMultiplier = input(1.5, "SL") tpMultiplier = input(1, "TP1") atr = atr(atrLength) // // Strategy under test. MA crossover // fastInput = input(21) slowInput = input(55) fast = ema(price, fastInput) slow = ema(price, slowInput) plot(fast, color = red) plot(slow, color = blue) goLong = crossover(fast, slow) goShort = crossunder(fast, slow) if (goLong) sl = price - atr * slMultiplier tp = price + atr * tpMultiplier strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop = sl, limit = tp) if (goShort) sl = price + atr * slMultiplier tp = price - atr * tpMultiplier strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop = sl, limit = tp)