Strategi pelacakan tren kolaboratif multi-indikator dan sistem stop loss dinamis

ATR EMA PVT RSI
Tanggal Pembuatan: 2024-12-13 11:45:19 Akhirnya memodifikasi: 2024-12-13 11:45:19
menyalin: 0 Jumlah klik: 357
1
fokus pada
1617
Pengikut

Strategi pelacakan tren kolaboratif multi-indikator dan sistem stop loss dinamis

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren yang menggabungkan beberapa indikator teknis. Ini menggabungkan sinyal pasar multi-dimensi seperti moving average (EMA), volatility tracking (ATR), volume trending (PVT), dan oscillator dinamis (Ninja) untuk meningkatkan akurasi perdagangan melalui sinkronisasi sinyal. Strategi ini menggunakan mekanisme stop loss dinamis dan mengendalikan risiko dengan ketat saat melacak tren.

Prinsip Strategi

Strategi ini didasarkan pada empat pilar utama:

  1. Menggunakan 200 siklus EMA sebagai dasar untuk menilai tren utama, memisahkan pasar menjadi dua kondisi: overhead dan overhead kosong
  2. Sistem Chandelier Exit berbasis ATR untuk menentukan titik balik tren dengan melacak harga tertinggi dan terendah dan menggabungkan volatilitas
  3. Indikator PVT digunakan untuk mengkonfirmasi efektivitas tren harga dengan menggabungkan perubahan harga dengan volume transaksi
  4. Oscillator Ninja menangkap perubahan dinamika pasar dengan membandingkan garis rata-rata jangka pendek dan jangka menengah

Untuk menghasilkan sinyal perdagangan, perlu memenuhi persyaratan berikut:

  • Lakukan lebih banyak: harga berada di atas 200 EMA dan Chandelier Exit menunjukkan sinyal beli, sementara PVT atau Ninja mengkonfirmasi
  • Tangan kosong: harga berada di bawah 200 EMA dan Chandelier Exit muncul sinyal jual, sementara PVT atau Ninja mengkonfirmasi

Keunggulan Strategis

  1. Multi-Indikator Synergistically Confirmed, Sangat Menurunkan Risiko False Breakthroughs
  2. Menggabungkan informasi pasar dalam berbagai dimensi, seperti tren, volatilitas, volume transaksi, dan momentum
  3. Menggunakan mekanisme stop loss yang dinamis, dapat secara otomatis menyesuaikan posisi stop loss sesuai dengan fluktuasi pasar
  4. Aturan transaksi yang sistematis, mengurangi gangguan dari penilaian subjektif
  5. Memiliki mekanisme pengendalian risiko yang baik, dengan stop loss yang jelas untuk setiap transaksi

Risiko Strategis

  1. Sinyal palsu sering terjadi di pasar yang bergejolak
  2. Beberapa mekanisme verifikasi mungkin menyebabkan sedikit penundaan waktu masuk.
  3. Posisi stop loss mungkin relatif longgar ketika pasar berbalik dengan cepat
  4. Optimasi parameter mungkin memiliki risiko over-fitting
  5. Perlindungan keuangan yang lebih besar diperlukan untuk menanggung penarikan

Arah optimasi strategi

  1. Memperkenalkan mekanisme identifikasi lingkungan pasar yang menggunakan kombinasi parameter yang berbeda dalam kondisi pasar yang berbeda
  2. Meningkatkan dimensi analisis volume transaksi, dan mengoptimalkan manajemen posisi
  3. Pertimbangkan untuk menambahkan mekanisme penyesuaian parameter dinamis berdasarkan volatilitas
  4. Mengoptimalkan distribusi berat antara beberapa indikator
  5. Memperkenalkan filter waktu untuk menghindari saat-saat ketika pasar bergejolak

Meringkaskan

Strategi ini membangun sistem perdagangan yang relatif lengkap dengan mekanisme stop loss dinamis dan sinkronisasi multi-indikator. Keunggulan inti dari strategi ini adalah mekanisme pengesahan sinyal multi-dimensi dan kontrol risiko yang ketat. Meskipun ada beberapa risiko keterlambatan dan sinyal palsu, strategi ini diharapkan untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar dengan pengoptimalan dan perbaikan berkelanjutan.

Kode Sumber Strategi
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Triple Indicator Strategy", shorttitle="TIS", overlay=true)

// --- Inputs ---
var string calcGroup = "Calculation Parameters"
atrLength = input.int(22, title="ATR Period", group=calcGroup)
atrMult = input.float(3.0, title="ATR Multiplier", step=0.1, group=calcGroup)
emaLength = input.int(200, title="EMA Length", group=calcGroup)

// --- ATR and EMA Calculations ---
atr = atrMult * ta.atr(atrLength)
ema200 = ta.ema(close, emaLength)

// --- Chandelier Exit Logic ---
longStop = ta.highest(high, atrLength) - atr
shortStop = ta.lowest(low, atrLength) + atr

var int dir = 1
dir := close > shortStop ? 1 : close < longStop ? -1 : dir

buySignal = dir == 1 and dir[1] == -1
sellSignal = dir == -1 and dir[1] == 1

// --- Price Volume Trend (PVT) ---
pvt = ta.cum((close - close[1]) / close[1] * volume)
pvtSignal = ta.ema(pvt, 21)
pvtBuy = ta.crossover(pvt, pvtSignal)
pvtSell = ta.crossunder(pvt, pvtSignal)

// --- Ninja Indicator ---
ninjaOsc = (ta.ema(close, 3) - ta.ema(close, 13)) / ta.ema(close, 13) * 100
ninjaSignal = ta.ema(ninjaOsc, 24)
ninjaBuy = ta.crossover(ninjaOsc, ninjaSignal)
ninjaSell = ta.crossunder(ninjaOsc, ninjaSignal)

// --- Strategy Conditions ---
longCondition = buySignal and close > ema200 and (pvtBuy or ninjaBuy)
shortCondition = sellSignal and close < ema200 and (pvtSell or ninjaSell)

if longCondition
    strategy.entry("Buy", strategy.long)
    strategy.exit("Exit Long", "Buy", stop=low - atr)

if shortCondition
    strategy.entry("Sell", strategy.short)
    strategy.exit("Exit Short", "Sell", stop=high + atr)

// --- Plotting ---
plot(ema200, title="EMA 200", color=color.blue, linewidth=2)
plotshape(buySignal, title="Chandelier Buy", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Chandelier Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// --- Labels for Buy/Sell with price ---
if buySignal
    label.new(bar_index, low, "Buy: " + str.tostring(close), color=color.green, style=label.style_label_up, yloc=yloc.belowbar, size=size.small)

if sellSignal
    label.new(bar_index, high, "Sell: " + str.tostring(close), color=color.red, style=label.style_label_down, yloc=yloc.abovebar, size=size.small)

// --- Alerts ---
alertcondition(longCondition, title="Buy Alert", message="Buy Signal Triggered!")
alertcondition(shortCondition, title="Sell Alert", message="Sell Signal Triggered!")