Strategi ini melacak tren dengan menghitung dua rata-rata bergerak dinamis, DEMA dan TEMA, dan menetapkan posisi panjang atau pendek ketika mereka menghasilkan salib emas atau salib kematian.
Logika inti dari strategi ini adalah untuk menentukan arah tren berdasarkan persilangan antara dua rata-rata bergerak dinamis, DEMA dan TEMA.
DEMA adalah singkatan dari Double Exponential Moving Average. DEMA menggabungkan fitur perataan tertimbang dari EMA dan mengoptimalkan masalah keterlambatan EMA. Rumusnya adalah:
DEMA = 2*EMA(CLOSE, N) - EMA(EMA(CLOSE, N), N)
Di sini N adalah Demalength.
TEMA adalah singkatan dari Triple Exponential Moving Average. TEMA menggunakan triple exponential smoothing untuk mengurangi lag dari moving averages.
EMA1 = EMA ((CLOSE, Temalength) EMA2 = EMA ((EMA1, Temalength) EMA3 = EMA ((EMA2, Temalength) TEMA = 3EMA1 - 3EMA2 + EMA3
Ketika TEMA melintasi DEMA, itu dianggap sebagai sinyal salib emas untuk pergi panjang.
Selain itu, strategi menetapkan delayBars untuk memastikan keabsahan sinyal dan menghindari sinyal palsu.
Akhirnya, strategi ini mengadopsi logika pemeriksaan ganda. Hal ini akan memeriksa apakah posisi yang berlawanan perlu ditutup sebelum membuka perdagangan baru.
Dibandingkan dengan EMA dan SMA tradisional, DEMA dan TEMA adalah MA dinamis yang lebih sensitif yang dapat dengan cepat menangkap perubahan tren, sehingga meningkatkan keakuratan penilaian tren pasar.
Parameter delayBars memaksa strategi untuk menunggu untuk periode waktu setelah sinyal muncul sebelum memasuki posisi.
Dengan memeriksa apakah posisi yang berlawanan perlu ditutup sebelum membuka perdagangan baru, strategi ini menghindari memegang posisi arah ganda dan meminimalkan kerugian dari perdagangan lindung nilai.
Strategi ini terutama bergantung pada persilangan antara indikator pasar, indikator teknis umum, untuk menentukan tren dan sinyal.
Dalam pasar dengan fluktuasi sisi besar, MAs dapat sering melintasi dan menghasilkan sinyal palsu yang menyebabkan kerugian.
Solusinya adalah menghentikan strategi saat mengidentifikasi tren sampingan, atau menyesuaikan parameter MA dan periode penundaan dengan benar.
Strategi ini hanya melacak tren harga dan tidak dapat memprediksi perangkap jangka pendek atau pembalikan tren yang disebabkan oleh peristiwa besar.
Solusinya adalah memasukkan indikator lain untuk menilai risiko, atau mengurangi ukuran posisi dengan benar.
Selain DEMA dan TEMA, tes kombinasi SMA, EMA, dan MAs ditingkatkan lainnya untuk menemukan yang paling cocok untuk pasar ini.
Jalankan pengoptimalan untuk menemukan panjang MA optimal dan periode keterlambatan sinyal untuk sinyal perdagangan yang lebih akurat.
Mengingat karakteristik produk yang berbeda, temukan kombinasi panjang MA yang sesuai, periode keterlambatan untuk fluktuasi harga dan tren mereka.
Misalnya, gunakan Bollinger Bands untuk menilai volatilitas dan tingkat harga untuk menghindari pasar whipsaw. Gunakan indikator momentum untuk mengevaluasi kekuatan tren.
Ini adalah tren dasar mengikuti strategi berdasarkan penyeberangan MA dinamis antara DEMA dan TEMA. Keuntungannya adalah stabilitas tinggi, keandalan dan universalitas. Tetapi juga memiliki beberapa keterlambatan dan kemampuan deteksi pembalikan yang lemah. Artikel ini memberikan analisis komprehensif tentang pro, kontra dan arah optimasi, berfungsi sebagai referensi berharga untuk menggunakan strategi ini. Secara keseluruhan, ini menawarkan contoh khas desain strategi perdagangan kuantitatif yang layak untuk studi lebih lanjut.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © jacobdickson255 strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0) //Dema Scripting Demalength = input.int(230, minval=1) src = close e1 = ta.ema(src, Demalength) e2 = ta.ema(e1, Demalength) dema = 2 * e1 - e2 plot(dema, "DEMA", color=#43A047) //Tema Scripting Temalength = input.int(210, minval=1) ema1 = ta.ema(close, Temalength) ema2 = ta.ema(ema1, Temalength) ema3 = ta.ema(ema2, Temalength) tema = 3 * (ema1 - ema2) + ema3 plot(tema, "TEMA", color=#2962FF) delayBars = input(5, title="Bar Delay") var int lastTradeBar = na longCondition = ta.crossover(tema, dema) longExit = ta.crossunder(tema, dema) shortCondition = ta.crossunder(tema, dema) shortExit = ta.crossover(tema, dema) // Exit conditions should be checked before entry conditions // Close short position if a long condition is present if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short strategy.close("Short") // Close long position if a short condition is present if ((longExit and strategy.position_size > 0)) strategy.close("Long") // Now check for entry conditions if (longCondition) strategy.entry("Long", strategy.long) lastTradeBar := bar_index if (shortCondition) strategy.entry("Short", strategy.short) lastTradeBar := bar_index