Sumber dimuat naik... memuat...

Sistem Dagangan Sokongan Dinamik Jangka Masa Berganda

Penulis:ChaoZhang, Tarikh: 2024-12-05 16:44:56
Tag:SMAEMA

img

Ringkasan

Strategi ini adalah sistem perdagangan sokongan dinamik jangka masa berganda yang menggabungkan isyarat silang SMA dan EMA pada jangka masa mingguan dan harian. Sistem ini menggunakan jalur sokongan yang terbentuk antara purata bergerak untuk mengenal pasti trend pasaran dan peluang perdagangan, meningkatkan ketepatan perdagangan melalui pengesahan isyarat dari dua tempoh masa yang berbeza.

Prinsip Strategi

Prinsip teras berpusat di sekitar pemantauan persilangan purata bergerak dan kedudukan relatif di dua bingkai masa:

  1. Jangka masa panjang (minggu) menggunakan SMA 20 minggu dan EMA 21 minggu, jangka masa pendek (harian) menggunakan SMA 50 hari dan EMA 51 hari
  2. Dalam jangka masa yang panjang, isyarat panjang dihasilkan apabila EMA melintasi di atas SMA, dan kedudukan ditutup pada melintasi ke bawah
  3. Dalam jangka masa pendek, isyarat panjang berlaku apabila EMA melintasi di atas SMA dan EMA jangka pendek di atas EMA jangka panjang
  4. Semua kedudukan panjang ditutup apabila jangka masa pendek menghasilkan isyarat pendek atau jangka masa panjang menunjukkan salib ke bawah
  5. Strategi ini beroperasi dalam julat masa tertentu dengan penutupan kedudukan automatik di luar julat ini

Kelebihan Strategi

  1. Mekanisme pengesahan berganda: Mengurangkan isyarat palsu melalui pengesahan jangka masa berganda
  2. Band sokongan dinamik: Band sokongan antara purata bergerak menyesuaikan diri dengan perubahan pasaran
  3. Pengurusan risiko yang komprehensif: Termasuk pertimbangan kos dagangan dan slippage dengan saiz kedudukan berasaskan peratusan
  4. Kebolehsesuaian yang kuat: Band sokongan menyesuaikan diri secara automatik dengan turun naik pasaran
  5. Peraturan operasi yang jelas: Syarat kemasukan dan keluar yang jelas, mudah dilaksanakan dan backtest

Risiko Strategi

  1. Risiko pasaran bergelombang: Boleh menghasilkan isyarat palsu yang kerap di pasaran sampingan
  2. Risiko kelewatan: Purata bergerak mempunyai kelewatan yang melekat, berpotensi kehilangan titik kemasukan yang optimum
  3. Sensitiviti parameter: Prestasi strategi sangat bergantung kepada pilihan purata bergerak tempoh
  4. Ketergantungan persekitaran pasaran: Berprestasi lebih baik di pasaran yang sedang berkembang tetapi mungkin berjuang dalam keadaan yang sangat tidak menentu
  5. Risiko saiz kedudukan: Posisi peratusan tetap boleh menimbulkan risiko yang berlebihan dalam keadaan pasaran tertentu

Arahan pengoptimuman

  1. Memasukkan penunjuk turun naik: Pertimbangkan untuk menambah ATR untuk saiz kedudukan dinamik
  2. Mengoptimumkan pemilihan parameter: Backtest tempoh purata bergerak yang berbeza untuk mengoptimumkan prestasi sistem
  3. Tambah penapis persekitaran pasaran: Melaksanakan penunjuk kekuatan trend untuk menapis keadaan pasaran yang tidak sesuai
  4. Mempertingkatkan mekanisme stop-loss: Pertimbangkan untuk menambah trailing atau berhenti tetap untuk kawalan risiko yang lebih baik
  5. Meningkatkan pengurusan kedudukan: Sesuaikan saiz kedudukan secara dinamik berdasarkan kekuatan isyarat dan turun naik pasaran

Kesimpulan

Strategi ini membina sistem perdagangan yang agak kukuh dengan menggabungkan isyarat crossover purata bergerak dari jangka masa yang berbeza. Ia mengenal pasti trend pasaran melalui konsep pita sokongan dan menggunakan pelbagai mekanisme pengesahan untuk meningkatkan ketepatan perdagangan. Reka bentuk strategi mempertimbangkan pelbagai faktor perdagangan praktikal, termasuk kos dagangan, seluncur, dan pengurusan masa. Walaupun terdapat risiko yang melekat, arah pengoptimuman yang dicadangkan dapat meningkatkan lagi kestabilan dan keuntungan strategi.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Demo GPT - Bull Market Support Band", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)

start_date = input(timestamp("2018-01-01 00:00 +0000"), title="Start Date")
end_date = input(timestamp("2069-12-31 00:00 +0000"), title="End Date")

lsmaLength = input.int(20, title="Long SMA Length", minval=1)
lemaLength = input.int(21, title="Long EMA Length", minval=1)
customLongTimeframe = input.timeframe("W", title="Long Timeframe")  // Khung thời gian dài
ssmaLength = input.int(50, title="Short SMA Length", minval=1)
semaLength = input.int(51, title="Short EMA Length", minval=1)
customShortTimeframe = input.timeframe("D", title="Short Timeframe")  // Khung thời gian ngắn

source = close

// Tính toán SMA và EMA cho khung thời gian dài
smaLong = ta.sma(source, lsmaLength)
emaLong = ta.ema(source, lemaLength)
outSmaLong = request.security(syminfo.tickerid, customLongTimeframe, smaLong)
outEmaLong = request.security(syminfo.tickerid, customLongTimeframe, emaLong)

// Tính toán SMA và EMA cho khung thời gian ngắn
smaShort = ta.sma(source, ssmaLength)
emaShort = ta.ema(source, semaLength)
outSmaShort = request.security(syminfo.tickerid, customShortTimeframe, smaShort)
outEmaShort = request.security(syminfo.tickerid, customShortTimeframe, emaShort)

// Plot các chỉ báo trên biểu đồ
smaPlotLong = plot(outSmaLong, color=color.new(color.red, 0), title='20w SMA (Long)')
emaPlotLong = plot(outEmaLong, color=color.new(color.green, 0), title='21w EMA (Long)')
smaPlotShort = plot(outSmaShort, color=color.new(color.red, 0), title='20d SMA (Short)')
emaPlotShort = plot(outEmaShort, color=color.new(color.green, 0), title='21d EMA (Short)')

// Fill vùng giữa các đường SMA và EMA
fill(smaPlotLong, emaPlotLong, color=color.new(color.orange, 75), fillgaps=true)
fill(smaPlotShort, emaPlotShort, color=color.new(color.orange, 75), fillgaps=true)

// Điều kiện long và short cho khung thời gian dài
longConditionLong = ta.crossover(outEmaLong, outSmaLong)
shortConditionLong = ta.crossunder(outEmaLong, outSmaLong)

// Điều kiện long và short cho khung thời gian ngắn
longConditionShort = ta.crossover(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong)
shortConditionShort = ta.crossunder(outEmaShort, outSmaShort) and (outEmaShort > outEmaLong) // Điều kiện short khi EMA ngắn hạn cắt xuống dưới SMA ngắn hạn và EMA ngắn hạn cao hơn EMA dài hạn

// Kiểm tra điều kiện trong khoảng thời gian được chỉ định
inDateRange = true

// Nếu khung ngắn hạn xuất hiện tín hiệu short, ưu tiên đóng tất cả các lệnh Long
if shortConditionShort and inDateRange
    strategy.close_all()

// Nếu khung dài có tín hiệu short, đóng tất cả các lệnh Long
if shortConditionLong and inDateRange
    strategy.close_all()

// Nếu khung ngắn hạn có tín hiệu long và không có tín hiệu short từ khung dài, vào lệnh Long
if longConditionShort and not shortConditionLong and not shortConditionShort and inDateRange
    strategy.entry("Long", strategy.long)

// Đóng tất cả các lệnh khi không trong khoảng thời gian được chọn
if not inDateRange
    strategy.close_all()


Berkaitan

Lebih lanjut