Strategi Dagangan Trend Crossover Garisan Berganda Berdasarkan Penunjuk EMA


Tarikh penciptaan: 2024-01-23 14:43:46 Akhirnya diubah suai: 2024-01-23 14:43:46
Salin: 2 Bilangan klik: 635
1
fokus pada
1617
Pengikut

Strategi Dagangan Trend Crossover Garisan Berganda Berdasarkan Penunjuk EMA

Gambaran keseluruhan

Strategi ini adalah strategi yang berdasarkan EMA rata-rata dua garis melintang trend penghakiman. Ia menggunakan dua EMA rata-rata yang berbeza panjang, pada tempoh pencatatan dengan menghakimi EMA rata-rata kedudukan hubungan menentukan kini berada dalam trend menaik, pada tempoh pecah dengan menghakimi harga dengan persimpangan EMA rata-rata untuk menghantar isyarat beli.

Prinsip Strategi

Strategi ini menggunakan dua garis purata EMA 30 dan 60 kitaran. Garis purata EMA adalah purata bergerak yang halus, ia memberikan berat yang lebih tinggi kepada harga terkini, supaya garis purata EMA dapat bertindak balas lebih cepat terhadap perubahan harga.

Apabila EMA jangka pendek menghasilkan isyarat beli ketika melintasi EMA jangka panjang, ia menunjukkan bahawa ia sedang dalam trend menaik. Apabila harga melintasi EMA jangka pendek dari bawah ke atas, ia akan terus berjalan ke atas dengan sokongan trend jangka panjang, maka ia membeli.

Strategi ini juga menetapkan titik hentian. Titik hentian ditetapkan sebagai titik tertinggi dalam 10 garis K yang lalu untuk mengunci keuntungan maksimum. Titik hentian ditetapkan sebagai rata-rata EMA jangka panjang untuk mengawal risiko.

Analisis kelebihan

Kelebihan utama strategi ini ialah:

  1. Menggunakan EMA rata-rata untuk menilai trend dengan kebolehpercayaan yang tinggi, mudah untuk merebut peluang trend
  2. Dua tali silang menghantar isyarat yang sensitif
  3. Tetapkan titik hentian untuk mengunci keuntungan dan mengawal risiko

Analisis risiko

Risiko utama strategi ini ialah:

  1. EMA tidak bertindak balas tepat pada masanya dan boleh menyebabkan kerugian apabila trend berbalik
  2. Perkongsian dua baris mudah menyebabkan isyarat yang salah
  3. Penetapan titik hentian yang tidak betul boleh menyebabkan hentian hentian awal

Penyelesaian:

  1. Mengoptimumkan parameter EMA rata-rata untuk bertindak balas lebih cepat terhadap perubahan trend
  2. Menambah syarat penapisan untuk mengelakkan isyarat yang salah
  3. Ujian untuk menentukan parameter stop-loss yang optimum

Arah pengoptimuman

Kaedah utama untuk mengoptimumkan strategi ini ialah:

  1. Mengoptimumkan parameter EMA rata-rata untuk mencari kombinasi parameter terbaik
  2. Menambah petunjuk lain sebagai penilaian tambahan, seperti MACD, KDJ dan sebagainya
  3. Meningkatkan Indeks Tenaga, Mengelakkan Penembusan Palsu yang Kurang Tenaga
  4. Mengoptimumkan Stop Loss secara dinamik menggunakan kaedah pembelajaran mesin
  5. Uji kekuatan parameter pelbagai jenis untuk mencari jenis yang paling sesuai

ringkaskan

Strategi ini secara keseluruhan adalah strategi yang lebih tipikal berdasarkan EMA untuk menentukan arah trend dan memberi isyarat silang dua baris. Ia menggunakan EMA untuk menentukan trend besar dan silang dua baris untuk meningkatkan ketepatan isyarat. Tetapi EMA untuk menanggapi perubahan trend dan silang dua baris yang mungkin menyebabkan isyarat yang salah adalah risiko utama strategi ini.

Kod sumber strategi
/*backtest
start: 2023-12-23 00:00:00
end: 2024-01-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Cross Strategy", overlay=true)

// 输入设置
ema30_length = input.int(30, title="EMA 30 Length", minval=1)
ema60_length = input.int(60, title="EMA 60 Length", minval=1)

// 计算EMA
ema30 = ta.ema(close, ema30_length)
ema60 = ta.ema(close, ema60_length)

// 绘制EMA
plot(ema30, title="EMA 30", color=color.blue, linewidth=2)
plot(ema60, title="EMA 60", color=color.red, linewidth=2)

// 判断上升趋势
uptrend = close > ema30 and ema30 > ema60

// 买入条件
buy_signal = ta.crossover(close, ema30) and close[1] < ema30[1] and close[1] > ema60[1] and uptrend

// 止盈止损
take_profit_level = ta.highest(high, 10)
stop_loss_level = ema60

// 执行交易
if (buy_signal)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit", "Long", stop=stop_loss_level, limit=take_profit_level)