
Strategi ini adalah berdasarkan kepada penyambungan purata bergerak biasa untuk membuat isyarat jual beli, tetapi beberapa pengubahsuaian dibuat untuk menghasilkan isyarat perdagangan yang lebih tepat. Strategi ini menggabungkan persilangan purata bergerak cepat dan purata bergerak perlahan untuk menilai trend, dan merupakan strategi mengikuti trend.
Apabila rata-rata bergerak cepat dari arah bawah menembusi rata-rata bergerak perlahan, ia dianggap sebagai isyarat membeli; apabila rata-rata bergerak cepat dari arah atas jatuh ke bawah rata-rata bergerak perlahan, ia dianggap sebagai isyarat menjual. Iaitu, garpu emas lebih banyak, garpu mati kosong.
Kunci strategi ini adalah pilihan garis rata-rata yang cepat dan perlahan. Strategi ini menggunakan purata bergerak indeks panjang 50 dan 100 sebagai garis cepat dan perlahan. Dengan menyesuaikan parameter garis rata-rata, anda dapat mengoptimumkan kesan strategi.
Strategi ini digabungkan dengan dua garis rata untuk menentukan arah trend, yang dapat menyaring bunyi pasaran dengan berkesan dan mengenal pasti trend. Strategi ini dapat meningkatkan peluang keuntungan berbanding dengan strategi garis rata tunggal. Selain itu, menetapkan stop loss juga dapat membatasi kerugian perdagangan individu.
Strategi ini menggunakan prinsip silang untuk menilai titik perubahan trend dan menangkap peluang trend tepat pada masanya. Strategi ini mudah difahami dan mudah dilaksanakan berbanding dengan strategi yang mengandungi logik syarat yang rumit.
Strategi ini mungkin mempunyai tiga risiko utama: risiko parameter garis purata yang tidak sesuai, risiko tempoh pegangan yang tidak sesuai, dan risiko kedudukan hentian yang tidak sesuai.
Parameter garis purata yang dipilih dengan tidak betul akan menghasilkan isyarat palsu. Jika panjang garis purata terlalu pendek atau terlalu panjang, pasaran akan disalahartikan, dan ia harus diselaraskan dengan betul untuk menyesuaikan ciri-ciri tertentu.
Tempoh pegangan terlalu lama atau terlalu pendek, tidak dapat memaksimumkan keuntungan atau mengawal risiko. Perlu menguji pelbagai cara keluar untuk menentukan tempoh pegangan yang optimum.
Penetapan kedudukan hentian yang tidak betul akan menyebabkan hentian terlalu longgar atau terlalu tegang, titik hentian yang sesuai harus ditentukan berdasarkan kadar turun naik varieti.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Uji lebih banyak kombinasi parameter rata-rata untuk mencari parameter terbaik
Berdasarkan turun naik harga N hari terakhir atau ATR menentukan kedudukan hentian dinamik
Menggabungkan lebih banyak penunjuk untuk menentukan masa masuk seperti MACD, KD dan lain-lain
Menambah peraturan penapisan trend untuk mengelakkan pasaran daripada diselesaikan
Anda boleh mempertimbangkan untuk menggunakan strategi untuk lebih banyak baka, atau meningkatkannya menjadi strategi antara baka
Strategi pengoptimuman salib rata-rata bergerak ini menggabungkan kelebihan arah trend yang dinilai oleh garis rata-rata perlahan, menetapkan stop loss untuk mengawal risiko, dan merupakan strategi pemantauan trend yang mudah dilaksanakan. Strategi ini dapat meningkatkan kestabilan dan kecekapan melalui pengoptimuman parameter, pengoptimuman stop loss, dan penapisan isyarat. Strategi ini lebih mudah difahami, ambang yang lebih rendah untuk dilaksanakan, dan sangat sesuai untuk strategi pintu masuk perdagangan kuantitatif.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)
fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)
fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)
enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)
longStop = 0.0
longStop := enterShort ? close : longStop[1]
shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]
plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")
if enterLong
strategy.entry(id="GoLong", long=true)
if enterShort
strategy.entry(id="GoShort", long=false)
if strategy.position_size > 0
strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)
if strategy.position_size < 0
strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)
strategy.close_all()