Tiga silang EMA ditambah strategi RSI Stochastic


Tarikh penciptaan: 2023-11-15 10:47:20 Akhirnya diubah suai: 2023-11-15 10:47:20
Salin: 0 Bilangan klik: 954
1
fokus pada
1617
Pengikut

Tiga silang EMA ditambah strategi RSI Stochastic

Gambaran keseluruhan

Ini adalah strategi trend pengesanan yang menggabungkan pelbagai petunjuk. Ia menggunakan tiga EMA, RSI Stochastic dan ATR yang berbeza untuk mengenal pasti arah trend dan membina kedudukan pada masa yang sama.

Prinsip

Strategi ini menggunakan tiga garis purata EMA, iaitu EMA 8 kitaran, EMA 14 kitaran dan EMA 50 kitaran. Mereka masing-masing mewakili trend harga dalam tempoh masa yang berbeza. Apabila EMA 8 kitaran melalui EMA 14 kitaran, EMA 14 kitaran melalui EMA 50 kitaran, menunjukkan bahawa ia kini berada di peringkat permulaan trend.

Indikator RSI Stochastic yang menggabungkan RSI dan kaedah pengiraan Stochastic, dapat melihat fenomena overbought dan oversold. Apabila garis K dari RSI Stochastic melintasi garis D dari bawah, ini menunjukkan bahawa pasaran sedang beralih dari keadaan oversold ke bullish, anda boleh memilih untuk melakukan lebih banyak.

ATR mewakili julat turun naik yang terdekat. Strategi menggunakan 3 kali ATR sebagai jarak berhenti dan 2 kali sebagai jarak berhenti untuk mengunci keuntungan dan mengawal risiko.

Kelebihan

  • Menggunakan garis rata-rata EMA untuk menghapuskan sebahagian bunyi dalam data harga dan mengenal pasti arah trend
  • Stochastic RSI dapat melihat peluang untuk berbalik
  • ATR dinamik mengesan stop loss, yang boleh menetapkan jarak untung rugi yang munasabah berdasarkan turun naik pasaran

Risiko

  • Kombinasi pelbagai petunjuk mungkin menunjukkan isyarat yang salah
  • Peningkatan Stop Loss yang tetap tidak dapat menyesuaikan diri dengan perubahan pasaran
  • Bagaimana kitaran pendek boleh mempengaruhi perubahan

Sensitiviti penunjuk boleh dioptimumkan dengan menyesuaikan parameter kitaran EMA. Anda juga boleh membuat pengganda stop loss ATR boleh disesuaikan, menetapkan parameter yang sesuai mengikut keadaan pasaran. Selain itu, anda boleh mempertimbangkan untuk memasukkan penilaian tambahan indikator lain, untuk mengelakkan isyarat salah.

Arah pengoptimuman

  • Sesuaikan parameter kitaran EMA untuk mengoptimumkan sensitiviti penunjuk
  • Membolehkan ATR untuk menyesuaikan pengganda stop loss
  • Menambah penilaian lain untuk mengelakkan isyarat yang salah

ringkaskan

Strategi ini mengambil kira arah trend, fenomena overbought dan oversold dan jangkauan turun naik untuk mengenal pasti masa masuk. Garis rata EMA dan Stochastic RSI digunakan bersama-sama untuk mengenal pasti trend dengan berkesan, dan ATR dinamik menjejaki stop loss untuk membantu mengawal risiko. Dengan penyesuaian dan pengoptimuman parameter, strategi ini boleh menjadi sistem pemantauan trend yang boleh dipercayai.

Kod sumber strategi
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
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/
// © FreddieChopin
 
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
 
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
 
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
 
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", 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
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
 
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
 
float stopLoss = na
float takeProfit = na
 
if (strategy.position_size > 0)
    if (na(stopLoss[1]))
        stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
    else
        stopLoss := stopLoss[1]
    if (na(takeProfit[1]))
        takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
    else
        takeProfit := takeProfit[1]
 
    strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
 
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)