
Strategi pergerakan rata-rata bergerak berganda adalah strategi yang digunakan terutamanya untuk perdagangan jangka menengah di pasaran forex. Strategi ini menggunakan purata bergerak dari dua tempoh yang berbeza untuk menghasilkan isyarat perdagangan. Apabila persilangan emas berlaku antara purata bergerak cepat dan purata bergerak perlahan, cari pembalikan dengan melakukan short head; apabila persilangan mati antara purata bergerak cepat dan purata bergerak perlahan, cari pembalikan dengan melakukan banyak kepala.
Strategi ini menggunakan purata bergerak dalam dua tempoh masa 1 jam dan 1 hari. Purata bergerak dalam tempoh 1 jam bertindak balas terhadap perubahan harga dengan lebih sensitif dan boleh digunakan sebagai purata bergerak cepat; purata bergerak dalam tempoh 1 hari bertindak balas terhadap perubahan harga dengan lebih perlahan dan boleh digunakan sebagai purata bergerak perlahan.
Prinsip untuk masuk ke dalam perdagangan yang lebih tinggi atau lebih rendah untuk mencari pembalikan adalah bahawa apabila rata-rata bergerak cepat dan rata-rata bergerak perlahan mengalami persilangan emas atau garpu mati, ini menunjukkan bahawa pasaran mungkin menghasilkan pembalikan, melintasi garis cepat atau melintasi garis perlahan adalah masa untuk menghasilkan isyarat pembalikan. Berdasarkan teori perdagangan yang berbalik, harga biasanya tidak naik atau turun secara tunggal, dan ketika terdapat penembusan atau sokongan penting dan titik rintangan, kemungkinan besar adalah saat harga saham berbalik.
Strategi ini juga menetapkan syarat penyaringan masa dan tarikh perdagangan, yang hanya akan dilakukan dalam tempoh tarikh yang ditetapkan dan dalam tempoh perdagangan yang ditetapkan, untuk mengelakkan perdagangan pada tempoh yang tidak sesuai.
Strategi pembalikan trend purata bergerak berganda mempunyai kelebihan berikut:
Strategi pembalikan mempunyai kelebihan yang besar untuk mendapatkan keuntungan. Perdagangan pembalikan dapat memperoleh keuntungan yang lebih tinggi dalam keadaan harga yang lebih berfluktuasi dengan melakukan operasi pembalikan pada titik-titik penting.
Penggunaan gabungan dua purata bergerak untuk menapis isyarat, mengelakkan isyarat palsu. Indikator tunggal mudah menghasilkan isyarat palsu, manakala gabungan dua indikator dapat meningkatkan kebolehpercayaan isyarat, menapis beberapa isyarat palsu, menjadikan peluang perdagangan lebih dipercayai.
Tetapkan masa dan tarikh perdagangan, mengelakkan tempoh tidak aktif pasaran, dan mengelakkan terhalang. Berdagang hanya dalam tempoh perdagangan dan tarikh yang ditetapkan, untuk mengelakkan tempoh harga yang bergelombang, dan mengelakkan perdagangan terhalang.
Strategi pembalikan sesuai untuk perdagangan pertengahan. Berbanding dengan perdagangan frekuensi tinggi, strategi perdagangan pertengahan lebih stabil dan mengelakkan pembelian dan penjualan yang terlalu kerap.
Kawalan pengeluaran maksimum adalah baik untuk pengurusan wang. Tetapan peratusan pengeluaran maksimum dapat mengawal risiko semalaman dengan baik dan mengelakkan kehilangan wang yang besar.
Strategi pembalikan trend purata bergerak berganda juga mempunyai risiko:
Isyarat pembalikan mungkin gagal menyebabkan kerugian. Isyarat pembalikan harga tidak selalu boleh dipercayai, dan risiko kerugian akan dihadapi apabila harga terus bergerak tanpa pembalikan. Anda boleh menetapkan stop loss untuk mengawal kerugian.
Trend yang menyimpang membawa kerugian. Apabila kedua-dua purata bergerak telah jelas dipisahkan, maka ia mungkin menghadapi risiko kerugian. Waktu pembalikan boleh ditentukan dengan melihat selang purata bergerak.
Tetapan masa dagangan yang tidak betul boleh kehilangan peluang. Jika masa dagangan terlalu ketat, anda mungkin kehilangan beberapa peluang perdagangan. Anda boleh memperluaskan masa dagangan dengan sewajarnya.
Tidak dapat menghentikan kerugian dalam masa yang tepat setelah berbalik. Apabila harga berbalik terus berjalan pada trend asal, anda mesti menghentikan kerugian dalam masa yang tepat untuk mengawal kerugian.
Strategi pembalikan trend purata bergerak berganda juga boleh dioptimumkan dengan:
Uji kombinasi lebih banyak indikator untuk mencari isyarat perdagangan yang lebih baik. Anda boleh menguji MACD, KDJ dan lain-lain indikator dalam kombinasi dengan purata bergerak ganda untuk meningkatkan ketepatan isyarat.
Mengoptimumkan parameter kitaran rata-rata bergerak, mencari parameter terbaik. Anda boleh menentukan bilangan kitaran terbaik dengan mengkaji semula parameter yang berbeza dengan panjang rata-rata bergerak.
Memperbesar atau mengurangkan tempoh dagangan untuk mencari tempoh dagangan yang optimum. Uji kesesuaian tempoh dagangan mengikut ciri-ciri pelbagai jenis.
Menambah syarat penapisan trend untuk mengelakkan penyimpangan. Anda boleh menambah indikator seperti ADX untuk menilai kekuatan trend dan kelemahan, dan mengelakkan pembalikan apabila tidak ada trend yang jelas.
Menambah model pembelajaran mesin untuk pemeriksaan isyarat. Model boleh dilatih untuk menilai kebolehpercayaan isyarat pembalikan dan menyaring beberapa isyarat berkualiti rendah.
Strategi berbalik arah trend berganda adalah strategi yang sesuai untuk perdagangan forex jangka menengah. Ia menggunakan purata bergerak cepat dan purata bergerak perlahan untuk menghasilkan isyarat berbalik, melakukan operasi terbalik pada titik-titik penting di pasaran, dengan kelebihan yang besar. Ia juga menggunakan masa perdagangan dan tetapan penarikan maksimum untuk mengawal risiko.
/*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)