Sumber daya yang dimuat... Pemuatan...

Sistem Perdagangan Tren Penembusan Tingkat Harga Multi Periode Berdasarkan Tingkat Harga Kunci

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

img

Gambaran umum

Strategi ini adalah sistem perdagangan breakout yang didasarkan pada beberapa tingkat harga kunci. Sistem ini terutama melacak enam tingkat harga kritis: High of Day (HOD), Low of Day (LOD), Premarket High (PMH), Premarket Low (PML), Previous Day High (PDH), dan Previous Day Low (PDL).

Prinsip Strategi

Logika inti mencakup beberapa komponen utama:

  1. Perhitungan tingkat harga kunci: Menggunakan fungsi request.security untuk mendapatkan data harga dari periode waktu yang berbeda untuk menghitung enam tingkat harga kunci.
  2. Kondisi masuk: Membuka posisi panjang ketika harga melanggar di atas PMH atau PDH; membuka posisi pendek ketika harga melanggar di bawah PML atau PDL.
  3. Kondisi keluar: Menutup posisi panjang ketika harga mencapai HOD; Menutup posisi pendek ketika harga mencapai LOD.
  4. Representasi visual: Menandai tingkat harga dengan garis horizontal berwarna yang berbeda - putih untuk HOD, ungu untuk LOD, oranye untuk PDH, biru untuk PDL, hijau untuk PMH, dan merah untuk PML.

Keuntungan Strategi

  1. Referensi harga multi-dimensi: Memantau tingkat harga utama di beberapa periode waktu untuk analisis pasar yang komprehensif.
  2. Logika breakout yang jelas: Menghasilkan sinyal perdagangan berdasarkan harga yang pecah dengan aturan perdagangan yang eksplisit.
  3. Otomatisasi tinggi: Menghitung tingkat harga secara otomatis dan melakukan perdagangan, mengurangi intervensi manual.
  4. Visualisasi yang kuat: Menampilkan tingkat harga melalui garis horisontal berwarna yang berbeda untuk analisis intuitif.
  5. Kemampuan beradaptasi yang tinggi: Terapkan pada berbagai instrumen perdagangan dan periode waktu.

Risiko Strategi

  1. Risiko pecah palsu: Pasar dapat menghasilkan pecah palsu yang mengarah pada sinyal yang salah.
  2. Ketergantungan volatilitas: Strategi dapat berkinerja buruk dalam lingkungan volatilitas rendah.
  3. Pengendalian risiko yang tidak memadai: Tidak memiliki mekanisme stop-loss dan pengambilan keuntungan yang dinamis.
  4. Ketergantungan lingkungan pasar: Dapat menghasilkan perdagangan yang sering di berbagai pasar.
  5. Dampak slippage: Mungkin menghadapi slippage yang signifikan di pasar yang kurang likuid.

Arah Optimasi Strategi

  1. Tambahkan filter indikator teknis:
  • Menggabungkan RSI untuk penyaringan overbought/oversold
  • Menggunakan ATR untuk penempatan stop-loss dinamis
  • Mengintegrasikan ADX untuk konfirmasi kekuatan tren
  1. Meningkatkan manajemen risiko:
  • Mengimplementasikan mekanisme stop-loss yang dinamis
  • Tambahkan fungsi trailing stop
  • Menetapkan sistem profit-taking skala
  1. Mengoptimalkan konfirmasi sinyal:
  • Tambahkan konfirmasi volume
  • Sertakan konfirmasi tren multi-frame waktu
  • Menetapkan mekanisme konfirmasi keterlambatan sinyal

Ringkasan

Strategi ini menangkap peluang pasar dengan memantau dan memanfaatkan beberapa tingkat harga kunci, menampilkan logika yang jelas dan otomatisasi tinggi. Namun, juga membawa risiko tertentu yang perlu ditangani melalui filter indikator teknis dan mekanisme manajemen risiko yang ditingkatkan. Keuntungan utama strategi ini terletak pada sistem referensi harga multidimensi, yang memungkinkan penangkapan tren pasar yang lebih baik, tetapi penerapan praktis membutuhkan penyesuaian parameter khusus berdasarkan kondisi pasar yang berbeda.


/*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 banyak