
Triple EMA trend tracking adalah strategi yang sangat cocok untuk melacak tren pasar. Ini menggunakan tiga periode EMA yang berbeda sebagai sinyal untuk membangun posisi, untuk membangun posisi overhead atau kosong ketika ada konfirmasi tren yang cukup.
Keuntungan dari strategi ini adalah bahwa ia dapat mengurangi sinyal palsu, memastikan bahwa tren cukup kuat dan kemudian masuk. Pada saat yang sama, ia dilengkapi dengan sistem stop loss yang dapat mengikuti stop loss sesuai dengan volatilitas pasar, sehingga mencapai efek manajemen risiko yang lebih baik.
Strategi ini menggunakan tiga EMA periode 7, 14 dan 21 sebagai indikator sinyal untuk membangun posisi. Logika spesifiknya adalah, ketika harga naik tiga EMA pada saat yang sama, lakukan over; ketika harga turun tiga EMA pada saat yang sama, lakukan short.
Desain seperti ini dapat mengurangi sinyal palsu dan memastikan bahwa tren cukup jelas dan kemudian masuk. Sementara itu, tiga siklus EMA yang disetel dengan benar dapat menangkap tren pasar yang terjadi pada waktu yang tepat.
Strategi ini menggunakan sistem stop loss adaptif yang didasarkan pada ATR dan withdrawal maksimum. Ini akan menghitung fluktuasi harga secara real-time dan dengan demikian menetapkan garis stop loss. Secara khusus, perhitungan beberapa kali lipat dari ATR sebagai zona penyangga stop loss.
Dalam proses kenaikan harga, stop loss akan bergerak ke atas dengan tinggi baru, dan memiliki efek penarikan yang lebih baik. Ketika harga kembali ke titik rendah zona penyangga, stop loss akan diaktifkan, dan stop loss akan dihapus. Hal ini dapat mengontrol risiko stop loss sesuai dengan kondisi pasar tertentu.
Strategi ini menggunakan stop loss dengan proporsi tetap. Setelah membuka posisi, Anda akan mengatur stop loss dengan persentase tertentu dari harga masuk. Ketika harga mencapai stop loss, Anda akan mengambil keuntungan dari posisi Anda.
Keuntungan dari stop loss ini adalah bahwa Anda dapat menetapkan target keuntungan, dan keluar setelah Anda mencapainya. Anda juga dapat menghindari risiko penurunan harga lagi. Stop loss dapat disesuaikan sesuai kebutuhan.
Anda dapat menggunakan indikator untuk mengevaluasi tren dan menghindari posisi buta dalam situasi yang bergolak. Anda juga dapat menggunakan stop-loss mobile atau stop-loss ratio untuk membuat stop-loss lebih fleksibel. Secara keseluruhan, Anda masih memerlukan penilaian buatan untuk mendukung penggunaan strategi.
Strategi ini juga dapat dioptimalkan dalam beberapa hal:
Menggunakan lebih banyak indikator untuk menentukan waktu masuk, seperti MACD, KD, dan lain-lain, untuk menghindari terjebak dalam situasi yang bergejolak.
Cobalah untuk menggerakkan stopkontak, atau gunakan stopkontak dengan cara yang lebih fleksibel.
Menambahkan mekanisme pelacakan ke bawah ke dalam metode stop loss, dapat melacak kembali titik terendah jika harga turun lagi, sehingga mengendalikan risiko.
Adaptasi parameter siklus EMA sesuai dengan karakteristik varietas yang berbeda, untuk mengoptimalkan penilaian tren.
Dengan menambahkan modul manajemen posisi, Anda dapat menyesuaikan posisi satuan sesuai dengan proporsi penggunaan dana.
Strategi pelacakan tren EMA triple adalah strategi pelacakan tren yang sangat praktis. Ini memiliki kemampuan penilaian tren yang kuat, dan dilengkapi dengan mekanisme stop-loss yang dapat disesuaikan, yang dapat secara otomatis mengelola pesanan. Dari sudut pandang optimasi, sistem stop-loss dan stop-loss dapat disempurnakan lebih lanjut, sehingga dapat disesuaikan dengan situasi pasar real-time.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Three EMAs Trend-following Strategy',title='Three EMAs Trend-following Strategy (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
ema_1 = ema(close, input(7))
ema_2 = ema(close, input(12))
ema_3 = ema(close, input(21))
Take_profit= ((input (4))/100)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
length = input(20, "Length", minval = 2)
src = input(close, "Source")
factor = input(3.0, "Multiplier", minval = 0.25, step = 0.25)
volStop(src, atrlen, atrfactor) =>
var max = src
var min = src
var uptrend = true
var stop = 0.0
atrM = nz(atr(atrlen) * atrfactor, tr)
max := max(max, src)
min := min(min, src)
stop := nz(uptrend ? max(stop, max - atrM) : min(stop, min + atrM), src)
uptrend := src - stop >= 0.0
if uptrend != nz(uptrend[1], true)
max := src
min := src
stop := uptrend ? max - atrM : min + atrM
[stop, uptrend]
[vStop, uptrend] = volStop(src, length, factor)
go_long = crossover(close, ema_1) and crossover(close, ema_2) and crossover(close, ema_3)
closeLong = close > longTakeProfit or crossunder(close, vStop)
//Entry
strategy.entry(id="long", long = true, when = go_long and window())
//Exit
strategy.close("long", when = closeLong and window())
plot(vStop,"Vstop", color.black, linewidth=2)
plot(ema_1,"EMA Short", color.green, linewidth=1)
plot(ema_2,"EMA Mid", color.purple, linewidth=1)
plot(ema_3,"EMA Long", color.red, linewidth=1)