Strategi Counter Trend Dual Moving Average terutama dirancang untuk perdagangan swing yang diterapkan pada pasar FOREX. Strategi ini menghasilkan sinyal perdagangan menggunakan dua rata-rata bergerak dari kerangka waktu yang berbeda. Ketika rata-rata bergerak cepat melintasi di atas rata-rata bergerak lambat, posisi pendek diambil untuk mencari pembalikan; ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat, posisi panjang diambil untuk mencari pembalikan.
Rata-rata bergerak 1 jam mencerminkan perubahan harga lebih sensitif dan dapat berfungsi sebagai rata-rata bergerak cepat; rata-rata bergerak 1 hari merespons perubahan harga lebih lambat dan dapat berfungsi sebagai rata-rata bergerak lambat. Ketika rata-rata bergerak cepat melintasi di atas rata-rata bergerak lambat, dianggap bahwa pasar saat ini bullish dan sinyal pendek akan dihasilkan; ketika rata-rata bergerak cepat melintasi di bawah rata-rata bergerak lambat, dianggap bahwa pasar saat ini bearish dan sinyal panjang akan dihasilkan.
Prinsip masuk panjang atau pendek untuk mencari pembalikan ketika rata-rata bergerak cepat dan lambat memiliki salib emas atau salib mati adalah bahwa ketika rata-rata bergerak cepat dan lambat melintasi, itu menunjukkan bahwa pasar mungkin telah terbalik, dan persilangan garis cepat dan garis lambat adalah waktu menghasilkan sinyal pembalikan. Menurut teori perdagangan pembalikan, harga biasanya tidak naik atau turun dalam satu arah, dan kemungkinan waktu pembalikan harga adalah ketika ada terobosan tingkat dukungan dan resistensi yang penting. Oleh karena itu, strategi ini menggunakan sinyal pembalikan rata-rata bergerak ganda untuk menangkap peluang pembalikan.
Strategi ini juga menetapkan waktu perdagangan dan kondisi penyaringan tanggal. Ini hanya berdagang dalam kisaran tanggal yang ditetapkan dan jam perdagangan untuk menghindari perdagangan selama periode yang tidak cocok.
Strategi Counter Trend Dual Moving Average memiliki keuntungan berikut:
Strategi reversal memiliki keuntungan ruang keuntungan yang besar. perdagangan reversal dapat memperoleh keuntungan yang lebih tinggi dalam kondisi pasar yang tidak stabil dengan mengambil counter operasi di titik-titik kunci.
Menggunakan kombinasi rata-rata bergerak ganda menyaring sinyal dan menghindari sinyal palsu. indikator tunggal rentan terhadap sinyal palsu, sementara kombinasi indikator ganda dapat meningkatkan keandalan sinyal dengan menyaring beberapa sinyal palsu, membuat peluang perdagangan lebih dapat diandalkan.
Menetapkan jam perdagangan dan kondisi tanggal menghindari periode pasar yang tidak aktif dan menghindari terjebak. Dengan hanya berdagang selama jam perdagangan dan kisaran tanggal yang ditetapkan, dimungkinkan untuk menghindari periode fluktuasi harga yang dramatis dan menghindari perdagangan yang macet.
Strategi pembalikan cocok untuk perdagangan jangka menengah. Dibandingkan dengan perdagangan frekuensi tinggi, strategi perdagangan jangka menengah lebih stabil, menghindari pembelian dan penjualan yang terlalu sering.
Pengendalian penarikan maksimum bermanfaat untuk manajemen modal. Menetapkan rasio penarikan maksimum dapat secara efektif mengendalikan risiko overnight dan menghindari kerugian besar dana.
Strategi Counter Trend Dual Moving Average juga memiliki risiko berikut:
Sinyal pembalikan mungkin gagal menyebabkan kerugian. Sinyal pembalikan harga tidak selalu dapat diandalkan. Ada risiko kerugian ketika harga melanjutkan tren tanpa pembalikan. Kerugian dapat dikendalikan dengan mengatur stop loss.
Penyimpangan dari tren menyebabkan kerugian. Ketika dua rata-rata bergerak telah terpisah secara signifikan sebelum pembalikan, mungkin ada risiko kerugian. Waktu pembalikan dapat ditentukan dengan mengamati jarak antara rata-rata bergerak.
Pengaturan jam perdagangan yang tidak tepat dapat kehilangan peluang. Jika jam perdagangan ditetapkan terlalu ketat, beberapa peluang perdagangan dapat dilewatkan. Jam perdagangan dapat diperluas dengan tepat.
Kegagalan untuk menghentikan kerugian segera setelah pembalikan menghasilkan kerugian yang diperluas. Setelah pembalikan, kerugian harus dihentikan segera ketika harga melanjutkan tren asli untuk mengendalikan kerugian.
Strategi Counter Trend Dual Moving Average juga dapat dioptimalkan dalam aspek berikut:
Indikator seperti MACD, KDJ dapat diuji dalam kombinasi dengan moving average ganda untuk meningkatkan akurasi sinyal.
Mengoptimalkan parameter siklus rata-rata bergerak untuk menemukan parameter optimal.
Memperluas atau mempersempit jam perdagangan untuk menemukan jam perdagangan yang optimal.
Tambahkan kondisi penyaringan tren untuk menghindari penyimpangan. Indikator seperti ADX dapat ditambahkan untuk menilai kekuatan tren dan menghindari pembalikan ketika tidak ada tren yang jelas.
Tambahkan model pembelajaran mesin untuk verifikasi sinyal. Model dapat dilatih untuk menilai keandalan sinyal pembalikan dan menyaring beberapa sinyal berkualitas rendah.
Strategi Counter Trend Dual Moving Average cocok untuk trading jangka menengah di pasar forex. Strategi ini menggunakan golden crosses dan dead crosses antara moving average yang cepat dan lambat untuk menghasilkan sinyal pembalikan, membuat counter operations di titik pasar utama, yang memiliki keuntungan ruang keuntungan yang besar. Pada saat yang sama, strategi ini juga menggunakan pengaturan seperti jam perdagangan dan penarikan maksimum untuk mengendalikan risiko. Ini adalah sistem pembalikan yang relatif stabil yang dapat menghasilkan pengembalian yang tinggi sambil mengendalikan 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)