Strategi perdagangan TEMA ganda adalah strategi yang lebih umum untuk melacak tren harga. Strategi ini menggunakan TEMA dengan dua parameter berbeda, menghasilkan sinyal ganda ketika garis cepat melewati garis lambat dari bawah, dan posisi rata ketika garis cepat melewati garis lambat dari atas ke bawah. Strategi ini dapat secara efektif melacak tren harga dan mendapatkan keuntungan yang lebih baik ketika tren jelas.
Strategi ini menggunakan TEMA sebagai indikator teknis utama. Rumus untuk menghitung TEMA adalah:
TEMA = (3*EMA1) - (3*EMA2) + EMA3
EMA1, EMA2, dan EMA3 adalah EMA bergerak indeks dengan panjang N. Dengan menghitung EMA tiga kali, TEMA dapat merespon perubahan harga lebih cepat.
Strategi menggunakan TEMA dengan panjang yang lebih pendek sebagai garis cepat, dan TEMA dengan panjang yang lebih panjang sebagai garis lambat. Ketika Anda melewati garis lambat di garis cepat, harga mulai naik, menghasilkan sinyal yang lebih banyak; Ketika Anda melewati garis lambat di bawah garis cepat, harga mulai turun, posisi terendah.
Kunci dari strategi ini adalah pengaturan parameter dan penilaian kondisi. Pengaturan garis cepat dengan periode yang lebih pendek, seperti 20 hari, dapat menangkap perubahan harga lebih cepat; Pengaturan garis lambat dengan periode yang lebih lama, seperti 60 hari, dapat menghilangkan false breakout.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan indikator TEMA dapat merespons perubahan harga lebih cepat dan menangkap pembalikan tren.
Struktur TEMA ganda dapat memfilter terobosan palsu untuk masuk ke perdagangan tren dengan probabilitas tinggi.
Pengaturan parameter yang dapat disesuaikan fleksibel, dapat menyesuaikan parameter sesuai dengan pasar, untuk menyesuaikan dengan situasi yang berbeda.
Logika strategi yang sederhana dan jelas, mudah dipahami dan diterapkan, dan tingkat pemanfaatan dana yang tinggi.
Dapat memperoleh hasil yang lebih baik dalam situasi tren, dan lebih efektif dalam pasar dengan tren yang jelas.
Strategi ini juga memiliki risiko sebagai berikut:
Hal ini dapat menyebabkan kerugian dalam transaksi yang sering terjadi dalam proses konsolidasi.
Jika parameter tidak diatur dengan benar, mungkin akan menghasilkan terlalu banyak sinyal palsu.
Tidak mampu merespons secara efektif terhadap perubahan kondisi jangka pendek yang disebabkan oleh kejadian yang tidak terduga.
Ada keterlambatan waktu tertentu, mungkin kehilangan kesempatan untuk menyingkat jalur.
Dalam situasi yang sangat bergolak, ada risiko besar untuk membuka posisi.
Perlu menyesuaikan parameter tepat waktu untuk beradaptasi dengan perubahan pasar, perlu pengalaman optimasi parameter tertentu.
Langkah-langkah manajemen risiko yang sesuai:
Optimalkan pengaturan parameter, hindari terlalu sensitif.
Kombinasi dengan indikator lain untuk memfilter sinyal masuk.
Menggunakan stop loss off-court untuk memastikan pengendalian kerugian tunggal.
Menurunkan ukuran posisi dan mengendalikan risiko transaksi tunggal.
Menambahkan parameter optimasi penilaian dan mekanisme intervensi manusia.
Strategi ini dapat dioptimalkan dengan:
Mengoptimalkan parameter dari jalur cepat dan lambat, sehingga lebih cocok untuk berbagai varietas dan lingkungan. Anda dapat memperkenalkan mekanisme optimasi parameter dinamis.
Menambahkan kombinasi indikator lain, seperti MACD, Blink, dan lain-lain, meningkatkan efektivitas sinyal.
Menambahkan strategi stop loss, seperti stop loss bergerak, stop loss waktu, stop loss ATR, dan lain-lain, untuk mengendalikan kerugian.
Menghindari membuka posisi saat panik dengan indeks VIX.
Menggunakan indikator energi kuantitatif, pertimbangkan untuk membangun gudang jika jumlah energi meningkat secara signifikan
Mengoptimalkan strategi pengelolaan dana, seperti perdagangan kuota, manajemen posisi, dll.
Mengoptimalkan parameter secara otomatis dengan kombinasi pembelajaran mesin.
Secara keseluruhan, strategi TEMA adalah strategi yang menggunakan indikator indeks tren untuk melacak tren. Ini bermanfaat untuk menangkap tren harga dan melakukan perdagangan di bawah tren yang jelas. Tetapi juga perlu memperhatikan pengendalian risiko untuk menghindari kerugian akibat penggunaan yang tidak tepat. Dengan pengujian optimasi lebih lanjut, pengaturan parameter strategi dapat dibuat lebih ilmiah dan rasional, dan mendapatkan keuntungan yang lebih baik dalam situasi 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)