Strategi pelacakan tren lintas pasar berdasarkan stop loss dinamis dua arah rata-rata pergerakan EMA


Tanggal Pembuatan: 2024-01-29 09:57:20 Akhirnya memodifikasi: 2024-01-29 09:57:20
menyalin: 0 Jumlah klik: 587
1
fokus pada
1617
Pengikut

Strategi pelacakan tren lintas pasar berdasarkan stop loss dinamis dua arah rata-rata pergerakan EMA

Ringkasan

Strategi ini didasarkan pada EMA untuk melakukan pelacakan bidirectional dan menetapkan stop loss yang dinamis untuk menangkap tren.

Prinsip Strategi

  1. Hitung garis EMA cepat ((5 hari) dan garis EMA lambat ((20 hari)
  2. Ketika jalur cepat melewati jalur lambat dari arah bawah, lakukan lebih banyak; ketika jalur cepat melewati jalur lambat dari arah atas, buat ruang
  3. Setelah melakukan over, setel stop loss line dinamis sebagai harga masuk(1- Persentase Stop Loss Posisi Panjang); Setelah melakukan shorting, atur garis stop loss dinamis sebagai harga masuk(1 + persentase stop loss)
  4. Jika harga memicu stop loss, maka stop loss akan terjadi.

Analisis Keunggulan

  1. EMA memiliki kemampuan yang kuat untuk melacak tren, dua arah melintasi pembentukan timer, yang dapat secara efektif mengunci peluang tren
  2. Menghitung Stop Loss Line Secara Dinamis, Memperbarui Pasar Setelah Keuntungan Tercapai, Memaksimalkan Keuntungan Tren
  3. Penggunaan VWP sebagai kondisi penyaringan tambahan untuk menghindari kebocoran dan meningkatkan kualitas sinyal

Analisis risiko

  1. Strategi Trending, mudah dicurangi saat terjadi lonjakan
  2. Stop loss yang terlalu longgar dapat menyebabkan kerugian yang lebih besar.
  3. EMA rata-rata menghasilkan sinyal yang tertunda yang mungkin kehilangan titik terbaik di pasar

Metode ini dapat dioptimalkan dengan menggunakan ATR untuk pengendalian risiko, mengoptimalkan strategi stop loss jangka pendek, atau mengkombinasikan dengan indikator lain untuk memfilter noise trading.

Arah optimasi

  1. Kombinasi dengan indikator stop loss dinamis seperti ATR atau DONCH, untuk mengatur garis stop loss yang lebih sesuai dengan pasar
  2. Menambahkan sinyal filter indikator teknis lainnya, seperti MACD, KDJ, dan lain-lain, untuk mengurangi kesalahan input dan output
  3. Parameter pengoptimalan untuk mencari kombinasi panjang garis rata-rata yang optimal
  4. Anda dapat mencoba metode pembelajaran mesin untuk mencari parameter optimal.

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi pelacakan tren yang sangat khas. Dua EMA membentuk garpu emas, stop loss dinamis, dan dapat secara efektif mengunci keuntungan tren. Namun, ada juga risiko keterlambatan dan risiko stop loss yang terlalu luas.

Kode Sumber Strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("EMA Crossover Strategy", shorttitle="EMAC", overlay=true,calc_on_every_tick=true)

// Input parameters
shortEmaLength = input(5, title="Short EMA Length")
longEmaLength = input(20, title="Long EMA Length")
priceEmaLength = input(1, title="Price EMA Length")

// Set stop loss level with input options (optional)
longLossPerc = input.float(0.05, title="Long Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

shortLossPerc = input.float(0.05, title="Short Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01

// Calculating indicators
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
//priceEma = ta.ema(close, priceEmaLength)
vwap = ta.vwap(close)

// Long entry conditions
longCondition = ta.crossover(shortEma, longEma) and close > vwap
// Short entry conditions
shortCondition = ta.crossunder(shortEma, longEma) and close > vwap

// STEP 2:
// Determine stop loss price
longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)


if (longCondition)
    strategy.entry("Enter Long", strategy.long)
    strategy.exit("Exit Long",from_entry = "Enter Long",stop= longStopPrice)
plotshape(series=longCondition, title="Long Signal", color=color.green, style=shape.triangleup, location=location.belowbar)


if (shortCondition)
    strategy.entry("Enter Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Enter Short",stop = shortStopPrice)
plotshape(series=shortCondition, title="Short Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Stop loss levels
//longStopLoss = (1 - stopLossPercent) * close
//shortStopLoss = (1 + stopLossPercent) * close

// Exit conditions
//strategy.exit("Long", from_entry="Long", loss=longStopLoss)
//strategy.exit("Short", from_entry="Short", loss=shortStopLoss)

// Plotting indicators on the chart
plot(shortEma, color=color.yellow, title="Short EMA")
plot(longEma, color=color.green, title="Long EMA")
plot(close, color=color.black, title="Close")
plot(vwap, color=color.purple, title="VWAP")

// Plot stop loss values for confirmation
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_line,
     linewidth=2, title="Long Stop Loss")

plot(strategy.position_size < 0 ? shortStopPrice : na,
     color=color.blue, style=plot.style_line,
     linewidth=2, title="Short Stop Loss")
// Plotting stop loss lines
//plot(longStopLoss, color=color.red, title="Long Stop Loss", linewidth=2, style=plot.style_line)
//plot(shortStopLoss, color=color.aqua, title="Short Stop Loss", linewidth=2, style=plot.style_line)