Sumber dimuat naik... memuat...

Sistem Perdagangan Trend Penembusan Tahap Harga Berbilang Tempoh Berdasarkan Tahap Harga Utama

Penulis:ChaoZhang, Tarikh: 2025-01-06 16:06:30
Tag:HODLODPMHPMLPDHPDLMARSIATRADX

img

Ringkasan

Strategi ini adalah sistem perdagangan pecah berdasarkan pelbagai tahap harga utama. Ia terutamanya mengesan enam tahap harga kritikal: Tinggi Hari (HOD), Rendah Hari (LOD), Tinggi Prapasaran (PMH), Rendah Prapasaran (PML), Tinggi Hari Sebelum (PDH), dan Rendah Hari Sebelum (PDL).

Prinsip Strategi

Logik teras merangkumi beberapa komponen utama:

  1. Pengiraan paras harga utama: Menggunakan fungsi permintaan. keselamatan untuk mendapatkan data harga dari tempoh masa yang berbeza untuk mengira enam paras harga utama.
  2. Syarat kemasukan: Membuka kedudukan panjang apabila harga melanggar di atas PMH atau PDH; membuka kedudukan pendek apabila harga melanggar di bawah PML atau PDL.
  3. Syarat keluar: menutup kedudukan panjang apabila harga mencapai HOD; menutup kedudukan pendek apabila harga mencapai LOD.
  4. Perwakilan visual: Tanda tahap harga dengan garis mendatar berwarna yang berbeza - putih untuk HOD, ungu untuk LOD, oren untuk PDH, biru untuk PDL, hijau untuk PMH, dan merah untuk PML.

Kelebihan Strategi

  1. Rujukan harga berbilang dimensi: Memantau tahap harga utama dalam beberapa tempoh masa untuk analisis pasaran yang komprehensif.
  2. Logik penembusan yang jelas: Menghasilkan isyarat dagangan berdasarkan penembusan harga dengan peraturan dagangan yang jelas.
  3. Automasi tinggi: Mengira tahap harga secara automatik dan melaksanakan perdagangan, mengurangkan campur tangan manual.
  4. Visualisasi yang kuat: Memaparkan tahap harga melalui garis mendatar berwarna yang berbeza untuk analisis intuitif.
  5. Kemudahan penyesuaian yang tinggi: Boleh digunakan untuk pelbagai instrumen dagangan dan tempoh masa.

Risiko Strategi

  1. Risiko pecah palsu: Pasaran boleh menghasilkan pecah palsu yang membawa kepada isyarat yang salah.
  2. Kebergantungan turun naik: Strategi mungkin kurang berprestasi dalam persekitaran turun naik yang rendah.
  3. Pengendalian risiko yang tidak mencukupi: Tidak mempunyai mekanisme stop-loss dan mengambil keuntungan yang dinamik.
  4. Kebergantungan persekitaran pasaran: Boleh menghasilkan perdagangan yang kerap di pasaran yang berbeza.
  5. Kesan slippage: Mungkin menghadapi slippage yang ketara di pasaran yang kurang cair.

Arahan Pengoptimuman Strategi

  1. Tambah penapis penunjuk teknikal:
  • Menggabungkan RSI untuk penapisan overbought/oversold
  • Menggunakan ATR untuk penempatan stop-loss dinamik
  • Mengintegrasikan ADX untuk pengesahan kekuatan trend
  1. Meningkatkan pengurusan risiko:
  • Melaksanakan mekanisme stop-loss dinamik
  • Tambah fungsi hentian
  • Menubuhkan sistem pengambilan keuntungan berskala
  1. Mengoptimumkan pengesahan isyarat:
  • Tambah pengesahan jumlah
  • Sertakan pengesahan trend pelbagai jangka masa
  • Menetapkan mekanisme pengesahan kelewatan isyarat

Ringkasan

Strategi ini menangkap peluang pasaran dengan memantau dan menggunakan pelbagai tahap harga utama, memaparkan logik yang jelas dan automasi yang tinggi. Walau bagaimanapun, ia juga membawa risiko tertentu yang perlu ditangani melalui penapis penunjuk teknikal dan mekanisme pengurusan risiko yang lebih baik. Keuntungan utama strategi ini terletak pada sistem rujukan harga berbilang dimensi, yang membolehkan penangkapan trend pasaran yang lebih baik, tetapi penerapan praktikal memerlukan penyesuaian parameter khusus berdasarkan keadaan pasaran yang berbeza.


/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true)

// Daily high and low
dailyhigh = request.security(syminfo.tickerid, 'D', high)
dailylow = request.security(syminfo.tickerid, 'D', low)

// Previous day high and low
var float previousdayhigh = na
var float previousdaylow = na
high1 = request.security(syminfo.tickerid, 'D', high[1])
low1 = request.security(syminfo.tickerid, 'D', low[1])
high0 = request.security(syminfo.tickerid, 'D', high[0])
low0 = request.security(syminfo.tickerid, 'D', low[0])

// Yesterday high and low
if (hour == 9 and minute > 30) or hour > 10
    previousdayhigh := high1
    previousdaylow := low1
else
    previousdayhigh := high0
    previousdaylow := low0

// Premarket high and low
t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day.
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = 9
ending_minute = 30

var float pm_high = na
var float pm_low = na

if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    pm_low := low
else 
    pm_high := pm_high[1]
    pm_low := pm_low[1]

if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_high := high
    
if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute))
    pm_low := low

// Plotting levels
plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true)
plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true)
plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true)
plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true)
plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true)
plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true)

// Strategy logic
// Long entry: Price crosses above PMH or PDH
if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0
    strategy.entry("Long", strategy.long)

// Short entry: Price crosses below PML or PDL
if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0
    strategy.entry("Short", strategy.short)

// Exit long: Price reaches HOD
if strategy.position_size > 0 and ta.crossover(close, dailyhigh)
    strategy.close("Long")

// Exit short: Price reaches LOD
if strategy.position_size < 0 and ta.crossunder(close, dailylow)
    strategy.close("Short")

Berkaitan

Lebih lanjut