
Strategi ini menilai arah tren dengan menggunakan mata uang emas MACD, stop loss dan stop loss dengan indikator ATR, dan memungkinkan perdagangan yang mengikuti tren. Kata “plataforma” dalam nama strategi menonjolkan sinyal mata uang emas MACD.
Ketika garis MACD dari bawah ke atas melintasi garis Signal dan berubah menjadi positif, sinyal beli dihasilkan, ini adalah sinyal garpu emas, yang menunjukkan tren kenaikan harga saham terbentuk. Ketika garis MACD dari atas ke bawah melintasi garis Signal dan berubah menjadi negatif, menghasilkan sinyal jual, ini adalah sinyal garpu mati, yang menunjukkan tren penurunan harga saham terbentuk.
Strategi ini adalah dengan menggunakan prinsip ini, melakukan lebih banyak pada saat garpu emas, melakukan kosong pada saat garpu mati, untuk mencapai pelacakan tren. Pada saat yang sama, strategi ini juga memperkenalkan indikator ATR untuk menghitung stop loss stop loss, untuk menyelesaikan pembangunan sistem perdagangan.
Secara khusus, strategi pertama kali menghitung indikator MACD standar seperti rata-rata bergerak cepat, rata-rata bergerak lambat, MACD, dan garis sinyal. Kemudian berdasarkan lima sinyal yang dipilih (sinyal lanjutan, sinyal reversal, sinyal pilar, MACD crossover, dan sinyal crossover) untuk menentukan crossover emas. Akhirnya, dalam kombinasi dengan indikator ATR untuk mengatur stop loss, menyelesaikan masuk dan keluar logika.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan indikator MACD untuk menilai arah tren dengan akurat dan dapat diandalkan, selama bertahun-tahun indikator MACD tampil menonjol dalam menilai tren.
Pengaturan stop loss yang dikombinasikan dengan indikator ATR dapat secara efektif mengontrol rasio risiko-pengembalian dari perdagangan tunggal, mengurangi probabilitas kerugian.
Ada lima pilihan sinyal yang dapat dipilih, yang dapat disesuaikan dengan pasar yang berbeda, untuk meningkatkan kemampuan adaptasi strategi.
Lebih banyak parameter yang dapat dimasukkan, dan hasil transaksi yang lebih baik dapat diperoleh dengan mengoptimalkan parameter.
Strategi ini juga memiliki beberapa risiko:
Indikator MACD mudah menghasilkan sinyal palsu yang dapat menyebabkan kerugian yang tidak perlu. Dapat dikombinasikan dengan indikator lain untuk memfilter sinyal.
Indikator ATR hanya memodelkan fluktuasi dalam beberapa waktu terakhir, tidak dapat melakukan stop loss yang akurat untuk situasi ekstrem.
Efek dari sinyal yang dipilih mungkin tidak stabil, perlu banyak pengujian ulang untuk menentukan parameter optimal.
Parameter sinyal dan parameter manajemen risiko perlu dioptimalkan secara bersamaan, jika tidak, akan sulit untuk mencapai hasil yang optimal. Disarankan untuk menggunakan metode optimasi bertahap.
Strategi ini juga dapat dioptimalkan dengan:
Cobalah untuk mencari moving averages lain seperti TMA, HullMA, dan lain-lain, filter MACD.
“Saya tidak tahu apa-apa tentang itu, tapi saya pikir itu adalah salah satu cara yang paling efektif untuk mengatasinya.
Mengoptimalkan kombinasi parameter tradisional dari MACD, dan menemukan parameter yang lebih baik.
Menggunakan metode pembelajaran mesin untuk mencari ATR optimal untuk manajemen risiko yang lebih baik.
Untuk menentukan sinyal yang optimal, lima jenis sinyal diuji ulang.
Melatih jaringan saraf untuk menilai jenis sinyal dan mencari sinyal baru berdasarkan MACD.
Strategi pelacakan tren MACD menggunakan indikator MACD untuk menentukan arah tren, stop loss dengan indikator ATR, dan peluang perdagangan tren yang efektif. Strategi ini memiliki beberapa keuntungan seperti parameter indikator yang dapat dioptimalkan, mekanisme stop loss yang lengkap, dan jenis sinyal yang dapat dipilih. Langkah selanjutnya adalah meningkatkan kualitas sinyal, memperbaiki mekanisme stop loss, dan mengoptimalkan pilihan parameter, untuk mendapatkan hasil pengukuran dan real-time yang lebih baik.
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 1h
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/
// © vuagnouxb
//@version=4
strategy("BV's MACD SIGNAL TESTER", overlay=true)
//------------------------------------------------------------------------
//---------- Confirmation Calculation ------------ INPUT
//------------------------------------------------------------------------
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
// plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
// plot(macd, title="MACD", color=col_macd, transp=0)
// plot(signal, title="Signal", color=col_signal, transp=0)
// -- Trade entry signals
signalChoice = input(title = "Choose your signal", defval = "Continuation", options = ["Continuation", "Reversal", "Histogram", "MACD Line ZC", "Signal Line ZC"])
continuationSignalLong = signalChoice == "Continuation" ? crossover(macd, signal) and macd > 0 :
signalChoice == "Reversal" ? crossover(macd, signal) and macd < 0 :
signalChoice == "Histogram" ? crossover(hist, 0) :
signalChoice == "MACD Line ZC" ? crossover(macd, 0) :
signalChoice == "Signal Line ZC" ? crossover(signal, 0) :
false
continuationSignalShort = signalChoice == "Continuation" ? crossunder(macd, signal) and macd < 0 :
signalChoice == "Reversal" ? crossover(signal, macd) and macd > 0 :
signalChoice == "Histogram" ? crossunder(hist, 0) :
signalChoice == "MACD Line ZC" ? crossunder(macd, 0) :
signalChoice == "Signal Line ZC" ? crossunder(signal, 0) :
false
longCondition = continuationSignalLong
shortCondition = continuationSignalShort
//------------------------------------------------------------------------
//---------- ATR MONEY MANAGEMENT ------------
//------------------------------------------------------------------------
SLmultiplier = 1.5
TPmultiplier = 1
JPYPair = input(type = input.bool, title = "JPY Pair ?", defval = false)
pipAdjuster = JPYPair ? 1000 : 100000
ATR = atr(14) * pipAdjuster // 1000 for jpy pairs : 100000
SL = ATR * SLmultiplier
TP = ATR * TPmultiplier
//------------------------------------------------------------------------
//---------- TIME FILTER ------------
//------------------------------------------------------------------------
YearOfTesting = input(title = "How many years of testing ?" , type = input.integer, defval = 3)
_time = 2020 - YearOfTesting
timeFilter = (year > _time)
//------------------------------------------------------------------------
//--------- ENTRY FUNCTIONS ----------- INPUT
//------------------------------------------------------------------------
if (longCondition and timeFilter)
strategy.entry("Long", strategy.long)
if (shortCondition and timeFilter)
strategy.entry("Short", strategy.short)
//------------------------------------------------------------------------
//--------- EXIT FUNCTIONS -----------
//------------------------------------------------------------------------
strategy.exit("ATR", from_entry = "Long", profit = TP, loss = SL)
strategy.exit("ATR", from_entry = "Short", profit = TP, loss = SL)