Sumber dimuat naik... memuat...

EMA dan Bollinger Bands Breakout Strategy

Penulis:ChaoZhang, Tarikh: 2024-06-03 16:23:06
Tag:EMABB

img

Ringkasan

Strategi ini menggunakan purata bergerak eksponen 5 hari (EMA) dan Bollinger Bands (BB) untuk mengenal pasti peluang dagangan yang berpotensi di pasaran. Apabila harga pecah di atas Bollinger Band atas atau di bawah Bollinger Band bawah, dan syarat-syarat tertentu dipenuhi, strategi menghasilkan isyarat beli atau jual. Strategi ini bertujuan untuk menangkap pergerakan harga yang signifikan di pasaran sambil menggunakan stop loss dan tahap harga sasaran untuk menguruskan risiko dan memaksimumkan pulangan.

Prinsip Strategi

Inti strategi ini adalah menggunakan EMA 5 hari dan Bollinger Bands untuk menentukan trend dan turun naik pasaran. Apabila harga memecahkan di atas Bollinger Band atas, dan lilin yang sebelumnya tinggi di atas EMA 5 hari, strategi menghasilkan isyarat jual. Sebaliknya, apabila harga memecahkan di bawah Bollinger Band bawah, dan lilin yang sebelumnya rendah di bawah EMA 5 hari, strategi menghasilkan isyarat beli. Pendekatan ini membantu mengenal pasti potensi pembalikan trend atau titik pecah.

Apabila perdagangan dimasukkan, strategi menetapkan tahap stop loss dan tahap harga sasaran. Stop loss diletakkan dalam arah yang bertentangan dengan harga kemasukan untuk mengehadkan potensi kerugian. Tahap harga sasaran dikira berdasarkan bilangan mata tetap (contohnya, 1000 mata) untuk mengunci keuntungan yang dijangkakan. Jika harga mencapai tahap stop loss atau tahap harga sasaran, strategi menutup perdagangan dan keluar dari kedudukan.

Kelebihan Strategi

  1. Dengan menggunakan kedua-dua EMA dan Bollinger Bands, strategi ini menyediakan penilaian yang lebih komprehensif mengenai trend pasaran dan turun naik.
  2. Syarat kemasukan yang jelas membantu mengenal pasti peluang perdagangan yang berkemungkinan tinggi.
  3. Menetapkan tahap stop loss dan harga sasaran secara berkesan menguruskan risiko dan kunci dalam keuntungan.
  4. Logik strategi adalah mudah dan mudah difahami dan dilaksanakan.

Risiko Strategi

  1. Semasa tempoh peningkatan turun naik pasaran, Bollinger Bands boleh menghasilkan isyarat perdagangan yang kerap, yang membawa kepada perdagangan berlebihan dan peningkatan kos transaksi.
  2. Dalam pasaran yang bergolak atau tidak trend, strategi boleh menghasilkan isyarat palsu, mengakibatkan kerugian.
  3. Stop loss tetap dan tahap harga sasaran mungkin tidak menyesuaikan diri dengan baik dengan keadaan pasaran yang berbeza, mengehadkan fleksibiliti strategi.

Arahan Pengoptimuman Strategi

  1. Pertimbangkan untuk menggunakan paras stop loss adaptif dan paras harga sasaran yang menyesuaikan secara dinamik berdasarkan turun naik pasaran dan kekuatan trend untuk meningkatkan kebolehsesuaian strategi.
  2. Memperkenalkan penunjuk teknikal tambahan atau mekanisme penapisan isyarat, seperti Indeks Kekuatan Relatif (RSI) atau Julat Benar Purata (ATR), untuk mengesahkan trend dan mengurangkan isyarat palsu.
  3. Mengoptimumkan parameter, seperti penyesuaian tempoh EMA, Bollinger Bands pengganda penyimpangan standard, dll, untuk menyesuaikan dengan ciri pasaran dan instrumen perdagangan yang berbeza.

Ringkasan

EMA dan Bollinger Bands Breakout Strategy memanfaatkan dua penunjuk teknikal yang biasa digunakan untuk menangkap pergerakan harga yang signifikan di pasaran. Strategi ini mempunyai syarat kemasukan yang jelas, langkah pengurusan risiko, dan sasaran keuntungan, menjadikannya mudah difahami dan dilaksanakan. Walau bagaimanapun, prestasi strategi boleh dipengaruhi oleh turun naik pasaran dan keadaan tanpa trend. Dengan memperkenalkan parameter adaptif, mekanisme penapisan isyarat, dan pengoptimuman parameter, kekuatan dan keuntungan strategi dapat ditingkatkan lagi.


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

//@version=5
strategy("Nifty Bank Strategy", overlay=true)

// Parameters
lengthEMA = 5
lengthBB = 20
multBB = 1.5
targetPoints = 1000

// Calculate 5-day EMA
ema5 = ta.ema(close, lengthEMA)

// Calculate Bollinger Bands (length 20, multiplier 1.5)
basis = ta.sma(close, lengthBB)
dev = multBB * ta.stdev(close, lengthBB)
upperBB = basis + dev
lowerBB = basis - dev

// Define strategy variables
var float entryPrice = na
var float stopLoss = na
var float targetPrice = na
var bool inTrade = false
var bool isLong = false
var float triggerHigh = na
var float triggerLow = na
var float triggerClose = na

if not inTrade
    // Short Entry Trigger Condition
    if low > ema5 and low > upperBB and high > upperBB
        triggerLow := low
        triggerHigh := high
        triggerClose := close
        label.new(bar_index, high, "Waiting for short trigger", color=color.yellow)
    // Long Entry Trigger Condition
    else if high < ema5 and high < lowerBB and low < lowerBB
        triggerHigh := high
        triggerLow := low
        triggerClose := close
        label.new(bar_index, low, "Waiting for long trigger", color=color.yellow)

// Check for Short Entry
if not inTrade and na(triggerClose) == false and close < triggerClose
    if low < triggerLow
        entryPrice := close
        stopLoss := triggerHigh
        targetPrice := entryPrice - targetPoints
        strategy.entry("Short", strategy.short)
        label.new(bar_index, high, "Short", color=color.red, style=label.style_label_down)
        inTrade := true
        isLong := false
        triggerLow := na
        triggerHigh := na
        triggerClose := na

// Check for Long Entry
if not inTrade and na(triggerClose) == false and close > triggerClose
    if high > triggerHigh
        entryPrice := close
        stopLoss := triggerLow
        targetPrice := entryPrice + targetPoints
        strategy.entry("Long", strategy.long)
        label.new(bar_index, low, "Long", color=color.green, style=label.style_label_up)
        inTrade := true
        isLong := true
        triggerLow := na
        triggerHigh := na
        triggerClose := na

// Manage Short Trade
if inTrade and not isLong
    if high >= stopLoss
        strategy.close("Short", comment="SL Hit")
        label.new(bar_index, high, "SL Hit", color=color.red, style=label.style_label_down)
        inTrade := false
    else if low <= targetPrice
        strategy.close("Short", comment="Target Hit")
        label.new(bar_index, low, "Target Hit", color=color.green, style=label.style_label_up)
        inTrade := false

// Manage Long Trade
if inTrade and isLong
    if low <= stopLoss
        strategy.close("Long", comment="SL Hit")
        label.new(bar_index, low, "SL Hit", color=color.red, style=label.style_label_down)
        inTrade := false
    else if high >= targetPrice
        strategy.close("Long", comment="Target Hit")
        label.new(bar_index, high, "Target Hit", color=color.green, style=label.style_label_up)
        inTrade := false

// Plotting
plot(ema5, color=color.orange, title="5-day EMA")
plot(upperBB, color=color.red, title="Upper Bollinger Band")
plot(lowerBB, color=color.purple, title="Lower Bollinger Band")

// Plot trade entry and exit points
plotshape(series=inTrade and isLong ? entryPrice : na, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=inTrade and not isLong ? entryPrice : na, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")


Berkaitan

Lebih lanjut