
Strategi berbalik tren rata-rata bergerak ganda adalah strategi yang digunakan terutama untuk perdagangan jangka menengah di pasar valuta asing. Strategi ini menggunakan rata-rata bergerak dari dua periode yang berbeda untuk menghasilkan sinyal perdagangan. Bila ada persilangan emas antara rata-rata bergerak cepat dan rata-rata bergerak lambat, ambil posisi terendah untuk mencari berbalik; Bila ada persilangan mati antara rata-rata bergerak cepat dan rata-rata bergerak lambat, ambil posisi terendah untuk mencari berbalik.
Strategi ini menggunakan moving averages dengan dua periode waktu 1 jam dan 1 hari. Moving averages dengan periode 1 jam lebih sensitif terhadap perubahan harga dan dapat digunakan sebagai moving averages yang cepat. Moving averages dengan periode 1 hari lebih lambat dalam merespons perubahan harga dan dapat digunakan sebagai moving averages yang lambat.
Pada dasarnya, ketika ada persilangan emas atau dead fork antara rata-rata bergerak cepat dan rata-rata bergerak lambat, pasar mungkin berbalik. Melalui garis cepat atau garis lambat, ada kesempatan untuk berbalik. Menurut teori perdagangan berbalik, harga biasanya tidak naik atau turun secara tunggal, dan kemungkinan besar saat harga saham berbalik setelah terjadi terobosan atau dukungan dan resistensi penting.
Strategi ini juga menetapkan kondisi penyaringan waktu dan tanggal perdagangan, yang hanya akan dilakukan pada tanggal yang ditetapkan dan dalam periode perdagangan yang ditetapkan, untuk menghindari perdagangan pada periode waktu yang tidak sesuai.
Strategi reversal trend dari dua rata-rata bergerak memiliki keuntungan sebagai berikut:
Strategi reversal memiliki keuntungan yang besar untuk mendapatkan keuntungan. Perdagangan reversal dapat memperoleh keuntungan yang lebih tinggi dalam situasi di mana harga berfluktuasi tinggi dengan melakukan operasi reversal di titik-titik kunci.
Menggunakan kombinasi dua rata-rata bergerak untuk memfilter sinyal, menghindari sinyal palsu. Indikator tunggal mudah menghasilkan sinyal palsu, sedangkan kombinasi dua indikator dapat meningkatkan keandalan sinyal, memfilter beberapa sinyal palsu, membuat peluang perdagangan lebih dapat diandalkan.
Menetapkan waktu dan tanggal perdagangan, menghindari periode tidak aktif pasar, menghindari terjerat. Hanya berdagang dalam waktu dan tanggal perdagangan yang ditetapkan, dapat menghindari periode saat harga berfluktuasi tajam, menghindari terhambat.
Strategi reversal cocok untuk perdagangan jangka menengah. Strategi perdagangan jangka menengah lebih stabil dibandingkan dengan perdagangan frekuensi tinggi dan menghindari terlalu sering melakukan perdagangan.
Pengendalian maksimum penarikan menguntungkan untuk pengelolaan dana. Pengaturan rasio maksimum penarikan dapat mengontrol risiko overnight dengan baik dan menghindari kerugian dana yang besar.
Strategi reversal trend dari moving average ganda juga memiliki risiko sebagai berikut:
Sinyal reversal mungkin gagal menyebabkan kerugian. Sinyal reversal harga tidak selalu dapat diandalkan, dan risiko kerugian akan terjadi ketika harga terus bergerak tanpa reversal. Anda dapat mengatur stop loss untuk mengendalikan kerugian.
Trend deviasi membawa kerugian. Jika Anda melakukan pembalikan ketika dua rata-rata bergerak sudah jelas terpisah, Anda mungkin menghadapi risiko kerugian. Waktu pembalikan dapat ditentukan dengan mengamati interval rata-rata bergerak.
Jika pengaturan waktu perdagangan tidak tepat, peluang mungkin terlewatkan. Jika pengaturan waktu perdagangan terlalu ketat, beberapa peluang perdagangan mungkin terlewatkan.
Setelah berbalik tidak dapat menghentikan kerugian dalam waktu yang tepat. Jika harga berbalik terus berjalan pada tren awal, harus menghentikan kerugian dalam waktu yang tepat untuk mengendalikan kerugian.
Strategi reversal trend dari moving average ganda juga dapat dioptimalkan dengan:
Uji kombinasi lebih banyak indikator untuk mencari sinyal perdagangan yang lebih baik. Anda dapat menguji MACD, KDJ, dan indikator lainnya untuk kombinasi dengan rata-rata bergerak ganda untuk meningkatkan akurasi sinyal.
Mengoptimalkan parameter periodik dari moving average untuk menemukan parameter optimal. Parameter yang dapat ditentukan dengan mengevaluasi kembali parameter dari panjang yang berbeda dari moving average untuk menentukan jumlah periode optimal.
Memperpanjang atau memperpendek waktu perdagangan untuk menemukan waktu perdagangan yang optimal. Berdasarkan karakteristik varietas yang berbeda, uji efek penyesuaian periode perdagangan.
Menambahkan kondisi penyaringan tren untuk menghindari penyimpangan. Anda dapat menambahkan indikator seperti ADX untuk menilai kekuatan tren, menghindari pembalikan saat tidak ada tren yang jelas.
Menambahkan model pembelajaran mesin untuk pengujian sinyal. Model dapat dilatih untuk menilai keandalan sinyal pembalikan dan memfilter beberapa sinyal berkualitas rendah.
Strategi reversal tren dengan dua rata-rata bergerak adalah strategi yang cocok untuk perdagangan forex jangka menengah. Strategi ini menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk menghasilkan sinyal reversal, melakukan reversal pada titik-titik penting di pasar, dengan keuntungan yang besar.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 2h
basePeriod: 15m
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/
// © SoftKill21
//@version=4
strategy("gbpnzd 1h", overlay=true)
src = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", type=input.resolution, defval="60")
len = input(28, title="Moving Average Length - LookBack Period")
//periodT3 = input(defval=7, title="Tilson T3 Period", minval=1)
factorT3 = input(defval=7, title="Tilson T3 Factor - *.10 - so 7 = .7 etc.", minval=0)
atype = input(2,minval=1,maxval=8,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA, 8=Tilson T3")
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
res = useCurrentRes ? timeframe.period : resCustom
resCustom2 = input(title="plm", type=input.resolution, defval="D")
res2 = resCustom2
//hull ma definition
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
//TEMA definition
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
tema = 3 * (ema1 - ema2) + ema3
//Tilson T3
factor = factorT3 *.10
gd(src, len, factor) => ema(src, len) * (1 + factor) - ema(ema(src, len), len) * factor
t3(src, len, factor) => gd(gd(gd(src, len, factor), len, factor), len, factor)
tilT3 = t3(src, len, factor)
avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : atype == 7 ? 3 * (ema1 - ema2) + ema3 : tilT3
out = avg
ema20 = security(syminfo.tickerid, res, out)
plot3 = security(syminfo.tickerid, res2, ema20)
plot33 = security(syminfo.tickerid, res, ema20)
plot(plot3,linewidth=2,color=color.red)
plot(plot33,linewidth=2,color=color.white)
// longC = crossover(close[2], plot3) and close[1] > close[2] and close > close[1]
// shortc = crossunder(close[2],plot3) and close[1] < close[2] and close < close[1]
volumeMA=input(24)
ema_1 = ema(volume, volumeMA)
timeinrange(res, sess) => time(res, sess) != 0
//entrytime = timeinrange(timeframe.period, "0900-0915")
myspecifictradingtimes = input('0900-2300', type=input.session, title="My Defined Hours")
entrytime = time(timeframe.period, myspecifictradingtimes) != 0
longC = crossover(plot33,plot3) and time_cond and entrytime
shortc = crossunder(plot33,plot3) and time_cond and entrytime
// exitlong = crossunder(plot33,plot3)
// exitshort = crossover(plot33,plot3)
distanta=input(1.0025)
exitshort = plot33/plot3 > distanta
exitlong = plot3/plot33 > distanta
inverse = input(true)
exit = input(false)
if(inverse==false)
strategy.entry("long",1,when=longC)
strategy.entry("short",0,when=shortc)
if(inverse)
strategy.entry("long",1,when=shortc)
strategy.entry("short",0,when=longC)
if(exit)
strategy.close("long",when=exitlong)
strategy.close("short",when=exitshort)
// if(dayofweek==dayofweek.friday)
// strategy.close_all()
// risk = input(25)
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)