Strategi perdagangan berdasarkan penunjuk ADX dan MACD


Tarikh penciptaan: 2023-12-13 15:45:24 Akhirnya diubah suai: 2023-12-13 15:45:24
Salin: 3 Bilangan klik: 1244
1
fokus pada
1621
Pengikut

Strategi perdagangan berdasarkan penunjuk ADX dan MACD

Gambaran keseluruhan

Strategi ini, yang dinamakan strategi pengesanan trend berdasarkan indikator ADX dan MACD, menggunakan indikator trend rata-rata ((ADX) untuk menentukan arah dan kekuatan trend, dan digabungkan dengan isyarat polygon dari indikator pergerakan rata-rata berpusat ((MACD) untuk melakukan perdagangan pengesanan trend. Strategi ini akan mewujudkan kedudukan polygon atau kosong apabila ADX menunjukkan terdapat trend yang kuat dan MACD mengeluarkan isyarat perdagangan.

Prinsip Strategi

Strategi ini menilai arah dan kekuatan trend pasaran dengan mengira ADX dan + DI, -DI kurva. Apabila + DI kurva melintasi -DI kurva, ia adalah pasaran multihead, dan apabila -DI kurva melintasi + DI kurva, ia adalah pasaran kosong. Tidak cukup, apabila nilai ADX lebih besar daripada 20, menunjukkan bahawa trend cukup kuat, dan kemudian menggabungkan MACD indikator perbezaan nilai ((macdline) dan nilai isyarat ((signalline) isyarat garpu mati emas, membeli dan menjual barangan tersebut, untuk mencapai trend mengikuti perdagangan.

Secara khusus, logik isyarat dagangan strategi ini ialah:

Isyarat berbilang kepala: apabila +DI> -DI dan garis perbezaan MACD melintasi garis isyarat dari bawah ke atas isyarat kosong: apabila -DI> +DI dan MACD garis perbezaan dari atas ke bawah melalui garis isyarat

Menurut logik ini, strategi ini dapat menangkap peluang masuk yang lebih baik dalam trend yang kuat.

Kelebihan Strategik

Kelebihan strategi ini adalah bahawa ia mengambil kira kedua-dua faktor penghakiman trend dan pemilihan masa masuk, yang membolehkan peniaga mencari tempat masuk yang lebih baik apabila terdapat arah yang kuat di pasaran, yang meningkatkan kestabilan dan keuntungan sistem.

Selain itu, strategi ini juga memperkenalkan logik stop-loss. Apabila kerugian kedudukan melebihi harga stop-loss yang ditentukan oleh pengguna, strategi ini akan secara aktif menghentikan kerugian, dan secara berkesan mengawal kerugian perdagangan individu. Ini juga merupakan ciri utama strategi ini.

Risiko Strategik

Walaupun ada kelebihan, strategi ini mempunyai risiko yang perlu diperhatikan:

  1. isyarat dagangan yang terdiri daripada ADX dan MACD, yang dalam keadaan pasaran tertentu mungkin tidak sah atau menghasilkan isyarat yang salah, yang menyebabkan kerugian yang tidak perlu;

  2. Harga berhenti kerugian yang ditentukan oleh pengguna mungkin akan ditembusi, menyebabkan kerugian yang lebih besar daripada yang dijangkakan;

  3. Dalam pasaran terbalik, strategi mungkin menghasilkan terlalu banyak transaksi yang tidak sah dan mengorbankan kos transaksi.

Untuk mengurangkan risiko ini, disarankan untuk mengoptimumkan parameter ADX dan MACD, dan menerapkan strategi pengurusan wang yang ketat, sambil menyesuaikan logik stop-loss untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Arah pengoptimuman strategi

Strategi ini mempunyai ruang untuk pengoptimuman:

  1. Lebih banyak petunjuk boleh diperkenalkan untuk menghasilkan isyarat dagangan yang lebih kuat, misalnya, sekatan dagangan yang digabungkan dengan petunjuk turun naik;

  2. Parameter ADX dan MACD boleh dioptimumkan secara automatik melalui kaedah pembelajaran mesin;

  3. Mekanisme penangguhan kerugian yang boleh disesuaikan boleh dibina untuk membolehkan harga penangguhan kerugian mengikuti pergerakan pasaran.

Dengan cara ini, ia dijangka akan meningkatkan lagi kestabilan dan tahap keuntungan strategi ini.

ringkaskan

Secara keseluruhannya, strategi pengesanan trend berdasarkan indikator ADX dan MACD, dengan kelebihan menilai arah trend, mencari masa masuk yang lebih baik, dan menetapkan logik stop loss, adalah sistem perdagangan yang patut dipertimbangkan. Dengan pengoptimuman parameter dan kawalan risiko, strategi ini dapat memperoleh pulangan pelaburan yang baik.

Kod sumber strategi
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TUE ADX/MACD Confluence V1.0", overlay=true)

showsignals = input(true, title="Show BUY/SELL Signals")
showcandlecolors = input(true, title="Show Candle Colors")
length = input(14, title="ADX Length")
smoothing = input(10, title="ADX Smoothing")
macdsource = input(close, title="MACD Source")
macdfast = input(12, title="MACD Fast Length")
macdslow = input(26, title="MACD Slow Length")
macdsignal = input(9, title="MACD Signal Length")
colorup = input(color.green, title="Up Candle Color")
colordown = input(color.red, title="Down Candle Color")

/////////////////////////////////////////////////////////////////////////////////////////////// ADX AND MACD CALC
[diplus, diminus, adx] = ta.dmi(length, smoothing)

[macdline, signalline, histline] = ta.macd(macdsource, macdfast, macdslow, macdsignal)

//////////////////////////////////////////////////////////////////////////////////////////////TRADE CALC

longcheck = diplus > diminus and macdline > signalline
shortcheck = diminus > diplus and signalline > macdline

int trade = 0

//Open from nothing

if trade == 0 and longcheck
    trade := 1

else if trade == 0 and shortcheck
    trade := -1
    
//Reversal

else if trade == 1 and shortcheck
    trade := -1
    
else if trade == -1 and longcheck
    trade := 1
    
//Keep status quo until crossover

else
    trade := trade[1]

//////////////////////////////////////////////////////////////////////////////////////////////PLOT 

colors = longcheck ? colorup : shortcheck ? colordown : color.white

plotcandle(open, high, low, close, color = showcandlecolors ? colors : na)

plotshape(trade[1] != 1 and trade == 1 and showsignals, style=shape.labelup, text='BUY', textcolor=color.white, color=color.green, size=size.small, location=location.belowbar)
plotshape(trade[1] != -1 and trade == -1 and showsignals, style=shape.labeldown, text='SELL', textcolor=color.white, color=color.red, size=size.small, location=location.abovebar)

///////////////////////////////////////////////////////////////////////////////////////////// ALERTS

// Add Stop Loss
stopLossPrice = input(100, title="Stop Loss Price")

if trade == 1
    strategy.entry("Long", strategy.long)

if trade == -1
    strategy.entry("Short", strategy.short)

if trade == 1 and close < close[1] - stopLossPrice
    strategy.close("LongExit")

if trade == -1 and close > close[1] + stopLossPrice
    strategy.close("ShortExit")