Menggabungkan pelacakan tren multi-indikator dan strategi peringatan guncangan

SMA RSI ADX ATR STOCH
Tanggal Pembuatan: 2025-02-18 14:54:47 Akhirnya memodifikasi: 2025-02-18 14:54:47
menyalin: 0 Jumlah klik: 343
1
fokus pada
1617
Pengikut

Menggabungkan pelacakan tren multi-indikator dan strategi peringatan guncangan

Ringkasan

Strategi ini adalah sistem perdagangan yang didasarkan pada beberapa indikator teknis, yang menggabungkan keuntungan dari trend tracking dan indikator oscillator. Logika inti adalah menilai arah tren melalui garis rata-rata SMA, mengkonfirmasi kekuatan tren dengan ADX, kemudian menggunakan RSI acak untuk menemukan titik masuk terbaik di arah tren, dan menggunakan tracking stop loss untuk melindungi keuntungan. Strategi ini cocok untuk perdagangan dalam periode waktu 5 menit, dan dapat secara efektif menangkap peluang tren utama di pasar.

Prinsip Strategi

Strategi ini bekerja seperti berikut:

  1. Penghakiman tren: menggunakan SMA20 dan SMA200 untuk menentukan arah tren, melewati garis lambat pada garis cepat dianggap sebagai tren multihead, sebaliknya sebagai tren kosong
  2. Kekuatan tren dikonfirmasi: ADX lebih besar dari 20 menunjukkan tren berkembang penuh, menghindari perdagangan di pasar konsolidasi
  3. Waktu masuk: Setelah mengkonfirmasi tren, gunakan RSI acak untuk mencari peluang overbought dan oversold, cari peluang overdo saat RSI di bawah 30, dan cari peluang shorting saat RSI di atas 70
  4. Manajemen Posisi: Menggunakan mekanisme perdagangan reverse untuk secara otomatis menutup posisi dan membuka kembali posisi jika tren berubah
  5. Pengendalian risiko: Menggunakan tracking stop loss ((40 poin, 5 langkah panjang) untuk mengunci keuntungan, dan mengatur 1 K-line re-entry delay untuk menghindari sinyal palsu

Keunggulan Strategis

  1. Analisis multi-dimensi: meningkatkan keandalan perdagangan dengan mengkonfirmasi sinyal perdagangan dari berbagai sudut dengan menggabungkan garis rata-rata, ADX, dan RSI acak
  2. Adaptif: Strategi dapat secara otomatis menyesuaikan diri dengan kondisi pasar, menemukan peluang perdagangan di pasar yang sedang tren dan bergolak
  3. Manajemen risiko yang baik: Menggunakan mekanisme tracking stop loss untuk menjaga profit tetap berjalan
  4. Berpartisipasi terus menerus dalam pasar: dengan mekanisme reverse trade, pastikan untuk selalu mengikuti tren pasar utama
  5. Parameter yang dapat disesuaikan: Strategi menyediakan beberapa parameter yang dapat disesuaikan untuk memudahkan optimasi sesuai dengan kondisi pasar yang berbeda

Risiko Strategis

  1. Risiko overtrading: sering berbalik dapat menyebabkan biaya biaya terlalu tinggi
  2. Risiko terobosan palsu: sinyal terobosan palsu yang sering terjadi pada saat pasar bergejolak
  3. Risiko tergelincir: mungkin menghadapi biaya tergelincir yang lebih besar pada siklus 5 menit
  4. Risiko keterlambatan tren: sistem linier sendiri memiliki keterlambatan dan mungkin melewatkan beberapa titik balik penting
  5. Sensitivitas parameter: Efek kebijakan sangat sensitif terhadap pengaturan parameter dan perlu terus dioptimalkan

Arah optimasi strategi

  1. Pengenalan indikator lalu lintas: dapat meningkatkan akurasi penilaian tren dengan menambahkan analisis lalu lintas
  2. Optimalkan waktu masuk: Pertimbangkan untuk menambahkan analisis bentuk harga, seperti bentuk filter, untuk meningkatkan akurasi masuk
  3. Perbaikan mekanisme stop-loss: dapat digabungkan dengan ATR untuk menyesuaikan jarak stop-loss secara dinamis, sehingga lebih mudah beradaptasi
  4. Tambahkan waktu penyaringan: Tambahkan waktu penyaringan untuk menghindari periode likuiditas rendah
  5. Mengembangkan parameter yang dapat beradaptasi sendiri: Sistem parameter yang dapat disesuaikan secara otomatis dengan fluktuasi pasar

Meringkaskan

Strategi ini membangun sistem perdagangan yang komprehensif dengan menggabungkan beberapa indikator teknis klasik. Strategi ini mampu menangkap tren utama, mencari titik masuk terbaik dalam tren, dan memiliki mekanisme manajemen risiko yang lengkap. Meskipun ada beberapa risiko yang melekat, strategi ini diharapkan untuk mempertahankan kinerja yang stabil dalam berbagai lingkungan pasar melalui optimasi berkelanjutan dan penyesuaian parameter yang halus.

Kode Sumber Strategi
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("XAU/USD 5M SMA + Stochastic RSI + ADX Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// === Входные параметры ===
sma_fast_length = input(20, title="SMA Fast Period")  
sma_slow_length = input(200, title="SMA Slow Period")  
stoch_k_length = input(14, title="Stochastic RSI K Length")
stoch_d_length = input(3, title="Stochastic RSI D Length")
adx_length = input(10, title="ADX Period")  
adx_smoothing = input(10, title="ADX Smoothing Period")
atr_length = input(14, title="ATR Period")

// === Уровни фильтрации ===
adx_min_trend = input(20, title="ADX Minimum Trend Strength")  // Было 25 → уменьшено до 20
stoch_buy_level = input(30, title="Stoch RSI Buy Level")  // Было 20 → увеличено для входов
stoch_sell_level = input(70, title="Stoch RSI Sell Level")  // Было 80 → снижено для входов

// === Трейлинг-стоп ===
use_trailing_stop = input(true, title="Enable Trailing Stop")
trailing_stop_pips = input(40, title="Trailing Stop (Pips)")  // Было 50 → уменьшено для активной торговли
trailing_step_pips = input(5, title="Trailing Step (Pips)")

// === Управление позициями ===
entry_delay = input(1, title="Bars Delay Before Re-Entry")  // Было 2 → уменьшено до 1

// === Расчёт индикаторов ===
sma_fast = ta.sma(close, sma_fast_length)
sma_slow = ta.sma(close, sma_slow_length)
[diPlus, diMinus, adx_value] = ta.dmi(adx_length, adx_smoothing)
atr_value = ta.atr(atr_length)

// === Stochastic RSI ===
stoch_rsi_k = ta.stoch(close, stoch_k_length, stoch_d_length, stoch_d_length)
stoch_rsi_d = ta.sma(stoch_rsi_k, stoch_d_length)

// === Фильтр волатильности (Убран, если мешает входам) ===
// atr_threshold = ta.sma(atr_value, 20)
// volatility_ok = atr_value > atr_threshold  // Комментируем, если ATR слишком строгий

// === Пересечения ===
sma_crossover = ta.crossover(sma_fast, sma_slow)
sma_crossunder = ta.crossunder(sma_fast, sma_slow)
stoch_rsi_crossover = ta.crossover(stoch_rsi_k, stoch_rsi_d)
stoch_rsi_crossunder = ta.crossunder(stoch_rsi_k, stoch_rsi_d)

// === Условия входа ===
longCondition = sma_crossover and adx_value > adx_min_trend and stoch_rsi_crossover and stoch_rsi_k < stoch_buy_level
shortCondition = sma_crossunder and adx_value > adx_min_trend and stoch_rsi_crossunder and stoch_rsi_k > stoch_sell_level

// === Исправленный таймер на повторные входы ===
barsSinceExit = ta.barssince(strategy.position_size == 0)
canReenter = not na(barsSinceExit) and barsSinceExit > entry_delay

// === Переворот позиции (исправлен) ===
if strategy.position_size > 0 and shortCondition and canReenter
    strategy.close("BUY")
    strategy.entry("SELL", strategy.short)

if strategy.position_size < 0 and longCondition and canReenter
    strategy.close("SELL")
    strategy.entry("BUY", strategy.long)

// === Открытие позиций ===
if strategy.position_size == 0 and longCondition
    strategy.entry("BUY", strategy.long)

if strategy.position_size == 0 and shortCondition
    strategy.entry("SELL", strategy.short)

// === Трейлинг-стоп (работает корректно) ===
if use_trailing_stop
    strategy.exit("Exit Long", from_entry="BUY", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)
    strategy.exit("Exit Short", from_entry="SELL", trail_points=trailing_stop_pips, trail_offset=trailing_step_pips)

// === Визуализация ===
plot(sma_fast, color=color.blue, title="SMA 20")
plot(sma_slow, color=color.red, title="SMA 200")
hline(stoch_buy_level, title="Stoch RSI Buy Level", color=color.blue)
hline(stoch_sell_level, title="Stoch RSI Sell Level", color=color.purple)
hline(adx_min_trend, title="ADX Min Trend Level", color=color.orange)