Strategi Scalping Intraday EMA

Penulis:ChaoZhang, Tarikh: 2024-01-24 15:43:31
Tag:

img

Ringkasan

Strategi ini mengira purata bergerak eksponensial 9 hari dan 15 hari (EMA) untuk mengenal pasti isyarat beli dan jual berdasarkan persilangan EMA dan arah lilin untuk perdagangan intraday. Ia menghasilkan isyarat beli apabila 9EMA melintasi di atas 15EMA dan lilin terakhir adalah bullish, dan isyarat jual apabila 9EMA melintasi di bawah 15EMA dan lilin terakhir adalah bearish. Strategi ini juga menggabungkan stop loss berasaskan ATR.

Logika Strategi

  1. Mengira EMA 9 hari dan EMA 15 hari
  2. Mengenal pasti arah candlestick terakhir (bullish atau bearish)
  3. Menghasilkan isyarat beli apabila 9EMA melintasi di atas 15EMA dan candlestick terakhir adalah bullish
  4. Menghasilkan isyarat jual apabila 9EMA melintasi di bawah 15EMA dan candlestick terakhir adalah menurun
  5. Mengira nilai ATR menggunakan penunjuk ATR untuk merangka stop loss semasa perdagangan

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Menggunakan gabungan EMA untuk menangkap trend jangka pendek dan sederhana
  2. Menyaring isyarat palsu menggunakan arah candlestick
  3. Menggunakan stop loss ATR dinamik untuk mengawal risiko
  4. Jangka masa pendek yang sesuai untuk scalping intraday
  5. Mudah dilaksanakan

Analisis Risiko

Risiko termasuk:

  1. EMA mempunyai kesan kelewatan, mungkin terlepas beberapa pergerakan harga
  2. EMA crossovers boleh menyebabkan whipsaws
  3. Kecenderungan untuk turun naik harga dalam perdagangan intraday
  4. Hentikan kerugian terlalu ketat cenderung untuk memukul, terlalu luas kesan keuntungan

Penyelesaian:

  1. Mengoptimumkan parameter EMA
  2. Tambah penapis lain seperti MACD
  3. Sesuaikan stop loss secara dinamik
  4. Mengoptimumkan strategi stop loss

Arahan pengoptimuman

Kawasan untuk pengoptimuman:

  1. Uji gabungan EMA yang berbeza untuk mencari tempoh optimum
  2. Tambah penunjuk lain, membina model pelbagai faktor
  3. Tambah penapis jangka masa, isyarat hanya dalam tempoh tertentu
  4. Menggabungkan indeks turun naik untuk menyesuaikan tahap stop loss
  5. Menggunakan pembelajaran mesin untuk mengoptimumkan parameter secara dinamik

Ringkasan

Ini adalah strategi scalping intraday yang mudah namun berkesan yang mengintegrasikan dua silang EMA dan penapisan candlestick dengan stop loss dinamik berasaskan ATR. Penambahbaikan lanjut dalam parameter dan kombinasi pelbagai faktor dapat meningkatkan kestabilan dan keuntungan.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Scalping Strategy", shorttitle="EMAScalp", overlay=true)

// Input parameters
ema9_length = input(9, title="9 EMA Length")
ema15_length = input(15, title="15 EMA Length")

// Calculate EMAs
ema9 = ta.ema(close, ema9_length)
ema15 = ta.ema(close, ema15_length)

// Plot EMAs on the chart
plot(ema9, color=color.blue, title="9 EMA")
plot(ema15, color=color.red, title="15 EMA")

// Identify Bullish and Bearish candles
bullish_candle = close > open
bearish_candle = close < open

// Bullish conditions for Buy Signal
buy_condition = ta.crossover(close, ema9) and ema15 < ema9 and bullish_candle

// Bearish conditions for Sell Signal
sell_condition = ta.crossunder(close, ema9) and ema15 > ema9 and bearish_candle

// Plot Buy and Sell signals
plotshape(series=buy_condition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sell_condition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Optional: Add stop-loss levels
atr_length = input(14, title="ATR Length for Stop Loss")
atr_multiplier = input(1.5, title="ATR Multiplier for Stop Loss")

atr_value = ta.atr(atr_length)
stop_loss_level = strategy.position_size > 0 ? close - atr_multiplier * atr_value : close + atr_multiplier * atr_value
plot(stop_loss_level, color=color.gray, title="Stop Loss Level", linewidth=2)

// Strategy rules
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Buy", from_entry="Buy", loss=stop_loss_level)

if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Sell", from_entry="Sell", loss=stop_loss_level)


Lebih lanjut