Strategi Dagangan Momentum Pecah Jangka Masa CPR Berbilang

CPR EMA RSI BC TC SMA MA
Tarikh penciptaan: 2025-02-21 11:45:06 Akhirnya diubah suai: 2025-02-21 11:45:06
Salin: 1 Bilangan klik: 454
2
fokus pada
319
Pengikut

Strategi Dagangan Momentum Pecah Jangka Masa CPR Berbilang Strategi Dagangan Momentum Pecah Jangka Masa CPR Berbilang

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan berdasarkan analisis pelbagai kitaran masa, yang digunakan untuk berdagang menggunakan jarak harga pusat (CPR), purata bergerak indeks (EMA) dan RSI yang kuat. Strategi ini mengenal pasti trend pasaran dan tahap rintangan sokongan utama melalui tahap CPR harian, harga pembukaan mingguan dan 20 kitaran EMA, dan menggabungkan pengesahan jumlah perdagangan untuk melakukan perdagangan.

Prinsip Strategi

Pusat strategi adalah untuk mencari peluang perdagangan dengan menganalisis hubungan antara harga dan tahap CPR. CPR terdiri daripada titik pivot (Pivot), garis pusat bawah (BC) dan garis pusat atas (TC). Apabila harga menembusi TC dan pasaran berada dalam fasa bermulut, sistem akan mengeluarkan banyak isyarat; apabila harga jatuh dan pasaran berada dalam fasa kosong (BC), sistem akan mengeluarkan isyarat kosong.

Kelebihan Strategik

  1. Mekanisme pengesahan berganda: menggabungkan pengesahan bertiga mengenai pergerakan harga, arah trend dan jumlah transaksi, meningkatkan kebolehpercayaan isyarat perdagangan
  2. Pengurusan risiko dinamik: Hentikan kerugian dinamik berdasarkan lebar CPR, menyesuaikan diri dengan keadaan pasaran yang berbeza
  3. Pilihan kustomisasi yang fleksibel: boleh menyesuaikan kitaran masa CPR, panjang EMA, dan pengesahan RSI pada/telah
  4. Nisbah keuntungan asimetris: menggunakan nisbah risiko keuntungan 1.5:1, meningkatkan keuntungan jangka panjang
  5. Analisis pelbagai kitaran masa: menyediakan pandangan pasaran yang lebih menyeluruh dengan mengintegrasikan data garis matahari dan garis pusingan

Risiko Strategik

  1. Risiko penembusan palsu: Isyarat penembusan palsu mungkin berlaku dalam pasaran yang bergolak, disarankan untuk menggunakan syarat penapisan kuantiti yang lebih ketat
  2. Risiko trend reversal: Kemunculan pulangan yang lebih besar mungkin berlaku di titik-titik trend yang bertukar, risiko boleh dikawal dengan mengurangkan jarak stop loss
  3. Sensitiviti parameter: prestasi strategi sensitif terhadap parameter seperti panjang EMA dan penurunan jumlah transaksi yang memerlukan pengoptimuman secara berkala
  4. Bergantung kepada keadaan pasaran: nisbah risiko untuk keuntungan yang mungkin sukar untuk dicapai dalam keadaan turun naik yang rendah
  5. Penetapan slippage: mungkin menghadapi slippage yang lebih besar dalam keadaan pantas, yang menjejaskan kesan perdagangan sebenar

Arah pengoptimuman strategi

  1. Memperkenalkan mekanisme penyesuaian kadar turun naik: penyesuaian sasaran henti rugi dan keuntungan mengikut pergerakan kadar turun naik pasaran
  2. Menambah klasifikasi keadaan pasaran: trend segmen dan menyusun pasaran, menggunakan parameter perdagangan yang berbeza
  3. Optimumkan penapis lalu lintas: pertimbangkan perubahan lalu lintas relatif dan bukan perbandingan purata sederhana
  4. Peningkatan mekanisme keluar: penambahan stop loss bergerak dan sebahagian daripada fungsi pengakhiran keuntungan
  5. Penapisan masa: mengelakkan dagangan pada tempoh masa tertentu, seperti tempoh turun naik yang tinggi sebelum dan selepas pasaran dibuka

ringkaskan

Ini adalah strategi pengesanan trend yang lengkap dan logik yang jelas, yang mengawal risiko dagangan dengan berkesan melalui penggunaan gabungan pelbagai petunjuk teknikal. Kelebihan utama strategi ini terletak pada pengaturan parameter yang fleksibel dan mekanisme pengurusan risiko yang baik, tetapi juga memerlukan peniaga untuk memperhatikan perubahan keadaan pasaran dan menyesuaikan parameter strategi tepat pada masanya. Dengan arah pengoptimuman yang disyorkan, kestabilan dan keuntungan strategi dijangka meningkat lebih lanjut.

Kod sumber strategi
//@version=5
strategy("Ahmad Ali Khan CPR Strategy", overlay=true, margin_long=100, margin_short=100)

// ———— Inputs ————
use_daily_cpr = input.bool(true, "Use Daily CPR Levels")
ema_length = input.int(20, "EMA Trend Filter Length")
show_week_open = input.bool(true, "Show Weekly Open Price")
enable_divergence = input.bool(true, "Enable RSI Divergence Check")

// ———— Daily CPR Calculation ————
daily_high = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
daily_low = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
daily_close = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)

pivot = (daily_high + daily_low + daily_close) / 3
bc = (daily_high + daily_low) / 2
tc = pivot + (pivot - bc)

// ———— Weekly Open Price ————
weekly_open = request.security(syminfo.tickerid, "W", open, lookahead=barmerge.lookahead_on)

// ———— Trend Analysis ————
ema_trend = ta.ema(close, ema_length)
market_phase = close > ema_trend ? "Bullish" : "Bearish"

// ———— Momentum Confirmation ————
rsi_length = 14
rsi = ta.rsi(close, rsi_length)
bullish_div = ta.valuewhen(ta.crossover(rsi, 30), low, 0) > ta.valuewhen(ta.crossover(rsi, 30), low, 1)
bearish_div = ta.valuewhen(ta.crossunder(rsi, 70), high, 0) < ta.valuewhen(ta.crossunder(rsi, 70), high, 1)

// ———— Plotting ————
// CPR Levels
plot(pivot, "Pivot", color=color.blue, linewidth=2)
plot(bc, "BC", color=color.red, linewidth=2)
plot(tc, "TC", color=color.green, linewidth=2)
fill(plot(bc), plot(tc), color=color.new(color.purple, 90))

// Weekly Open
plot(show_week_open ? weekly_open : na, "Weekly Open", color=color.orange, linewidth=2)

// EMA Trend
plot(ema_trend, "EMA Trend", color=color.white, linewidth=2)

// ———— Strategy Logic ————
long_condition = 
  close > tc and 
  market_phase == "Bullish" and 
  (not enable_divergence or bullish_div) and
  volume > ta.sma(volume, 20)

short_condition = 
  close < bc and 
  market_phase == "Bearish" and 
  (not enable_divergence or bearish_div) and
  volume > ta.sma(volume, 20)

// ———— Risk Management ————
cpr_width = tc - bc
stop_loss_long = bc - (0.5 * cpr_width)
take_profit_long = tc + (1.5 * cpr_width)
stop_loss_short = tc + (0.5 * cpr_width)
take_profit_short = bc - (1.5 * cpr_width)

// ———— Execute Orders ————
if long_condition
    strategy.entry("Long", strategy.long)
    strategy.exit("XL", "Long", stop=stop_loss_long, limit=take_profit_long)
    
if short_condition
    strategy.entry("Short", strategy.short)
    strategy.exit("XS", "Short", stop=stop_loss_short, limit=take_profit_short)

// ———— Signal Plotting ————
plotshape(long_condition, "Buy", shape.labelup, location.belowbar, color=color.green, text="BUY", textcolor=color.white)
plotshape(short_condition, "Sell", shape.labeldown, location.abovebar, color=color.red, text="SELL", textcolor=color.white)