Strategi dagangan momentum berdasarkan penembusan julat harga intrahari digabungkan dengan pengoptimuman penunjuk EMA

EMA SL RR SAST EMAs
Tarikh penciptaan: 2025-02-21 13:20:45 Akhirnya diubah suai: 2025-02-21 13:20:45
Salin: 1 Bilangan klik: 351
2
fokus pada
319
Pengikut

Strategi dagangan momentum berdasarkan penembusan julat harga intrahari digabungkan dengan pengoptimuman penunjuk EMA Strategi dagangan momentum berdasarkan penembusan julat harga intrahari digabungkan dengan pengoptimuman penunjuk EMA

Gambaran keseluruhan

Strategi ini adalah strategi perdagangan dalam hari yang menggabungkan penembusan harga pada hari sebelumnya dan rata-rata bergerak indeks (EMA). Strategi ini berdagang dengan mengenal pasti masa tertinggi atau terendah pada hari perdagangan sebelum harga memecahkannya, digabungkan dengan isyarat pengesahan EMA cepat dan lambat. Strategi ini memberi tumpuan kepada menangkap pergerakan harga jangka pendek, untuk menguruskan risiko dengan menetapkan bilangan stop loss tetap dan nisbah keuntungan risiko.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Menggunakan fungsi request.security untuk mendapatkan paras tertinggi dan terendah pada hari perdagangan sebelumnya sebagai julat harga utama.
  2. Hitung purata bergerak indeks 9 kitaran dan 21 kitaran (EMAs) sebagai penanda trend.
  3. Apabila harga berada di atas EMA perlahan dan EMA pantas berada di atas EMA pantas sehari sebelum harga menembusi paras tertinggi, ia akan mencetuskan isyarat lebih banyak.
  4. Apabila harga berada di bawah EMA perlahan dan EMA pantas berada di bawah EMA perlahan, isyarat shorting akan dicetuskan sehari sebelum harga menembusi paras rendah.
  5. Menguruskan risiko setiap dagangan dengan menetapkan titik-titik stop loss tetap (< 30) dan nisbah risiko-keuntungan (< 2.0)
  6. Fungsi penapis masa perdagangan pilihan yang menyokong perdagangan pada masa tertentu (zon masa SAST).

Kelebihan Strategik

  1. Struktur jelas, logik mudah: Strategi menggunakan logik harga yang mudah difahami dan dilaksanakan.
  2. Pengurusan risiko yang sempurna: Kawalan risiko yang ketat dicapai dengan menetapkan titik berhenti dan nisbah keuntungan risiko.
  3. Pengurusan masa yang fleksibel: Pilihan penapis masa perdagangan membolehkan perdagangan pada masa pasaran yang paling aktif.
  4. Mekanisme pengesahan berganda: Mengurangkan risiko isyarat palsu, digabungkan dengan penembusan harga dan pengesahan trend EMA
  5. Tingkat automasi yang tinggi: Strategi boleh dilaksanakan secara automatik sepenuhnya, mengurangkan campur tangan manusia.

Risiko Strategik

  1. Risiko penembusan palsu: Harga mungkin akan berundur dengan cepat selepas penembusan, menyebabkan kemusnahan.
  2. Risiko slippage: Dalam tempoh turun naik yang tinggi, harga transaksi sebenar mungkin jauh berbeza dengan harga isyarat.
  3. Risiko Hentian Tetap: Hentian yang ditetapkan mungkin tidak sesuai dengan semua keadaan pasaran.
  4. Risiko turun naik pasaran: Terlalu banyak isyarat perdagangan mungkin dihasilkan semasa turun naik rendah.

Arah pengoptimuman strategi

  1. Optimasi hentian dinamik: boleh mempertimbangkan untuk menyesuaikan mata hentian dinamik mengikut turun naik pasaran.
  2. Pengoptimuman masa perdagangan: Mengoptimumkan tetapan tetingkap masa perdagangan melalui analisis data sejarah.
  3. Peningkatan penapisan isyarat: Tambahkan penunjuk jumlah atau kadar turun naik sebagai syarat penapisan tambahan.
  4. Pengoptimuman parameter EMAs: menentukan tetapan kitaran EMA yang optimum melalui pengukuran semula.
  5. Optimasi pengurusan kedudukan: memperkenalkan mekanisme pengurusan kedudukan dinamik berdasarkan kadar turun naik.

ringkaskan

Strategi ini mewujudkan sistem perdagangan intraday yang boleh dipercayai dengan cara menggabungkan penembusan harga dan pengesahan trend EMA. Kelebihan utama strategi ini adalah struktur logiknya yang jelas dan mekanisme pengurusan risiko yang baik. Dengan arah pengoptimuman yang dicadangkan, strategi ini dapat meningkatkan kestabilan dan keuntungan lebih lanjut.

Kod sumber strategi
/*backtest
start: 2025-02-16 17:00:00
end: 2025-02-18 14:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("GER40 Momentum Breakout Scalping", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=1)

//———— Input Parameters —————
stopLossPoints = input.int(30, title="Stop Loss (Pips)", minval=1)  // Updated to 30 pips
riskReward    = input.float(2.0, title="Risk Reward Ratio", step=0.1)
useTimeFilter = input.bool(false, title="Use Time Filter? (Sessions in SAST)")
// Define sessions (SAST) if needed
session1 = "0900-1030"
session2 = "1030-1200"
session3 = "1530-1730"

//———— Time Filter Function —————
inSession = true
if useTimeFilter
    // TradingView's session function uses the chart's timezone.
    // Adjust the session times if your chart timezone is not SAST.
    inSession = time(timeframe.period, session1) or time(timeframe.period, session2) or time(timeframe.period, session3)

//———— Get Previous Day's High/Low —————
// Fetch the previous day's high/low using the daily timeframe. [1] refers to the previous completed day.
prevHigh = request.security(syminfo.tickerid, "D", high[1])
prevLow  = request.security(syminfo.tickerid, "D", low[1])

//———— Calculate EMAs on the 1-minute chart —————
emaFast = ta.ema(close, 9)
emaSlow = ta.ema(close, 21)

//———— Define Breakout Conditions —————
longCondition  = close > prevHigh and emaFast > emaSlow
shortCondition = close < prevLow  and emaFast < emaSlow

//———— Entry & Exit Rules —————
if inSession
    // Long breakout: Price breaks above previous day's high
    if (longCondition)
        strategy.entry("Long", strategy.long)
        strategy.exit("Exit Long", "Long", 
          stop = strategy.position_avg_price - stopLossPoints * syminfo.mintick, 
          limit = strategy.position_avg_price + stopLossPoints * riskReward * syminfo.mintick)
    
    // Short breakout: Price breaks below previous day's low
    if (shortCondition)
        strategy.entry("Short", strategy.short)
        strategy.exit("Exit Short", "Short", 
          stop = strategy.position_avg_price + stopLossPoints * syminfo.mintick, 
          limit = strategy.position_avg_price - stopLossPoints * riskReward * syminfo.mintick)

//———— Plot Indicators & Levels —————
plot(emaFast, color=color.blue, title="EMA 9")
plot(emaSlow, color=color.red, title="EMA 21")
plot(prevHigh, color=color.green, style=plot.style_linebr, title="Prev Day High")
plot(prevLow, color=color.maroon, style=plot.style_linebr, title="Prev Day Low")