Triple Exponential Moving Average Long Hanya Strategi

Penulis:ChaoZhang, Tarikh: 2023-11-15 10:54:39
Tag:

img

Ringkasan

Triple Exponential Moving Average Long Only Strategy adalah strategi trend mengikut jangka panjang berdasarkan penunjuk Triple Exponential Moving Average (TEMA). Ia menggunakan TEMA untuk menapis bunyi bising pasaran jangka pendek dan mengenal pasti arah trend jangka menengah hingga panjang. Strategi ini berjalan lama apabila harga melintasi di atas TEMA dan keluar apabila harga jatuh di bawah TEMA. Ia sesuai untuk pelabur yang berminat dalam perdagangan trend jangka menengah hingga panjang.

Logika Strategi

Strategi ini mengenal pasti trend jangka menengah hingga panjang menggunakan penunjuk TEMA. TEMA adalah penunjuk trend yang dilencangkan yang berasal dari pelinciran eksponensial tiga kali ganda EMA standard. EMA itu sendiri mempunyai beberapa kesan penapisan bunyi bising. TEMA mengurangkan lagi bunyi bising jangka pendek dengan melencangkan tiga EMA dari tempoh yang berbeza.

Secara khusus, strategi ini mula-mula mengira EMA (ema1) tempoh fastEmaPeriod, kemudian mengira EMA (ema2) lain ema1 menggunakan tempoh yang sama, dan akhirnya mengira ema3 berdasarkan ema2. TEMA akhir dikira sebagai: TEMA = 3 * (ema1 - ema2) + ema3. Strategi ini pergi panjang apabila harga melintasi di atas TEMA dan keluar apabila harga jatuh di bawah TEMA.

Melalui penghalusan eksponensial berganda, TEMA dapat mengenal pasti arah trend jangka menengah hingga panjang walaupun zigzag dan pembalikan, menapis bunyi bising jangka pendek.

Analisis Kelebihan

  • TEMA secara berkesan mengenal pasti trend jangka menengah hingga panjang dan menapis bunyi bising jangka pendek, mengelakkan whipsaws.

  • Hanya kedudukan panjang mengelakkan risiko penurunan yang tidak terhad.

  • Peratusan saiz kedudukan dengan fleksibel saiz kedudukan berdasarkan saiz akaun untuk kawalan risiko.

  • Ujian balik tetingkap masa mengoptimumkan parameter pada tempoh sejarah tertentu.

Analisis Risiko

  • Kejadian black swan yang teruk boleh menyebabkan pembalikan tajam semasa tempoh penahan yang panjang, yang membawa kepada kerugian besar.

  • TEMA mungkin gagal menandakan perubahan trend untuk menghentikan kerugian tepat pada masanya.

  • Ukuran peratusan tidak mengehadkan saiz kerugian setiap perdagangan, yang memerlukan berhenti.

  • Ujian belakang berisiko terlalu sesuai, parameter yang dioptimumkan mungkin tidak sesuai dengan pasaran masa depan.

Arahan Penambahbaikan

  • Tambah metrik turun naik untuk mengukuhkan parameter.

  • Melaksanakan stop loss untuk mengawal saiz kerugian perdagangan tunggal.

  • Mengoptimumkan saiz kedudukan untuk saiz yang lebih kecil semasa penarikan.

  • Tambah penunjuk Trend lintas jangka masa untuk meningkatkan ketepatan trend.

  • Uji parameter tempoh tahan yang berbeza untuk optimum.

Kesimpulan

Ringkasnya, Triple EMA Long Only Strategy mengenal pasti arah trend melalui penunjuk TEMA, memegang kedudukan jangka panjang untuk mengelakkan bunyi bising jangka pendek, tinggal hanya lama untuk mengelakkan penurunan yang tidak terhad, dan berkesan menangkap trend jangka menengah hingga panjang.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA_System_long_only", overlay=true)

//Collect inputs parameters

fastEmaPeriod = input(7, minval=1, title="Fast TEMA Period")

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 4, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2000)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

fastEma = ema(close, fastEmaPeriod)

//convert EMA into TEMA

ema1 = ema(close, fastEmaPeriod)
ema2 = ema(ema1, fastEmaPeriod)
ema3 = ema(ema2, fastEmaPeriod)

fastTEMA = 3 * (ema1 - ema2) + ema3


buy  = close > fastTEMA
sell = close < fastTEMA

plot(fastTEMA, title = 'TEMA', linewidth=3, color=white)

if window()
    strategy.entry("long",strategy.long, when = buy)
    strategy.close("long", when = sell )

Lebih lanjut