Momentum RSI berbilang tempoh dan Trend EMA Tigaan Mengikuti Strategi Komposit

RSI EMA
Tarikh penciptaan: 2024-11-12 15:07:54 Akhirnya diubah suai: 2024-11-12 15:07:54
Salin: 0 Bilangan klik: 521
1
fokus pada
1617
Pengikut

Momentum RSI berbilang tempoh dan Trend EMA Tigaan Mengikuti Strategi Komposit

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan komposit yang menggabungkan penunjuk momentum RSI dan penunjuk trend EMA. Ia berjalan pada dua kitaran masa 1 minit dan 5 minit, membuat keputusan perdagangan melalui isyarat overbought dan oversold RSI dan penghakiman trend EMA tiga. Strategi ini merangkumi ciri-ciri pengesanan trend dan pengembalian nilai rata-rata, yang dapat menangkap peluang perdagangan dalam keadaan pasaran yang berbeza.

Prinsip Strategi

Strategi menggunakan EMA triple 21/50/200 hari sebagai penanda aras trend, dan digabungkan dengan RSI versi yang diperbaharui (dihitung dengan kaedah Chebyshev) untuk mengenal pasti keadaan pasaran yang lebih baik daripada yang lebih baik. Pada kitaran 1 minit, apabila RSI menembusi 94, buka shorting, jatuh pada kedudukan yang sama pada 4, dan menetapkan hentian jaminan ketika RSI kembali ke 50. Pada kitaran 5 minit, apabila harga menembusi EMA 200 hari dan bangkit kembali, buka lebih banyak, dan menetap pada masa RSI melebihi atau jatuh. Strategi untuk mengelakkan berulang masuk ke dalam pasaran melalui pembolehubah pengurusan kedudukan inLongPosition dan inPositionShort.

Kelebihan Strategik

  1. Analisis pelbagai kitaran masa meningkatkan kebolehpercayaan isyarat
  2. Kaedah ini boleh digunakan untuk mengkaji trend dan dinamika.
  3. Mempunyai mekanisme penangguhan kerugian dan kawalan risiko
  4. Dengan menggunakan kaedah pengiraan RSI yang lebih baik, isyarat lebih tepat
  5. Mengelakkan transaksi berulang melalui pengurusan kedudukan
  6. Keupayaan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza

Risiko Strategik

  1. Transaksi yang kerap boleh menyebabkan bayaran yang lebih tinggi
  2. Kemungkinan sering mencetuskan hentian dalam pasaran yang bergolak
  3. Indeks RSI mungkin menghasilkan isyarat palsu dalam keadaan pasaran tertentu
  4. Strategi berbilang kitaran mungkin terlewat dalam pengesahan isyarat
  5. Sinyal silang EMA mungkin mengelirukan pasaran yang bergolak

Arah pengoptimuman strategi

  1. Memperkenalkan penapis kadar lonjakan untuk menyesuaikan parameter semasa lonjakan tinggi
  2. Meningkatkan mekanisme pengesahan jumlah transaksi
  3. Mengoptimumkan RSI, pertimbangan untuk perubahan dinamik
  4. Tambah lebih banyak petunjuk teknikal untuk disahkan silang
  5. Memperkenalkan mekanisme parameter penyesuaian
  6. Membangunkan mekanisme penangguhan kerugian yang lebih halus

ringkaskan

Strategi ini meningkatkan kestabilan dan kebolehpercayaan dagangan dengan menggabungkan beberapa petunjuk teknikal dan analisis kitaran masa berganda. Walaupun terdapat risiko tertentu, risiko dapat dikawal dengan berkesan melalui pengurusan kedudukan yang munasabah dan mekanisme hentikan kerugian.

Kod sumber strategi
/*backtest
start: 2023-11-12 00:00:00
end: 2024-07-10 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined RSI Primed and 3 EMA Strategy", overlay=true)

// Input for EMA lengths
emaLength1 = input(21, title="EMA Length 1")
emaLength2 = input(50, title="EMA Length 2")
emaLength3 = input(200, title="EMA Length 3")

// Input for RSI settings
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(94, title="RSI Overbought Level")
rsiNeutral = input(50, title="RSI Neutral Level")
rsiOversold = input(4, title="RSI Oversold Level")

// Calculate EMAs
ema1 = ta.ema(close, emaLength1)
ema2 = ta.ema(close, emaLength2)
ema3 = ta.ema(close, emaLength3)

// Calculate RSI using Chebyshev method from RSI Primed
rsi(source) =>
    up = math.max(ta.change(source), 0)
    down = -math.min(ta.change(source), 0)
    rs = up / down
    rsiValue = down == 0 ? 100 : 100 - (100 / (1 + rs))
    rsiValue

rsiValue = rsi(close)

// Plot EMAs
plot(ema1, color=color.red, title="EMA 21")
plot(ema2, color=color.white, title="EMA 50")
plot(ema3, color=color.blue, title="EMA 200")

// Plot RSI for visual reference
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiNeutral, "Neutral", color=color.gray)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsiValue, color=color.blue, title="RSI")

// Trading logic with position management
var bool inPositionShort = false
var bool inPositionLong = false

// Trading logic for 1-minute timeframe
if (rsiValue > rsiOverbought and not inPositionShort)
    strategy.entry("Sell", strategy.short)
    inPositionShort := true

if (rsiValue < rsiOversold and inPositionShort)
    strategy.close("Sell")
    inPositionShort := false

if (ta.crossover(rsiValue, rsiNeutral) and inPositionShort)
    strategy.exit("Break Even", "Sell", stop=close)

// Trading logic for 5-minute timeframe
var float lastBearishClose = na

if (close < ema3 and close[1] >= ema3) // Check if the current close is below EMA200
    lastBearishClose := close

if (not na(lastBearishClose) and close > lastBearishClose and not inPositionLong)
    strategy.entry("Buy", strategy.long)
    inPositionLong := true

if (rsiValue > rsiOverbought and inPositionLong)
    strategy.close("Buy")
    inPositionLong := false

if (ta.crossunder(rsiValue, rsiNeutral) and inPositionLong)
    strategy.exit("Break Even", "Buy", stop=close)

lastBearishClose := na // Reset after trade execution