EMA dan Bollinger Bands Breakout Strategy

EMA BB
Tarikh penciptaan: 2024-06-03 16:23:06 Akhirnya diubah suai: 2024-06-03 16:23:06
Salin: 2 Bilangan klik: 962
1
fokus pada
1617
Pengikut

EMA dan Bollinger Bands Breakout Strategy

Gambaran keseluruhan

Strategi ini menggunakan purata bergerak indeks 5 hari (EMA) dan Bollinger Band (BB) untuk mengenal pasti peluang perdagangan yang berpotensi di pasaran. Strategi ini menghasilkan isyarat beli atau jual apabila harga menembusi Bollinger Band dan berada di atas atau di bawah landasan dan memenuhi syarat-syarat tertentu. Strategi ini bertujuan untuk menangkap turun naik harga yang ketara di pasaran, sambil menggunakan stop loss dan harga sasaran untuk menguruskan risiko dan memaksimumkan keuntungan.

Prinsip Strategi

Strategi ini menggunakan 5 hari EMA dan Brin untuk menilai trend dan turun naik pasaran. Strategi ini menghasilkan isyarat jual apabila harga menembusi Brin dan berada di atas garis K yang lebih tinggi daripada 5 hari EMA. Sebaliknya, strategi ini menghasilkan isyarat beli apabila harga menembusi Brin dan berada di bawah garis K yang lebih rendah daripada 5 hari EMA.

Apabila memasuki perdagangan, strategi akan menetapkan titik berhenti dan harga sasaran. Titik berhenti terletak di arah yang bertentangan dengan harga masuk, untuk mengehadkan kerugian yang berpotensi. Harga sasaran dikira berdasarkan bilangan titik tetap (seperti 1000) untuk mengunci keuntungan yang dijangkakan.

Kelebihan Strategik

  1. Ia juga menggunakan EMA dan Brinband untuk menilai trend dan turun naik pasaran secara lebih menyeluruh.
  2. Syarat kemasukan yang jelas membantu mengenal pasti peluang perdagangan yang berkemungkinan tinggi.
  3. Tetapkan harga hentian dan sasaran untuk menguruskan risiko dan mengunci keuntungan.
  4. Logik strategi jelas, mudah difahami dan dilaksanakan.

Risiko Strategik

  1. Apabila pasaran menjadi lebih tidak menentu, Brin Belt mungkin menghasilkan isyarat dagangan yang kerap, yang menyebabkan terlalu banyak dagangan dan peningkatan yuran.
  2. Strategi ini boleh menghasilkan isyarat yang salah dan menyebabkan kerugian apabila pasaran bergolak atau trend tidak jelas.
  3. Hentian dan harga sasaran yang tetap mungkin tidak dapat disesuaikan dengan keadaan pasaran yang berbeza, mengehadkan fleksibiliti strategi.

Arah pengoptimuman strategi

  1. Pertimbangkan untuk menggunakan berhenti dan harga sasaran yang menyesuaikan diri, menyesuaikan diri secara dinamik mengikut turun naik pasaran dan kekuatan trend untuk meningkatkan daya serap strategi.
  2. Memperkenalkan petunjuk teknikal lain atau mekanisme penapisan isyarat, seperti indeks kekuatan relatif ((RSI) atau purata gelombang sebenar ((ATR), untuk mengesahkan trend dan mengurangkan isyarat palsu.
  3. Pengoptimuman parameter, seperti menyesuaikan kitaran EMA, ganda standard perbezaan Brinbelt, dan lain-lain, untuk menyesuaikan diri dengan ciri-ciri pasaran yang berbeza dan jenis perdagangan.

ringkaskan

EMA menggunakan dua petunjuk teknikal yang biasa digunakan untuk menangkap turun naik harga yang ketara di pasaran dengan strategi Brin Belt Breakthrough. Strategi ini mempunyai syarat kemasukan yang jelas, langkah-langkah pengurusan risiko dan sasaran keuntungan yang mudah difahami dan dilaksanakan. Walau bagaimanapun, prestasi strategi mungkin dipengaruhi oleh turun naik pasaran dan trend yang tidak jelas.

Kod sumber strategi
/*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")