Triple Exponential Moving Average Hanya Strategi Panjang

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

img

Gambaran umum

Triple Exponential Moving Average Long Only Strategy adalah strategi tren jangka panjang berdasarkan indikator Triple Exponential Moving Average (TEMA). Strategi ini menggunakan TEMA untuk menyaring kebisingan pasar jangka pendek dan mengidentifikasi arah tren jangka menengah hingga jangka panjang. Strategi ini berjalan panjang ketika harga melintasi di atas TEMA dan keluar ketika harga turun di bawah TEMA.

Logika Strategi

Strategi ini mengidentifikasi tren jangka menengah hingga jangka panjang menggunakan indikator TEMA. TEMA adalah indikator tren halus yang berasal dari perataan eksponensial tiga kali dari EMA standar. EMA sendiri memiliki beberapa efek penyaringan kebisingan. TEMA lebih lanjut mengurangi kebisingan jangka pendek dengan meratakan tiga EMA dari periode yang berbeda.

Secara khusus, strategi pertama menghitung EMA (ema1) dari periode fastEmaPeriod, kemudian menghitung EMA (ema2) lain dari ema1 menggunakan periode yang sama, dan akhirnya menghitung ema3 berdasarkan ema2.

Melalui perataan eksponensial ganda, TEMA dapat secara efektif mengidentifikasi arah tren jangka menengah hingga panjang meskipun zigzag dan pembalikan, menyaring kebisingan jangka pendek.

Analisis Keuntungan

  • TEMA secara efektif mengidentifikasi tren jangka menengah hingga jangka panjang dan menyaring kebisingan jangka pendek, menghindari whipsaws.

  • Hanya posisi panjang yang menghindari risiko penurunan yang tidak terbatas dari shorting.

  • Posisi persentase ukuran fleksibel ukuran posisi berdasarkan ukuran akun untuk pengendalian risiko.

  • Time window backtesting mengoptimalkan parameter pada periode sejarah tertentu.

Analisis Risiko

  • Kejadian angsa hitam yang parah dapat menyebabkan pembalikan tajam selama periode penyimpanan yang panjang, yang menyebabkan kerugian besar.

  • TEMA mungkin gagal memberi sinyal perubahan tren untuk stop loss yang tepat waktu.

  • Ukuran persentase tidak membatasi ukuran kerugian per perdagangan, yang membutuhkan stop.

  • Backtesting berisiko terlalu cocok, parameter yang dioptimalkan mungkin tidak cocok dengan pasar masa depan.

Arah Peningkatan

  • Tambahkan metrik volatilitas untuk memperkuat parameter.

  • Mengimplementasikan stop loss untuk mengontrol ukuran kerugian perdagangan tunggal.

  • Mengoptimalkan ukuran posisi untuk ukuran yang lebih kecil selama penarikan.

  • Tambahkan indikator tren lintas jangka waktu untuk meningkatkan akurasi tren.

  • Uji parameter periode penyimpanan yang berbeda untuk optimum.

Kesimpulan

Singkatnya, Triple EMA Long Only Strategy mengidentifikasi arah tren melalui indikator TEMA, memegang posisi jangka panjang untuk menghindari kebisingan jangka pendek, tinggal hanya lama untuk menghindari penurunan yang tidak terbatas, dan secara efektif menangkap tren jangka menengah hingga panjang. Namun, ada risiko yang memerlukan optimasi untuk meningkatkan ketahanan. Secara keseluruhan, ini cocok untuk investor dengan toleransi risiko tertentu yang mendukung perdagangan tren.


/*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 banyak