Momentum MACD dua hala dan strategi perdagangan penentuan arah aliran EMA

MACD EMA TP/SL BACKTEST ROI
Tarikh penciptaan: 2025-02-20 15:58:38 Akhirnya diubah suai: 2025-02-20 15:58:38
Salin: 4 Bilangan klik: 353
2
fokus pada
319
Pengikut

Momentum MACD dua hala dan strategi perdagangan penentuan arah aliran EMA Momentum MACD dua hala dan strategi perdagangan penentuan arah aliran EMA

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan dua hala yang menggabungkan indikator momentum MACD dan garis rata-rata EMA. Ia berdasarkan pada isyarat silang indikator MACD dan kedudukan harga terhadap EMA (~ 200) untuk menentukan masa masuk. Strategi ini menggunakan nisbah risiko / keuntungan 2: 1, boleh beroperasi pada kitaran masa 5 minit, dan menyokong penyesuaian parameter yang fleksibel.

Prinsip Strategi

Logik teras strategi adalah berdasarkan syarat utama berikut:

  1. Syarat kemasukan:
    • Harga terletak di atas EMA (~ 200)
    • Garis MACD melintasi garis isyarat dari bawah
    • MACD terletak di bawah garis sifar
  2. Syarat kemasukan:
    • Harga berada di bawah EMA ((200)
    • Garis MACD melintasi garis isyarat dari atas
    • Nilai MACD terletak di atas garis sifar
  3. Pengurusan risiko menggunakan Stop Loss and Stop Loss Ratio yang ditetapkan, default 1: 2

Kelebihan Strategik

  1. Logik yang jelas dan mudah difahami dan dilaksanakan
  2. Gabungan trend dan dinamika memberi isyarat dagangan yang lebih dipercayai
  3. Tetapan parameter yang fleksibel yang boleh dioptimumkan mengikut keadaan pasaran yang berbeza
  4. Menyokong perdagangan dua hala untuk memanfaatkan peluang pasaran
  5. Sistem pengurusan risiko terbina dalam yang membantu melindungi keselamatan dana

Risiko Strategik

  1. Sinyal palsu yang sering berlaku di pasaran Forex
  2. Nisbah Stop Loss Tetap mungkin tidak sesuai untuk semua keadaan pasaran
  3. Lebih sensitif terhadap perubahan turun naik pasaran
  4. Transaksi yang kerap boleh menyebabkan perbelanjaan bayaran yang lebih tinggi
  5. Beberapa peluang mungkin terlepas dalam perjalanan pantas

Arah pengoptimuman strategi

  1. Pengenalan penunjuk kadar turun naik untuk menyesuaikan tahap hentian dan hentian secara dinamik
  2. Meningkatkan isyarat pengesahan dan kualiti kemasukan
  3. Menambah penapis persekitaran pasaran untuk mengelakkan dagangan di bawah keadaan yang tidak baik
  4. Sistem pengoptimuman parameter yang dinamik
  5. Menambah penapis masa untuk mengelakkan dagangan pada masa kecairan rendah

ringkaskan

Ini adalah sistem strategi yang dirancang dengan munasabah, yang menyediakan isyarat perdagangan yang agak dipercayai dengan menggabungkan petunjuk teknikal. Walaupun terdapat beberapa risiko yang berpotensi, dengan pengoptimuman dan pengurusan risiko yang munasabah, strategi ini mempunyai potensi aplikasi pertempuran yang baik.

Kod sumber strategi
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-19 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © @DieBartDie

//@version=5
strategy("Strategy with MACD and EMA", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Editable parameters
ema_length = input.int(200, title="EMA Length")
tp_ratio = input.float(2.0, title="Take Profit Ratio (%)") // Take Profit ratio
sl_ratio = input.float(1.0, title="Stop Loss Ratio (%)")   // Stop Loss ratio

// MACD configuration
fast_length = input.int(12, title="MACD Fast Length")
slow_length = input.int(26, title="MACD Slow Length")
signal_length = input.int(9, title="MACD Signal Length")

// Operation type configuration
operation_type = input.string("Long & Short", title="Operation Type", options=["Long", "Short", "Long & Short"])

// Indicators
ema_200 = ta.ema(close, ema_length)
[macd, signal, _] = ta.macd(close, fast_length, slow_length, signal_length)

// Conditions for LONG entries
price_above_ema = close > ema_200
macd_above_signal = ta.crossover(macd, signal) // MACD crosses above the signal line
macd_below_zero = macd < 0
long_condition = price_above_ema and macd_above_signal and macd_below_zero

// Conditions for SHORT entries
price_below_ema = close < ema_200
macd_below_signal = ta.crossunder(macd, signal) // MACD crosses below the signal line
macd_above_zero = macd > 0
short_condition = price_below_ema and macd_below_signal and macd_above_zero

// Calculate Stop Loss and Take Profit
stop_loss_long = close * (1 - sl_ratio / 100)
take_profit_long = close * (1 + tp_ratio / 100)
stop_loss_short = close * (1 + sl_ratio / 100)
take_profit_short = close * (1 - tp_ratio / 100)

// Execute LONG position if conditions are met
if (operation_type == "Long" or operation_type == "Long & Short") and long_condition
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)

// Execute SHORT position if conditions are met
if (operation_type == "Short" or operation_type == "Long & Short") and short_condition
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)

// Plot the EMA
plot(ema_200, color=color.orange, linewidth=2, title="EMA 200")