Strategi dagangan pelarian ketinggian candlestick dengan purata bergerak berbilang, RSI dan sisihan piawai keluar


Tarikh penciptaan: 2024-03-28 16:13:45 Akhirnya diubah suai: 2024-03-28 16:13:45
Salin: 0 Bilangan klik: 671
1
fokus pada
1617
Pengikut

Strategi dagangan pelarian ketinggian candlestick dengan purata bergerak berbilang, RSI dan sisihan piawai keluar

Gambaran Keseluruhan Strategi

Strategi ini menggabungkan beberapa indeks moving averages (EMA), relative strength index (RSI) dan standard deviation based exit conditions untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Ia menggunakan EMA jangka pendek (6, 8, 12 hari), jangka menengah (5, 55) dan jangka panjang (150-200, 250 hari) untuk menganalisis arah dan kekuatan trend pasaran. RSI menggunakan buy (30) dan sell (70), yang boleh dikonfigurasi, untuk menilai momentum dan mengenal pasti keadaan overbought atau oversold.

Prinsip Strategi

  1. Mengira EMA untuk beberapa kitaran ((6, 8, 12, 55, 100, 150, 200) sebagai rujukan visual untuk menilai trend pasaran.
  2. Berdasarkan bilangan tali akar yang dimasukkan oleh pengguna ((3-4), kira harga tertinggi dan terendah bagi N tali akar terkini.
  3. Syarat pembelian: Harga penutupan semasa adalah lebih tinggi daripada harga tertinggi N yang terakhir dan lebih tinggi daripada penapis EMA ((jika diaktifkan)).
  4. Syarat Jual: Harga penutupan semasa adalah lebih rendah daripada harga terendah N yang terakhir dan lebih rendah daripada penapis EMA ((jika diaktifkan)).
  5. Keadaan keluar untuk kedudukan panjang: harga penutupan semasa adalah di bawah EMA 12 hari + 0.5 kali perbezaan standard, atau di bawah EMA 12 hari.
  6. Syarat keluar untuk kedudukan pendek: harga penutupan semasa lebih tinggi daripada EMA 12 hari - 0.5 kali perbezaan standard, atau lebih tinggi daripada EMA 12 hari.
  7. Menggunakan RSI sebagai penunjuk tambahan, kitaran lalai adalah 14, paras tebang jual adalah 30, paras tebang beli adalah 70.

Kelebihan Strategik

  1. Menggabungkan dua dimensi trend-tracking (multiple EMA) dan momentum (RSI), ia memberikan perspektif analisis pasaran yang lebih menyeluruh.
  2. Mekanisme penyingkiran yang unik berdasarkan perbezaan piawaian, yang memberikan keseimbangan antara melindungi keuntungan dan mengawal risiko.
  3. Kod mempunyai tahap modulasi yang tinggi, parameter utama boleh dikonfigurasi oleh pengguna, dan fleksibiliti yang tinggi.
  4. Berlaku untuk pelbagai jenis dan tempoh masa, terutamanya dagangan saham dan Bitcoin di Sun Line.

Analisis risiko

  1. Dalam pasaran yang bergolak atau di awal trend berbalik, isyarat palsu sering muncul, menyebabkan kerugian berturut-turut.
  2. Parameter lalai tidak berfungsi untuk semua keadaan pasaran, perlu dioptimumkan dengan pengulangan.
  3. Perdagangan dengan strategi ini adalah berisiko tinggi dan disyorkan untuk digunakan bersama dengan petunjuk lain untuk menyokong tahap rintangan.
  4. Perkembangan yang disebabkan oleh peristiwa-peristiwa besar yang berlaku secara tiba-tiba telah menyebabkan tindak balas yang perlahan.

Arah pengoptimuman

  1. Mengoptimumkan parameter EMA dan RSI: Mengambil langkah-langkah kecil dari pelbagai kombinasi parameter untuk mencari julat parameter terbaik berdasarkan jenis, kitaran dan ciri-ciri pasaran.
  2. Menambah mekanisme hentian hentian: merujuk kepada indikator kadar turun naik seperti ATR, menetapkan hentian dan hentian yang munasabah, mengawal risiko perdagangan tunggal.
  3. Memperkenalkan pengurusan kedudukan: boleh menyesuaikan saiz kedudukan mengikut kekuatan trend (seperti ADX) atau jarak dari titik rintangan sokongan utama.
  4. Penggunaan dengan gabungan petunjuk teknikal lain: seperti Brinband, MACD, persilangan rata-rata, dan lain-lain, meningkatkan kebolehpercayaan isyarat kedudukan terbuka.
  5. Pengoptimuman keadaan pasaran: kombinasi parameter untuk mengoptimumkan keadaan pasaran yang berbeza seperti trend, gegaran, dan perubahan.

ringkaskan

Artikel ini mengemukakan strategi perdagangan yang sangat menembusi rantai berdasarkan pelbagai rata-rata bergerak, RSI dan pintu keluar standard. Strategi ini menganalisis pasaran dari dua dimensi trend dan momentum, sambil menggunakan mekanisme pintu keluar standard yang unik, sambil mengawal risiko sambil menangkap peluang trend.

Kod sumber strategi
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Candle Height Breakout with Configurable Exit and Signal Control", shorttitle="CHB Single Signal", overlay=true)

// Input parameters for EMA filter and its length
useEmaFilter = input.bool(true, "Use EMA Filter", group="Entry Conditions")
emaFilterLength = input.int(55, "EMA Filter Length", minval=1, group="Entry Conditions")
candleCount = input.int(4, "SamG Configurable Candle Count for Entry", minval=3, maxval=4, step=1, group="Entry Conditions")
exitEmaLength = input.int(12, "Exit EMA Length", minval=1, group="Exit Conditions", defval=12)
exitStdDevMultiplier = input.float(0.5, "Exit Std Dev Multiplier", minval=0.1, maxval=2.0, step=0.1, group="Exit Conditions")

// State variables to track if we are in a long or short position
var bool inLong = false
var bool inShort = false

// Calculating EMAs with fixed periods for visual reference
ema6 = ta.ema(close, 6)
ema8 = ta.ema(close, 8)
ema12 = ta.ema(close, 12)
ema55 = ta.ema(close, 55)
ema100 = ta.ema(close, 100)
ema150 = ta.ema(close, 150)
ema200 = ta.ema(close, 200)
emaFilter = ta.ema(close, emaFilterLength)
exitEma = ta.ema(close, exitEmaLength)

// Plotting EMAs
plot(ema6, "EMA 6", color=color.red)
plot(ema8, "EMA 8", color=color.orange)
plot(ema12, "EMA 12", color=color.yellow)
plot(ema55, "EMA 55", color=color.green)
plot(ema100, "EMA 100", color=color.blue)
plot(ema150, "EMA 150", color=color.purple)
plot(ema200, "EMA 200", color=color.fuchsia)
plot(emaFilter, "EMA Filter", color=color.black)
plot(exitEma, "Exit EMA", color=color.gray)

// Calculating the highest and lowest of the last N candles based on user input
highestOfN = ta.highest(high[1], candleCount)
lowestOfN = ta.lowest(low[1], candleCount)

// Entry Conditions with EMA Filter
longEntryCondition = not inLong and not inShort and (close > highestOfN) and (not useEmaFilter or (useEmaFilter and close > emaFilter))
shortEntryCondition = not inLong and not inShort and (close < lowestOfN) and (not useEmaFilter or (useEmaFilter and close < emaFilter))

// Update position state on entry
if (longEntryCondition)
    strategy.entry("Buy", strategy.long, comment="B")
    inLong := true
    inShort := false

if (shortEntryCondition)
    strategy.entry("Sell", strategy.short, comment="S")
    inLong := false
    inShort := true

// Exit Conditions based on configurable EMA and Std Dev Multiplier
smaForExit = ta.sma(close, exitEmaLength)
upperExitBand = smaForExit + exitStdDevMultiplier * ta.stdev(close, exitEmaLength)
lowerExitBand = smaForExit - exitStdDevMultiplier * ta.stdev(close, exitEmaLength)

exitConditionLong = inLong and (close < upperExitBand or close < exitEma)
exitConditionShort = inShort and (close > lowerExitBand or close > exitEma)

// Strategy exits
if (exitConditionLong)
    strategy.close("Buy", comment="Exit")
    inLong := false

if (exitConditionShort)
    strategy.close("Sell", comment="Exit")
    inShort := false

// Visualizing entry and exit points
plotshape(series=longEntryCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="Buy Signal", text="B")
plotshape(series=shortEntryCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="Sell Signal", text="S")