Strategi perdagangan pengesahan aliran dwi berdasarkan purata bergerak dan corak bar luar

EMA
Tarikh penciptaan: 2025-01-17 14:39:19 Akhirnya diubah suai: 2025-01-17 14:39:19
Salin: 0 Bilangan klik: 302
1
fokus pada
1617
Pengikut

Strategi perdagangan pengesahan aliran dwi berdasarkan purata bergerak dan corak bar luar

Gambaran keseluruhan

Strategi ini ialah sistem mengikut aliran yang menggabungkan purata bergerak dengan corak Bar Luar. Ia menggunakan purata bergerak eksponen (EMA) 5 dan 9 tempoh sebagai penunjuk arah aliran utama, digabungkan dengan corak Bar Luar sebagai pengesahan isyarat. Strategi ini juga termasuk tetapan henti rugi dan ambil untung dinamik berdasarkan ketinggian Bar Luar, serta mekanisme pembalikan kedudukan selepas henti rugi dicetuskan.

Prinsip Strategi

Logik teras strategi adalah berdasarkan elemen utama berikut:

  1. Gunakan silang bagi EMA 5 tempoh dan 9 tempoh untuk menentukan arah aliran asas
  2. Sahkan turun naik pasaran melalui corak Outside Bar (harga tertinggi K-line semasa adalah lebih tinggi daripada harga tertinggi K-line sebelumnya dan harga terendah adalah lebih rendah daripada harga terendah K-line sebelumnya)
  3. Masukkan dagangan apabila isyarat silang EMA dan corak Bar Luar muncul serentak
  4. Gunakan ketinggian Bar Luar untuk menetapkan tahap henti rugi dan ambil untung secara dinamik Pengambilan untung ditetapkan kepada 50% daripada ketinggian Bar Luar dan henti rugi ditetapkan kepada 100%.
  5. Apabila stop loss dicetuskan, kedudukan songsang ditetapkan secara automatik untuk menangkap kemungkinan pembalikan arah aliran

Kelebihan Strategik

  1. Mekanisme pengesahan berganda meningkatkan ketepatan transaksi dan mengelakkan isyarat palsu yang mungkin disebabkan oleh penunjuk tunggal.
  2. Tetapan henti rugi dan ambil untung dinamik menyesuaikan diri dengan turun naik pasaran dan mengekalkan pengurusan risiko yang munasabah dalam persekitaran pasaran yang berbeza
  3. Mekanisme pembalikan kedudukan boleh cepat menyesuaikan diri dengan perubahan dalam arah aliran pasaran dan meningkatkan kecekapan penggunaan modal
  4. Strategi ini mempunyai peraturan keluar masuk yang jelas dan mudah dilaksanakan serta ujian belakang.

Risiko Strategik

  1. Corak Bar Luar mungkin kelihatan kurang kerap dalam pasaran dengan kurang turun naik, menjejaskan kekerapan dagangan
  2. Dalam pasaran yang bergerak pantas, kedudukan stop loss mungkin terlalu luas, meningkatkan risiko satu transaksi
  3. Mekanisme pembalikan kedudukan boleh menyebabkan stop loss berterusan dalam pasaran yang tidak menentu
  4. Parameter EMA tetap mungkin tidak berprestasi secara konsisten dalam persekitaran pasaran yang berbeza

Arah pengoptimuman strategi

  1. Indeks turun naik boleh diperkenalkan untuk melaraskan nisbah stop loss dan take profit secara dinamik untuk menjadikan pengurusan risiko lebih fleksibel.
  2. Pertimbangkan untuk menambah penapis kekuatan aliran untuk mengelakkan dagangan dalam persekitaran aliran yang lemah
  3. Optimumkan keadaan pencetus untuk pembalikan kedudukan, dan gabungkan penunjuk turun naik pasaran untuk memutuskan sama ada untuk melaksanakan pembalikan
  4. Kaji skema pengoptimuman parameter EMA untuk tempoh masa yang berbeza untuk meningkatkan kebolehsuaian sistem

ringkaskan

Ini adalah sistem strategi yang menggabungkan teori klasik analisis teknikal dengan konsep perdagangan kuantitatif moden. Penggunaan diselaraskan purata bergerak dan Bar Luar bukan sahaja memastikan ketepatan masa penjejakan arah aliran, tetapi juga meningkatkan kebolehpercayaan isyarat. Reka bentuk mekanisme henti rugi dinamik, ambil untung dan pembalikan kedudukan mencerminkan penekanan pada pengurusan risiko dan menjadikan strategi itu praktikal. Walaupun masih ada ruang untuk pengoptimuman, rangka kerja keseluruhan sudah mempunyai syarat asas untuk operasi masa nyata.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-15 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy(title="Outside Bar EMA Crossover Strategy with EMA Shift", shorttitle="Outside Bar EMA Cross", overlay=true)

// Input for EMA lengths
lenEMA1 = input.int(5, title="EMA 5 Length")
lenEMA2 = input.int(9, title="EMA 9 Length")

// Input for EMA 9 shift
emaShift = input.int(1, title="EMA 9 Shift", minval=0)

// Calculate EMAs
ema1 = ta.ema(close, lenEMA1)
ema2 = ta.ema(close, lenEMA2)

// Apply shift to EMA 9
ema2Shifted = na(ema2[emaShift]) ? na : ema2[emaShift]  // Dịch chuyển EMA 9 bằng cách sử dụng offset

// Plot EMAs
plot(ema1, title="EMA 5", color=color.blue, linewidth=2)
plot(ema2Shifted, title="EMA 9 Shifted", color=color.red, linewidth=2)

// Outside Bar condition
outsideBar() => high > high[1] and low < low[1]

// Cross above EMA 5 and EMA 9 (shifted)
crossAboveEMA = close > ema1 and close > ema2Shifted

// Cross below EMA 5 and EMA 9 (shifted)
crossBelowEMA = close < ema1 and close < ema2Shifted

// Outside Bar cross above EMA 5 and EMA 9 (shifted)
outsideBarCrossAbove = outsideBar() and crossAboveEMA

// Outside Bar cross below EMA 5 and EMA 9 (shifted)
outsideBarCrossBelow = outsideBar() and crossBelowEMA

// Plot shapes for visual signals
plotshape(series=outsideBarCrossAbove, title="Outside Bar Cross Above", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", textcolor=color.white)
plotshape(series=outsideBarCrossBelow, title="Outside Bar Cross Below", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", textcolor=color.white)

// Calculate Outside Bar height
outsideBarHeight = high - low  // Chiều cao của nến Outside Bar

// Calculate TP and SL levels
tpRatio = 0.5  // TP = 50% chiều cao nến Outside Bar
slRatio = 1.0  // SL = 100% chiều cao nến Outside Bar

tpLevelLong = close + outsideBarHeight * tpRatio  // TP cho lệnh mua
slLevelLong = close - outsideBarHeight * slRatio  // SL cho lệnh mua

tpLevelShort = close - outsideBarHeight * tpRatio  // TP cho lệnh bán
slLevelShort = close + outsideBarHeight * slRatio  // SL cho lệnh bán

// Strategy logic
if (outsideBarCrossAbove)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=slLevelLong, limit=tpLevelLong)  // Thêm TP và SL

if (outsideBarCrossBelow)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=slLevelShort, limit=tpLevelShort)  // Thêm TP và SL

// Logic: Nếu lệnh Buy bị Stop Loss => Vào lệnh Sell
if (strategy.position_size > 0 and close <= slLevelLong)
    strategy.close("Buy")
    strategy.entry("Sell After Buy SL", strategy.short)

// Logic: Nếu lệnh Sell bị Stop Loss => Vào lệnh Buy
if (strategy.position_size < 0 and close >= slLevelShort)
    strategy.close("Sell")
    strategy.entry("Buy After Sell SL", strategy.long)

// Cảnh báo khi label Buy xuất hiện
alertcondition(condition=outsideBarCrossAbove, title="Label Buy Xuất Hiện", message="Label Buy xuất hiện tại giá: {{close}}")

// Cảnh báo khi label Sell xuất hiện
alertcondition(condition=outsideBarCrossBelow, title="Label Sell Xuất Hiện", message="Label Sell xuất hiện tại giá: {{close}}")