Arah aliran bingkai berbilang masa mengikut strategi berdasarkan EMA dan MACD


Tarikh penciptaan: 2024-01-05 11:16:17 Akhirnya diubah suai: 2024-01-05 11:16:17
Salin: 0 Bilangan klik: 640
1
fokus pada
1621
Pengikut

Arah aliran bingkai berbilang masa mengikut strategi berdasarkan EMA dan MACD

Gambaran keseluruhan

Strategi ini menggabungkan penggunaan EMA Mean Line dan MACD untuk mengenal pasti isyarat trend dalam jangka masa yang panjang untuk menangkap trend garis tengah. Apabila trend jangka pendek selaras dengan arah trend jangka panjang, ia mengambil tindakan untuk mengesan trend.

Prinsip Strategi

Strategi menilai arah trend jangka panjang dan pertengahan dengan garis EMA 50 hari dan garis EMA 100 hari. Apabila trend jangka pendek dikenal pasti oleh penunjuk MACD, tentukan sama ada arah trend jangka pendek dan arah trend jangka panjang dan pertengahan adalah sama. Jika sama, ambil tindakan trend-following.

Khususnya, apabila MACD melalui jalur lambat dan ditutup > 50 hari EMA dan ditutup > 100 hari EMA, lakukan lebih banyak; apabila MACD melalui jalur lambat dan ditutup < 50 hari EMA dan ditutup < 100 hari EMA, lakukan kosong.

Di samping itu, strategi menggunakan ATR untuk mengira julat pergerakan dan menetapkan harga stop loss. Dengan ATR beberapa kali ganda harga tutup sebagai tempat berhenti, dengan ATR beberapa kali ganda harga tutup sebagai tempat berhenti.

Analisis kelebihan

  1. Gabungan EMA Mean Line dan MACD Indicator, boleh mengenal pasti isyarat trend dalam pelbagai jangka masa, untuk mengelakkan kehilangan trend garis panjang
  2. Menggunakan indikator ATR untuk menetapkan stop loss berdasarkan turun naik pasaran untuk mengawal risiko dengan berkesan
  3. Mengelakkan kawasan neutral pasaran perdagangan dan mengurangkan kerugian yang tidak perlu

Analisis risiko

  1. EMA rata-rata ketinggalan dan mungkin terlepas titik peralihan
  2. Penunjuk MACD mempunyai beberapa tempoh masa, parameter yang ditetapkan akan mempengaruhi hasilnya
  3. Julat ATR tidak dapat mewakili pergerakan harga masa depan dan tidak dapat mengelakkan risiko sepenuhnya.

Kaedah pencegahan:

  1. Sinyal pengesahan bersama-sama dengan petunjuk lain untuk mengelakkan kelewatan EMA
  2. Menyesuaikan parameter MACD, mengoptimumkan hasil
  3. Menetapkan ATR yang munasabah untuk mengawal kerugian maksimum

Arah pengoptimuman

  1. Uji kombinasi kitaran purata EMA yang berbeza
  2. Optimumkan tetapan parameter MACD
  3. Menggunakan kaedah pembelajaran mesin untuk secara automatik mencari ATR stop loss stop loss yang optimum

ringkaskan

Strategi ini menggunakan indikator seperti EMA, MACD dan ATR secara menyeluruh untuk melaksanakan operasi pengesanan trend dalam bingkai masa yang pelbagai. Dengan pengoptimuman parameter, diharapkan untuk mendapatkan kadar pulangan strategi yang lebih baik.

Kod sumber strategi
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA-50, EMA-100, and MACD Strategy with ATR for Stop Loss/Profit", overlay=true)

// MACD hesaplama
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// EMA-50 ve EMA-100 hesaplama
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)

// ATR hesaplama
atrLength = input(14, title="ATR Length")
atrValue = ta.atr(atrLength)

// Take Profit ve Stop Loss çoklayıcıları
takeProfitMultiplier = input(3.0, title="Take Profit Multiplier") // TP, 3 katı ATR
stopLossMultiplier = input(1.0, title="Stop Loss Multiplier")

// Long Pozisyon Koşulları
longCondition = ta.crossover(macdLine, signalLine) and close > ema50 and close > ema100

// Short Pozisyon Koşulları
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema50 and close < ema100

// Take Profit ve Stop Loss Seviyeleri
takeProfitLevel = close + takeProfitMultiplier * atrValue
stopLossLevel = close - stopLossMultiplier * atrValue

// Long Pozisyon İşlemleri
strategy.entry("Long", strategy.long, when=longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)

// Short Pozisyon İşlemleri
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)

// Grafikte Gösterme
plot(ema50, color=color.blue, title="EMA-50")
plot(ema100, color=color.red, title="EMA-100")
hline(0, "Zero Line", color=color.gray)