
Strategi ini adalah berdasarkan MACD dan garisan panjang dan garisan aman, yang membolehkan pasangan mata wang untuk berdagang garisan panjang. Apabila garisan MACD melintasi garisan panjang, ia dibuka, dan apabila garisan MACD melintasi garisan rata, ia ditutup.
Strategi ini menggunakan garis cepat dan lambat dalam indikator MACD. Parameter garis cepat adalah 12 hari EMA dan parameter garis lambat adalah 26 hari EMA. Perbezaan antara dua garis rata adalah MACD Column Graph. Di samping itu, 9 hari EMA dikira sebagai garis isyarat.
Khususnya, strategi pertama mengira garis cepat, garis lambat dan garis isyarat MACD. Kemudian menetapkan garis panjang sebagai -0.04, garis simpanan sebagai 0.015. Jika carta MACD semasa lebih besar daripada garis panjang, lakukan lebih banyak; Jika carta MACD semasa lebih kecil daripada garis simpanan, lakukan lebih banyak.
Strategi ini mempunyai kelebihan berikut:
Strategi ini juga mempunyai risiko:
Ia boleh dioptimumkan dan diperbaiki dengan cara seperti menyesuaikan parameter yang sesuai dan menggabungkan indikator lain.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Anda boleh mencuba pelbagai panjang talian cepat, lambat, dan isyarat untuk mencari kombinasi yang lebih sesuai.
Indeks seperti RSI, KD dan sebagainya boleh memberi kesan yang berbeza.
Dengan mengkaji semula data, anda boleh mencari parameter yang lebih sesuai untuk kedudukan terhad.
Anda boleh mempertimbangkan kaedah seperti trailing stop untuk membuat trailing stop lebih dinamik.
Menerapkan strategi ini kepada pasangan mata wang lain untuk melihat kesannya
Strategi ini overall adalah strategi perdagangan garis panjang yang sangat mudah dan intuitif. Menggunakan indikator MACD untuk menilai keadaan, dan menetapkan syarat penapisan berganda untuk mengurangkan perdagangan yang salah. Di samping itu, stop loss untuk mengawal risiko. Strategi ini logiknya jelas, memakan sumber yang rendah, mudah difahami dan dilaksanakan, dan disyorkan.
/*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)