Strategi dagangan BTC berdasarkan purata bergerak EMA dan penunjuk MACD


Tarikh penciptaan: 2024-01-25 12:54:16 Akhirnya diubah suai: 2024-01-25 12:54:16
Salin: 0 Bilangan klik: 593
1
fokus pada
1617
Pengikut

Strategi dagangan BTC berdasarkan purata bergerak EMA dan penunjuk MACD

Gambaran keseluruhan

Strategi ini adalah strategi gabungan berdasarkan perbezaan EMA dan MACD untuk perdagangan garis pendek BTC. Ia menggabungkan isyarat EMA dan MACD untuk menghasilkan isyarat beli dan jual dalam keadaan tertentu.

Prinsip Strategi

Apabila nilai selisih adalah negatif, dan lebih kecil daripada paras paras paras, dan MACD muncul dengan silang kepala kosong, menghasilkan isyarat beli. Apabila nilai selisih adalah positif, dan lebih besar daripada paras paras, dan MACD muncul dengan silang kepala banyak, menghasilkan isyarat jual.

Dengan menggabungkan isyarat yang menggunakan perbezaan rata-rata EMA dan penunjuk MACD, beberapa isyarat palsu dapat disaring dan meningkatkan kebolehpercayaan isyarat.

Analisis kelebihan

  1. Penggunaan indikator komposit, isyarat lebih dipercayai
  2. Tetapan dengan parameter kitaran pendek, sesuai untuk perdagangan garis pendek
  3. Pengaturan Stop Loss dan Stop Stop untuk mengawal risiko

Analisis risiko

  1. Stop loss boleh ditembusi apabila pasaran berubah-ubah
  2. Parameter yang perlu dioptimumkan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Perlu menguji keberkesanan pelbagai mata wang dan pertukaran

Arah pengoptimuman

  1. Mengoptimumkan parameter EMA dan MACD agar lebih sesuai dengan persekitaran turun naik BTC
  2. Peningkatan kedudukan terbuka dan strategi penurunan, pengoptimuman kecekapan penggunaan dana
  3. Meningkatkan cara-cara untuk menghentikan kerugian, seperti menghentikan kerugian bergerak, menghentikan kerugian bergoyang, dan sebagainya, untuk mengurangkan risiko.
  4. Uji kebolehan pertukaran dan mata wang yang berbeza

ringkaskan

Strategi ini mengintegrasikan kelebihan kedua-dua indikator garis rata dan MACD, menggunakan isyarat komposit, yang dapat menyaring isyarat palsu dengan berkesan. Dengan parameter pengoptimuman dan strategi pembukaan kedudukan, keuntungan yang stabil dapat diperoleh. Tetapi juga perlu waspada terhadap risiko kerugian berhenti yang akan ditembusi, yang memerlukan ujian dan penyempurnaan lebih lanjut.

Kod sumber strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA50Diff & MACD Strategy", overlay=false)
EMA = input(18, step=1)
MACDfast = input(12)
MACDslow = input(26)
EMADiffThreshold = input(8)
MACDThreshold = input(80)
TargetValidityThreshold = input(65, step=5)
Target = input(120, step=5)
StopLoss = input(650, step=5) 
ema = ema(close, EMA)
hl = plot(0, color=white, linewidth=1)
diff = close - ema
clr = color(blue, transp=100)
if diff>0
    clr := lime
else 
    if diff<0
        clr := red

fastMA = ema(close, MACDfast)
slowMA = ema(close, MACDslow)
macd = (fastMA - slowMA)*3
signal = sma(macd, 9)
plot(macd, color=aqua, linewidth=2)
plot(signal, color=purple, linewidth=2)

macdlong = macd<-MACDThreshold and signal<-MACDThreshold and crossover(macd, signal)
macdshort = macd>MACDThreshold and signal>MACDThreshold and crossunder(macd, signal)
position = 0.0
position := nz(strategy.position_size, 0.0)
long = (position < 0 and close < strategy.position_avg_price - TargetValidityThreshold and macdlong) or 
     (position == 0.0 and diff < -EMADiffThreshold and diff > diff[1] and diff[1] < diff[2] and macdlong)

short = (position > 0 and close > strategy.position_avg_price + TargetValidityThreshold and macdshort) or 
      (position == 0.0 and diff > EMADiffThreshold and diff < diff[1] and diff[1] > diff[2] and macdshort)
amount = (strategy.equity / close) //- ((strategy.equity / close / 10)%10)
bgclr = color(blue, transp=100) //#0c0c0c
if long
    strategy.entry("long", strategy.long, amount)
    bgclr := green
if short
    strategy.entry("short", strategy.short, amount)
    bgclr := maroon
bgcolor(bgclr, transp=20)
strategy.close("long", when=close>strategy.position_avg_price + Target)
strategy.close("short", when=close<strategy.position_avg_price - Target)
strategy.exit("STOPLOSS", "long", stop=strategy.position_avg_price - StopLoss)
strategy.exit("STOPLOSS", "short", stop=strategy.position_avg_price + StopLoss)
//plotshape(long, style=shape.labelup, location=location.bottom, color=green)
//plotshape(short, style=shape.labeldown, location=location.top, color=red)
pl = plot(diff, style=histogram, color=clr)
fill(hl, pl, color=clr)