Strategi Perdagangan Kuantitatif Divergensi Tren Multi-Indikator

BB RSI STOCH MFI EMA SMA
Tanggal Pembuatan: 2025-02-08 16:08:01 Akhirnya memodifikasi: 2025-02-08 16:08:01
menyalin: 0 Jumlah klik: 420
1
fokus pada
1617
Pengikut

Strategi Perdagangan Kuantitatif Divergensi Tren Multi-Indikator

Ringkasan

Ini adalah strategi perdagangan untuk melacak tren dan menyimpang dari beberapa indikator teknis. Strategi ini menggunakan kombinasi Bollinger Bands, RSI, Stochastic, dan MFI untuk menangkap peluang overbought dan oversold di pasar dan meningkatkan keandalan sinyal perdagangan melalui konfirmasi lintas indikator.

Prinsip Strategi

Strategi ini menggunakan mekanisme penyaringan berlapis untuk mengkonfirmasi sinyal transaksi:

  1. Menggunakan Brin Band ((20,2)) sebagai referensi untuk zona fluktuasi harga, untuk memicu preselection sinyal beli ketika harga menembus Brin Band.
  2. RSI ((3)) diatur untuk overbought dan oversold band ((85,15), dan dikonfirmasi oversold ketika RSI naik ke bawah 15.
  3. Indikator acak ((10,3) disetel ke ((85,15), dan lebih lanjut dikonfirmasi oversold ketika garis K menembus 15 ke atas.
  4. 10 siklus EMA MFI digunakan untuk mengkonfirmasi aliran dana, dan tren naik mendukung pembelian. Kondisi pembelian perlu dipenuhi secara bersamaan: harga menembus tren turun Brin, RSI menembus oversold, indikator acak menembus oversold, dan tren MFI ke atas. Kondisi jual adalah sebaliknya: harga menembus Bollinger Bands, RSI menembus overbought, indikator acak menembus overbought.

Keunggulan Strategis

  1. Verifikasi silang beberapa indikator teknis, mengurangi sinyal palsu secara signifikan.
  2. Kombinasi indikator tren dan momentum, dapat menangkap tren dan memperingatkan pembalikan.
  3. Menggunakan RSI cepat ((3 siklus) untuk meningkatkan waktu masuk.
  4. Mengkonfirmasi aliran dana melalui MFI, meningkatkan keandalan transaksi.
  5. Menggunakan pita Brin sebagai referensi fluktuasi untuk menyesuaikan diri dengan kondisi pasar yang berbeda.

Risiko Strategis

  1. Beberapa indikator dapat menyebabkan kelambatan sinyal dan kehilangan peluang masuk terbaik.
  2. Perdagangan yang sering terjadi di pasar yang bergejolak.
  3. RSI cepat mungkin lebih sensitif terhadap suara.
  4. Jumlah sampel yang lebih besar diperlukan untuk memverifikasi stabilitas strategi. Langkah-langkah pengendalian risiko yang disarankan adalah sebagai berikut:
  • Tetapkan Stop Loss Stop
  • Mengontrol skala transaksi tunggal
  • Penyesuaian parameter dalam berbagai kondisi pasar
  • Menyaring transaksi dengan lebih banyak fitur pasar

Arah optimasi strategi

  1. Parameter penyesuaian indikator dinamis:
  • Beradaptasi dengan volatilitas pasar untuk menyesuaikan parameter Brinks
  • Pengaturan siklus RSI dan indikator acak berdasarkan siklus pasar
  1. Tambahkan filter lingkungan pasar:
  • Menambahkan indikator kekuatan tren
  • Mempertimbangkan perubahan volume
  1. Meningkatkan manajemen risiko:
  • Membuat Stop Loss Dinamis
  • Peningkatan batas waktu memegang posisi
  1. Optimasi Sinyal:
  • Tambahkan kondisi konfirmasi tren
  • Optimalkan bobot indikator

Meringkaskan

Strategi ini bekerja sama dengan beberapa indikator untuk membangun sistem perdagangan yang relatif utuh. Keunggulan inti dari strategi ini adalah meningkatkan keandalan sinyal melalui verifikasi silang dari berbagai jenis indikator, sambil mempertimbangkan beberapa karakteristik pasar seperti tren, dinamika, dan aliran dana. Meskipun ada risiko keterbelakangan tertentu, strategi ini memiliki potensi penerapan yang baik melalui optimasi parameter yang masuk akal dan langkah-langkah manajemen risiko.

Kode Sumber Strategi
/*backtest
start: 2022-02-09 00:00:00
end: 2025-02-06 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ahmetkaratas4238

//@version=5
strategy("İzmir Stratejisi", overlay=true)

// **Bollinger Bantları Hesaplamaları**
bbLength = 20
bbMult = 2.0
basis = ta.sma(close, bbLength)
dev = bbMult * ta.stdev(close, bbLength)
upperBand = basis + dev
lowerBand = basis - dev

// **RSI (3,85,15) Hesaplaması**
rsiLength = 3
rsiUpper = 85
rsiLower = 15
rsi = ta.rsi(close, rsiLength)

// **Stochastic (10,3,85,15) Hesaplaması**
stochLength = 10
smoothK = 3
smoothD = 3
stochUpper = 85
stochLower = 15
k = ta.sma(ta.stoch(close, high, low, stochLength), smoothK)
d = ta.sma(k, smoothD)

// **Money Flow Index (MFI) Hesaplaması**
mfiLength = 14
mfi = ta.mfi(close, mfiLength)  // Hata düzeltildi: Artık yalnızca periyot alıyor
mfiTrendUp = ta.ema(mfi, 10) > ta.ema(mfi[1], 10)  // MFI yükseliş trendi
mfiTrendDown = ta.ema(mfi, 10) < ta.ema(mfi[1], 10) // MFI düşüş trendi

// **ALIM ŞARTLARI**
var bbBreakdown=false
var rsiBreakout=false
var stochBreakout=false
bbBreakdown := ta.crossunder(close,lowerBand)?true:bbBreakdown  // Fiyat BB altına sarktı mı?
rsiBreakout := ta.crossover(rsi, rsiLower)?true:rsiBreakout  // RSI 15 seviyesini yukarı kırdı mı?
stochBreakout := ta.crossover(k, stochLower)?true:stochBreakout  // Stochastic alt bandı yukarı kırdı mı?
buyCondition = bbBreakdown and rsiBreakout and stochBreakout and mfiTrendUp

// **SATIM ŞARTLARI**
var bbBreakup=false
var rsiBreakdown=false
var stochBreakdown=false
bbBreakup := ta.crossunder(close, upperBand)?true:bbBreakup  // Fiyat BB üst bandından aşağı kırdı mı?
rsiBreakdown := ta.crossunder(rsi, rsiUpper)?true:rsiBreakdown  // RSI 85 seviyesini aşağı kırdı mı?
stochBreakdown := ta.crossunder(k, stochUpper)?true:stochBreakdown  // Stochastic üst bandı aşağı kırdı mı?
sellCondition = bbBreakup and rsiBreakdown// and stochBreakdown and mfiTrendDown

if ta.crossunder(close,lowerBand)
    bbBreakup:=false
if ta.crossover(rsi, rsiLower)
    rsiBreakdown:=false
if ta.crossover(k, stochLower)
    stochBreakdown:=false

if ta.crossunder(close, upperBand)
    bbBreakdown:=false
if ta.crossunder(rsi, rsiUpper)
    rsiBreakout:=false
if ta.crossunder(k, stochUpper)
    stochBreakout:=false

// **Alım İşlemi Aç**
if buyCondition
    strategy.entry("Long", strategy.long)

// **Satım İşlemi Yap (Pozisyon Kapat)**
if sellCondition
    strategy.close("Long")

// **Bollinger Bantlarını Göster**
plot(upperBand, title="Üst BB", color=color.red)
plot(lowerBand, title="Alt BB", color=color.green)
plot(basis, title="Orta BB", color=color.blue)

// **Alım ve Satım Sinyallerini İşaretle**
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="AL")
plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="SAT")