Penulis:ChaoZhang, Tanggal: 2024-01-25 12:54:16
Tag:

img

Gambaran umum

Strategi ini adalah strategi komposit berdasarkan perbedaan EMA dan indikator MACD untuk perdagangan BTC jangka pendek. Ini menggabungkan sinyal dari EMA dan MACD untuk menghasilkan sinyal beli dan jual dalam kondisi tertentu.

Logika Strategi

Ini menghasilkan sinyal beli ketika selisih negatif dan di bawah ambang batas dan MACD memiliki crossover bearish.

Dengan menggabungkan sinyal dari perbedaan EMA dan MACD, beberapa sinyal palsu dapat disaring dan keandalan sinyal ditingkatkan.

Analisis Keuntungan

  1. Menggunakan indikator komposit, sinyal yang lebih andal
  2. Mengadopsi parameter jangka pendek, cocok untuk perdagangan jangka pendek
  3. Memiliki pengaturan stop loss dan take profit untuk mengendalikan risiko

Analisis Risiko

  1. Stop loss dapat dipecahkan selama perubahan pasar yang besar
  2. Parameter perlu dioptimalkan untuk lingkungan pasar yang berbeda
  3. Efek harus diuji pada koin dan bursa yang berbeda

Arahan Optimasi

  1. Mengoptimalkan parameter EMA dan MACD agar sesuai dengan volatilitas BTC
  2. Tambahkan ukuran posisi dan strategi piramida untuk meningkatkan efisiensi modal
  3. Tambahkan metode stop loss seperti trailing stop loss untuk mengurangi risiko
  4. Efek pengujian pada bursa dan koin yang berbeda

Kesimpulan

Strategi ini mengintegrasikan kekuatan dari indikator EMA dan MACD dan menggunakan sinyal komposit untuk secara efektif menyaring sinyal palsu. Dengan parameter yang dioptimalkan dan strategi posisi, pengembalian yang stabil dapat dicapai.


/*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)


Lebih banyak