Strategi jangka panjang berdasarkan MACD


Tarikh penciptaan: 2024-01-12 11:02:06 Akhirnya diubah suai: 2024-01-12 11:02:06
Salin: 0 Bilangan klik: 639
1
fokus pada
1617
Pengikut

Strategi jangka panjang berdasarkan MACD

Gambaran keseluruhan

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.

Prinsip Strategi

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.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan penunjuk MACD untuk menilai trend pasaran, tahap ketepatan yang lebih tinggi
  2. Pada masa yang sama, menggunakan penapis dua kali untuk mengelakkan isyarat yang salah
  3. Tetapkan strategi hentikan kerugian dan mengawal risiko dengan berkesan
  4. Mudah, logik, mudah difahami dan dilaksanakan
  5. Hanya diperlukan dan MACD, penggunaan sumber yang rendah

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Indeks MACD mempunyai kemerosotan dan mungkin terlepas peluang untuk garis pendek
  2. Tetapan Stop Loss mungkin terlalu konservatif dan tidak dapat mengikuti trend garis panjang secara berterusan
  3. Tetapan parameter memerlukan pengoptimuman ujian berulang, jika tidak, ia mungkin tidak sesuai
  4. Hanya berlaku untuk mata wang lain yang tidak pasti

Ia boleh dioptimumkan dan diperbaiki dengan cara seperti menyesuaikan parameter yang sesuai dan menggabungkan indikator lain.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji kombinasi parameter MACD yang berbeza untuk mencari parameter yang lebih baik

Anda boleh mencuba pelbagai panjang talian cepat, lambat, dan isyarat untuk mencari kombinasi yang lebih sesuai.

  1. Penukaran penunjuk lain

Indeks seperti RSI, KD dan sebagainya boleh memberi kesan yang berbeza.

  1. Mengoptimumkan parameter garisan panjang dan garisan terhad

Dengan mengkaji semula data, anda boleh mencari parameter yang lebih sesuai untuk kedudukan terhad.

  1. Menyesuaikan strategi hentikan kerugian

Anda boleh mempertimbangkan kaedah seperti trailing stop untuk membuat trailing stop lebih dinamik.

  1. Ujian pasangan mata wang

Menerapkan strategi ini kepada pasangan mata wang lain untuk melihat kesannya

ringkaskan

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.

Kod sumber strategi
/*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)