Strategi perdagangan lintas TEMA ganda

Penulis:ChaoZhang, Tanggal: 2023-10-12 17:34:19
Tag:

Gambaran umum

Strategi perdagangan crossover TEMA ganda adalah strategi trend-mengikuti yang umum menggunakan dua garis TEMA (Triple Exponential Moving Average) dengan parameter yang berbeda. Ini menghasilkan sinyal panjang ketika TEMA yang lebih cepat melintasi di atas TEMA yang lebih lambat, dan menutup posisi ketika TEMA yang lebih cepat melintasi di bawah TEMA yang lebih lambat. Strategi ini dapat secara efektif melacak tren harga dan mendapatkan keuntungan ketika tren jelas.

Logika Strategi

Strategi ini menggunakan TEMA (Triple Exponential Moving Average) sebagai indikator teknis utama.

TEMA = (3EMA1) - (3EMA2) + EMA3

Di mana EMA1, EMA2 dan EMA3 adalah EMA periode N. Dengan menghitung EMA tiga kali, TEMA dapat merespons perubahan harga lebih cepat.

Strategi ini menggunakan TEMA jangka pendek sebagai garis cepat, dan TEMA jangka panjang sebagai garis lambat. Ketika garis cepat melintasi di atas garis lambat, menunjukkan pergerakan harga naik, itu menghasilkan sinyal panjang. Ketika garis cepat melintasi di bawah garis lambat, menunjukkan pergerakan harga turun, itu menutup posisi.

Kunci dari strategi ini terletak pada penyesuaian parameter dan logika kondisi. Garis cepat dengan periode yang lebih pendek seperti 20 hari dapat dengan cepat menangkap dinamika harga, sementara garis lambat dengan periode yang lebih lama seperti 60 hari dapat menyaring breakout palsu. Ketika tren kenaikan atau penurunan harga yang signifikan muncul, garis cepat dapat melintasi di atas atau di bawah garis lambat dengan cepat untuk menghasilkan sinyal perdagangan.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. TEMA dapat merespons perubahan harga lebih cepat dan menangkap pembalikan tren.

  2. Struktur TEMA ganda membantu menyaring breakout palsu dan memasuki perdagangan tren kemungkinan tinggi.

  3. Parameter yang dapat disesuaikan yang fleksibel untuk beradaptasi dengan kondisi pasar yang berbeda.

  4. Logika yang sederhana dan jelas, mudah dimengerti dan diterapkan, pemanfaatan modal yang tinggi.

  5. Keuntungan yang baik dapat diperoleh di pasar tren, terutama yang tren kuat.

Analisis Risiko

Risiko dari strategi ini meliputi:

  1. Cenderung sering mengalami kerugian perdagangan di pasar yang terikat rentang.

  2. Dapat menghasilkan sinyal palsu yang berlebihan jika parameter tidak disetel dengan benar.

  3. Tidak mampu menanggapi secara efektif terhadap peristiwa mendadak dan pergerakan harga jangka pendek.

  4. Sinyal yang tertinggal dapat kehilangan peluang jangka pendek.

  5. Risiko tinggi membuka posisi terhadap perubahan yang kuat.

  6. Membutuhkan pengalaman dalam optimasi parameter untuk beradaptasi dengan perubahan pasar.

Langkah-langkah manajemen risiko:

  1. Mengoptimalkan parameter untuk menghindari sensitivitas yang berlebihan.

  2. Tambahkan indikator lain untuk menyaring sinyal masuk.

  3. Gunakan stop loss untuk membatasi kerugian perdagangan tunggal.

  4. Kurangi ukuran posisi untuk mengendalikan risiko.

  5. Tambahkan aturan optimasi parameter dan mekanisme intervensi manual.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan parameter jalur cepat dan lambat untuk produk dan kondisi pasar yang berbeda.

  2. Masukkan indikator lain seperti MACD, Bollinger Bands untuk meningkatkan validitas sinyal.

  3. Tambahkan strategi stop loss seperti trailing stop, time stop, ATR stop untuk mengendalikan kerugian.

  4. Hindari membuka posisi ketika VIX tinggi.

  5. Tambahkan indikator volume, hanya pertimbangkan untuk masuk pada ekspansi volume yang jelas.

  6. Mengoptimalkan pengelolaan uang seperti ukuran posisi pecahan tetap, pengendalian penarikan.

  7. Gunakan pembelajaran mesin untuk mengoptimalkan parameter secara otomatis.

Ringkasan

Strategi crossover TEMA ganda adalah strategi trend-mengikuti keseluruhan menggunakan indikator teknis tren. Ini membantu menangkap tren harga dan perdagangan sepanjang tren. Tetapi risiko harus dikelola dengan benar untuk menghindari kerugian dari penggunaan yang tidak tepat. Optimasi dan pengujian lebih lanjut dapat menyebabkan penyesuaian parameter yang lebih ilmiah dan kinerja yang lebih baik di pasar tren.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nickrober

//@version=4
strategy(title="TEMA Cross Backtest", shorttitle="TEMA_X_BT", overlay=true, commission_type=strategy.commission.percent, commission_value=0, initial_capital = 1000,  default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Backtest inputs
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2010)
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=2017)

// Define backtest timewindow
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>  true

//TEMA Section
xLength = input(20, minval=1, title="Fast Length")
xPrice = close
xEMA1 = ema(xPrice, xLength)
xEMA2 = ema(xEMA1, xLength)
xEMA3 = ema(xEMA2, xLength)
xnRes = (3 * xEMA1) - (3 * xEMA2) + xEMA3
xnResP = plot(xnRes, color=color.green, linewidth=2, title="TEMA1")

yLength = input(60, minval=1, title="Slow Length")
yPrice = close
yEMA1 = ema(yPrice, yLength)
yEMA2 = ema(yEMA1, yLength)
yEMA3 = ema(yEMA2, yLength)
ynRes = (3 * yEMA1) - (3 * yEMA2) + yEMA3
ynResP = plot(ynRes, color=color.red, linewidth=2, title="TEMA2")

fill(xnResP, ynResP, color=xnRes > ynRes ? color.green : color.red, transp=75, editable=true)

// Buy and Sell Triggers
LongEntryAlert = xnRes > ynRes
LongCloseAlert = xnRes < ynRes
ShortEntryAlert = xnRes < ynRes
ShortCloseAlert = xnRes > ynRes

// Entry & Exit signals
strategy.entry("Long", strategy.long, when = xnRes > ynRes and window()) 
strategy.close("Long", when = xnRes < ynRes)
//strategy.entry("Short", strategy.short, when = xnRes < ynRes and window())
//strategy.close("Short", when = xnRes > ynRes)

Lebih banyak