Sistem perdagangan tahap sokongan dinamik dwi rangka masa

SMA EMA
Tarikh penciptaan: 2024-12-05 16:44:56 Akhirnya diubah suai: 2024-12-05 16:44:56
Salin: 0 Bilangan klik: 366
1
fokus pada
1617
Pengikut

Sistem perdagangan tahap sokongan dinamik dwi rangka masa

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan kedudukan sokongan dinamik yang berasaskan bingkai masa ganda, yang berdagang melalui isyarat silang yang menggabungkan garis rata SMA dan EMA pada garis waktu mingguan dan hari. Sistem ini menggunakan sokongan yang terbentuk antara garis rata untuk mengenal pasti trend pasaran dan peluang perdagangan, meningkatkan ketepatan perdagangan dengan pengesahan isyarat dua tempoh masa yang berbeza.

Prinsip Strategi

Prinsip utama strategi ini adalah untuk menentukan isyarat dagangan dengan memantau hubungan persilangan dan kedudukan garis rata-rata dalam dua tempoh masa:

  1. Julat panjang (periodic) menggunakan 20 minggu SMA dan 21 minggu EMA, Julat pendek (periodic) menggunakan 50 hari SMA dan 51 hari EMA
  2. Dalam kitaran panjang, EMA menghasilkan isyarat plus apabila melintasi SMA ke atas dan isyarat plus apabila melintasi SMA ke bawah
  3. Dalam kitaran pendek, sinyal ganda dihasilkan apabila EMA melintasi SMA ke atas dan EMA kitaran pendek terletak di atas EMA kitaran panjang
  4. Apabila terdapat isyarat short-period short-off atau long-period long-period cross-down, sistem akan meratakan semua polynomial
  5. Strategi berjalan dalam jangka masa yang ditetapkan, di luar jangkauan kedudukan kosong automatik

Kelebihan Strategik

  1. Mekanisme pengesahan berganda: pengesahan isyarat melalui dua tempoh masa, mengurangkan kesan isyarat palsu
  2. Sabuk sokongan dinamik: Sabuk sokongan yang terbentuk di antara garis rata dapat menyesuaikan diri secara dinamik dengan perubahan pasaran
  3. Pengurusan risiko yang baik: merangkumi pertimbangan kos dagangan dan slippage, menggunakan pengurusan kedudukan peratusan
  4. Beradaptasi: Talian sokongan akan menyesuaikan kedudukan secara automatik dengan turun naik pasaran
  5. Peraturan operasi jelas: syarat masuk dan keluar jelas, mudah dilaksanakan dan dikaji semula

Risiko Strategik

  1. Risiko pasaran goyah: Isyarat palsu yang sering berlaku dalam pasaran goyah
  2. Risiko ketinggalan: Indeks garis purata sendiri mempunyai ketinggalan, mungkin terlepas titik kemasukan terbaik
  3. Sensitiviti parameter: pilihan kitaran garis purata mempunyai kesan yang lebih besar terhadap prestasi strategi
  4. Kepercayaan kepada keadaan pasaran: strategi yang berprestasi baik dalam pasaran trend, tetapi mungkin kurang baik dalam pasaran yang bergolak
  5. Risiko pengurusan wang: Posisi peratusan tetap mungkin terlalu berisiko dalam keadaan pasaran tertentu

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk turun naik: Pertimbangkan untuk menambah penunjuk turun naik seperti ATR untuk menyesuaikan saiz kedudukan secara dinamik
  2. Pilihan parameter pengoptimuman: prestasi sistem boleh dioptimumkan dengan mengkaji semula parameter garis purata untuk tempoh masa yang berbeza
  3. Menambah penapis keadaan pasaran: penambahan penunjuk kekuatan trend untuk menapis keadaan pasaran yang tidak sesuai
  4. Peningkatan mekanisme hentian kerugian: pertimbangkan untuk menambah hentian bergerak atau hentian tetap untuk mengawal risiko lebih lanjut
  5. Pengurusan kedudukan yang dioptimumkan: saiz kedudukan boleh disesuaikan secara dinamik mengikut kekuatan isyarat dan turun naik pasaran

ringkaskan

Strategi ini membina sistem perdagangan yang agak stabil dengan menggabungkan isyarat persilangan linear yang berbeza dalam tempoh masa yang berbeza. Strategi ini direka dengan mengambil kira pelbagai faktor dalam perdagangan sebenar, termasuk kos perdagangan, slippage, dan pengurusan masa. Walaupun terdapat beberapa risiko yang wujud, strategi ini dapat meningkatkan kestabilan dan keuntungan dengan memberikan arah pengoptimuman.

Kod sumber 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()