
Strategi ini didasarkan pada indikator MACD dan garis posisi panjang dan damai, yang memungkinkan perdagangan garis panjang pasangan mata uang. Dibuka posisi saat MACD melintasi garis panjang dan ditutup ketika MACD melintasi garis lurus.
Strategi ini menggunakan garis cepat dan lambat dari indikator MACD. Parameter garis cepat adalah 12 hari EMA dan parameter garis lambat adalah 26 hari EMA. Perbedaan antara dua garis rata adalah MACD pilar. Juga menghitung 9 hari EMA sebagai sinyal.
Secara khusus, strategi pertama menghitung garis cepat, lambat, dan sinyal MACD. Kemudian, atur garis panjang menjadi -0.04 dan garis posisi kosong menjadi 0.015. Jika MACD saat ini lebih besar dari garis panjang, lakukan overtrading; Jika MACD saat ini lebih kecil dari garis kosong, lakukan overtrading. Selain itu, atur garis stop loss menjadi 95% dari harga bukaan posisi.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Hal ini dapat dioptimalkan dan ditingkatkan dengan cara seperti penyesuaian parameter yang sesuai, kombinasi indikator lainnya.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Anda dapat mencoba berbagai panjang kabel cepat, lambat, dan sinyal untuk menemukan kombinasi yang lebih cocok.
Indikator seperti RSI, KD, dan lain-lain dapat memberikan efek yang sangat berbeda.
Dengan mengulang-ulang data, Anda dapat mencari parameter yang lebih cocok untuk posisi long-term.
Anda dapat mempertimbangkan cara-cara seperti trailing stop untuk membuat stop loss lebih dinamis.
Menerapkan strategi untuk pasangan mata uang lain, dan melihat efeknya
Strategi ini overall adalah strategi perdagangan garis panjang yang sangat sederhana dan intuitif. Menggunakan indikator MACD untuk menilai situasi, dan mengatur kondisi penyaringan ganda untuk mengurangi perdagangan yang salah.
/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(shorttitle = "GBPJPY MACD", title = "GBPJPY MACD")
fastMA = input(title="Fast moving average", defval = 12, minval = 7)
slowMA = input(title="Slow moving average", defval = 26, minval = 7)
lastColor = yellow
[currMacd,_,_] = macd(close[0], fastMA, slowMA, 9)
[prevMacd,_,_] = macd(close[1], fastMA, slowMA, 9)
plotColor = currMacd > 0 ? currMacd > prevMacd ? lime : green : currMacd < prevMacd ? maroon : red
plot(currMacd, style = histogram, color = plotColor, linewidth = 3)
plot(0, title = "Zero line", linewidth = 1, color = gray)
//MACD
// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input(title="Signal Smoothing", minval = 1, maxval = 50, defval =9)
sma_source = input(title="Simple MA(Oscillator)", type=bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=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=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)
///END OF MACD
//Long and Close Long Lines
linebuy = input(title="Enter Long", type=float, defval=-0.04)
linesell = input(title="Close Long", type=float, defval=0.015)
//Plot Long and Close Long Lines
plot(linebuy,color=green),plot(linesell,color=red)
//Stop Loss Input
sl_inp = input(0.05, title='Stop Loss %', type=float)/100
//Order Conditions
longCond = crossover(currMacd, linebuy)
exitLong = crossover(currMacd, linesell)
stop_level = strategy.position_avg_price * (1 - sl_inp)
//Order Entries
strategy.entry("long", strategy.long, when=longCond==true)
strategy.close("long", when=exitLong==true)
strategy.exit("Stop Loss", stop=stop_level)