Triple EMA Stochastic RSI Crossover Strategy


Tarikh penciptaan: 2024-01-26 16:07:34 Akhirnya diubah suai: 2024-01-26 16:07:34
Salin: 0 Bilangan klik: 809
1
fokus pada
1617
Pengikut

Triple EMA Stochastic RSI Crossover Strategy

Gambaran keseluruhan

Triple EMA Random RSI Crossed Fork adalah strategi trend-following. Ia menggabungkan triple indeks Moving Average dan indeks Random Relative Weak untuk menentukan masa masuk dengan menggunakan tanda silang dua indeks.

Prinsip Strategi

Strategi ini berdasarkan logik berikut:

  1. EMA menilai trend tiga kali: garis 8 di atas, garis 14 di tengah, garis 50 di bawah membentuk trend multihead, sebaliknya membentuk trend kosong.

  2. Indikator RSI acak menilai persilangan: Garis K melintasi garis D dari arah bawah menghasilkan isyarat garpu emas, yang menunjukkan kekuatan masuk.

  3. Hanya buat banyak kerja, kepala kosong tidak akan berfikir.

Apabila triple EMA menunjukkan trend ke atas dan RSI acak muncul, lakukan lebih banyak. Atas dasar ini, atur stop loss dan garis stop untuk mengunci keuntungan.

Analisis kelebihan

Strategi ini, yang digabungkan dengan penilaian dua indikator, dapat mengunci trend dengan berkesan. Kelebihan utama adalah sebagai berikut:

  1. Triple EMA menyaring kebisingan jangka pendek dan mengunci trend garis panjang.

  2. RSI Goldfork secara rawak mengesahkan kekuatan masuk.

  3. ATR Smart Stop Loss Stop Stop, kunci keuntungan.

  4. Logik strategi mudah difahami dan dilaksanakan.

Analisis risiko

Risiko utama strategi ini ialah:

  1. Apabila EMA berganda menghasilkan beberapa kali garpu mati dalam gegaran, ia akan sering membuka dan membina kedudukan yang membawa risiko perdagangan. Ia boleh diselesaikan dengan mengoptimumkan parameter EMA atau menambah petunjuk penapis lain.

  2. Tidak ada peluang shorting. Hanya melakukan lebih banyak kehilangan peluang bouncing bawah. Anda boleh mempertimbangkan untuk menggunakan indikator seperti MACD untuk mencari peluang shorting dalam trend kosong.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Mengoptimumkan parameter EMA dan meningkatkan penilaian trend.

  2. Menambah penunjuk seperti MACD, menilai trend kosong, meningkatkan peluang untuk melakukan shorting.

  3. Meningkatkan penunjuk kadar turun naik, seperti ATR, dan memperbaiki penyetempatan stop loss.

  4. Mengelakkan penembusan palsu dengan menggunakan penunjuk jumlah dagangan.

  5. Menggunakan teknologi seperti pembelajaran mesin untuk mengoptimumkan parameter.

ringkaskan

Secara keseluruhannya, strategi silang RSI rawak EMA tiga berpasangan dengan penghakiman dua indikator, dapat menyaring goyah dengan berkesan, mengunci trend, dan merupakan strategi pemantauan trend yang mudah dan praktikal. Dengan terus mengoptimumkan parameter, meningkatkan penyaringan indikator, dan menggunakan teknologi canggih, prestasi strategi yang lebih baik dapat dicapai.

Kod sumber strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Stoch RSI Crossover Strat + EMA", shorttitle="Stoch RSI Cross + EMA Strat", overlay = true)

// Time Range
FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12)
FromDay=input(defval=1,title="FromDay",minval=1,maxval=31)
FromYear=input(defval=2020,title="FromYear",minval=2017)
ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12)
ToDay=input(defval=1,title="ToDay",minval=1,maxval=31)
ToYear=input(defval=9999,title="ToYear",minval=2017)
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>true

// See if this bar's time happened on/after start date
afterStartDate = time >= start and time<=finish?true:false

//STOCH RSI
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

//ATR
lengthATR = input(title="ATR Length", defval=14, minval=1)
atr = atr(lengthATR)

//MULTI EMA
emasrc = close, 
len1 = input(8, minval=1, title="EMA 1")
len2 = input(14, minval=1, title="EMA 2")
len3 = input(50, minval=1, title="EMA 3")

ema1 = ema(emasrc, len1)
ema2 = ema(emasrc, len2)
ema3 = ema(emasrc, len3)

col1 = color.lime
col2 = color.blue
col3 = color.orange

//EMA Plots
//plot(ema1, title="EMA 1", linewidth=1, color=col1)
//plot(ema2, title="EMA 2", linewidth=1, color=col2)
//plot(ema3, title="EMA 3", linewidth=1, color=col3)

crossup = k[0] > d[0] and k[1] <= d[1]
emapos = ema1 > ema2 and ema2 > ema3 and close > ema1
barbuy = crossup and emapos

//plotshape(crossup, style=shape.triangleup, location=location.belowbar, color=color.white)
plotshape(barbuy, style=shape.triangleup, location=location.belowbar, color=color.green)

longloss = sma(open, 1)
//plot(longloss, color=color.red)

//Buy and Sell Factors
profitfactor = input(title="Profitfactor", type=input.float, step=0.1, defval=2)
stopfactor = input(title="Stopfactor", type=input.float, step=0.1, defval=3)
bought = strategy.position_size[1] < strategy.position_size
longcondition = barbuy

if (longcondition) and (afterStartDate) and strategy.opentrades < 1
    strategy.entry("Long", strategy.long)

if (afterStartDate) and strategy.opentrades > 0
    barsbought = barssince(bought)
    profit_level = strategy.position_avg_price + (atr*profitfactor)
    stop_level = strategy.position_avg_price - (atr*stopfactor)
    strategy.exit("Take Profit/ Stop Loss", "Long", stop=stop_level[barsbought], limit=profit_level[barsbought])