Strategi ini mengesan trend dengan mengira dua purata bergerak dinamik, DEMA dan TEMA, dan menubuhkan kedudukan panjang atau pendek apabila mereka menjana salib emas atau salib kematian.
Logik teras strategi ini adalah untuk menentukan arah trend berdasarkan persilangan antara dua purata bergerak dinamik, DEMA dan TEMA.
DEMA adalah singkatan dari Double Exponential Moving Average. Ia menggabungkan ciri pelunturan bertingkat EMA dan mengoptimumkan masalah ketinggalan EMA. Rumusnya adalah:
DEMA = 2*EMA(CLOSE, N) - EMA(EMA(CLOSE, N), N)
Di sini N adalah Demalength.
TEMA bermaksud Triple Exponential Moving Average. Ia menggunakan triple exponential smoothing untuk mengurangkan ketinggalan purata bergerak. Rumusnya adalah:
EMA1 = EMA ((CLOSE, Temalength) EMA2 = EMA ((EMA1, Tempoh) EMA3 = EMA ((EMA2, Tempoh) TEMA = 3EMA1 - 3EMA2 + EMA3
Apabila TEMA melintasi DEMA, ia dianggap sebagai isyarat salib emas untuk pergi panjang. Apabila TEMA melintasi di bawah DEMA, ia dianggap sebagai isyarat salib kematian untuk pergi pendek.
Di samping itu, strategi menetapkan delayBars untuk memastikan kesahihan isyarat dan mengelakkan isyarat palsu.
Akhirnya, strategi ini menggunakan logik pemeriksaan berganda. Ia akan memeriksa sama ada kedudukan yang bertentangan perlu ditutup sebelum membuka perdagangan baru.
Berbanding dengan EMA dan SMA tradisional, DEMA dan TEMA adalah MA dinamik yang lebih sensitif yang dapat menangkap perubahan trend dengan cepat, dengan itu meningkatkan ketepatan penilaian trend pasaran.
Parameter delayBars memaksa strategi untuk menunggu untuk tempoh masa selepas isyarat muncul sebelum memasuki kedudukan.
Dengan memeriksa sama ada kedudukan yang bertentangan perlu ditutup sebelum membuka perdagangan baru, strategi ini mengelakkan memegang kedudukan arah dua dan meminimumkan kerugian dari perdagangan lindung nilai.
Strategi ini bergantung terutamanya pada persilangan antara MAs, penunjuk teknikal yang sama, untuk menentukan trend dan isyarat.
Dalam pasaran dengan turun naik sampingan yang besar, MAs boleh sering bersilang dan menghasilkan isyarat palsu yang menyebabkan kerugian.
Penyelesaian adalah untuk menghentikan strategi apabila mengenal pasti trend sampingan, atau menyesuaikan parameter MA dan tempoh kelewatan dengan betul.
Strategi ini hanya mengesan trend harga dan tidak dapat meramalkan perangkap jangka pendek atau pembalikan trend yang disebabkan oleh peristiwa besar.
Penyelesaian adalah untuk menggabungkan penunjuk lain untuk menilai risiko, atau mengurangkan saiz kedudukan dengan betul.
Selain DEMA dan TEMA, uji gabungan SMA, EMA, dan MA yang ditingkatkan untuk mencari yang paling sesuai untuk pasaran ini.
Jalankan pengoptimuman untuk mencari panjang MA yang optimum dan tempoh kelewatan isyarat untuk isyarat perdagangan yang lebih tepat.
Memandangkan ciri produk yang berbeza, cari kombinasi panjang MA yang sesuai, tempoh kelewatan untuk turun naik harga dan trend.
Sebagai contoh, gunakan Bollinger Bands untuk menilai turun naik dan tahap harga untuk mengelakkan pasaran whipsaw. Gunakan penunjuk momentum untuk menilai kekuatan trend.
Ini adalah trend asas yang mengikuti strategi berdasarkan persilangan MA dinamik antara DEMA dan TEMA. Kelebihannya adalah kestabilan tinggi, kebolehpercayaan dan universaliti. Tetapi ia juga mempunyai beberapa keupayaan pengesanan pembalikan yang tertinggal dan lemah. Artikel ini memberikan analisis menyeluruh mengenai kebaikan, keburukan dan arah pengoptimuman, berfungsi sebagai rujukan berharga untuk menggunakan strategi ini. Secara keseluruhan, ia menawarkan contoh khas reka bentuk strategi perdagangan kuantitatif yang layak untuk kajian 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