3EMA dengan Strategi RSI Stokastik

Penulis:ChaoZhang, Tanggal: 2023-11-15 10:47:20
Tag:

img

Gambaran umum

Ini adalah strategi mengikuti tren yang menggabungkan beberapa indikator. Ini menggunakan tiga EMA dengan periode yang berbeda, Stochastic RSI dan ATR untuk mengidentifikasi arah tren dan menetapkan posisi. Ini menjadi panjang ketika EMA yang lebih cepat melintasi di atas EMA yang lebih lambat, dengan stop loss ditetapkan pada 3 kali nilai ATR terbaru dan mengambil keuntungan pada 2 kali ATR terbaru.

Prinsip

Strategi ini menggunakan tiga garis EMA - 8-, 14- dan 50-periode EMA, yang mewakili tren harga selama kerangka waktu yang berbeda.

Indikator Stochastic RSI menggabungkan RSI dan perhitungan Stochastic untuk mengidentifikasi kondisi overbought/oversold. Ketika garis Stochastic RSI K melintasi di atas garis D dari bawah, ini menunjukkan pasar sedang transisi dari oversold ke prospek bullish, memungkinkan posisi panjang.

ATR mewakili rentang volatilitas baru-baru ini. Strategi menggunakan 3 kali ATR sebagai jarak stop loss dan 2 kali ATR sebagai jarak take profit untuk mengunci keuntungan dan mengendalikan risiko.

Keuntungan

  • EMA menyaring kebisingan dalam data harga dan mengidentifikasi arah tren
  • Stochastic RSI mengidentifikasi peluang pembalikan
  • ATR secara dinamis melacak stop loss/take profit berdasarkan volatilitas pasar

Risiko

  • Beberapa indikator dapat menghasilkan sinyal yang bertentangan
  • Rasio stop loss/take profit tetap tidak dapat beradaptasi dengan perubahan kondisi pasar
  • Long jangka pendek yang rentan terhadap pembalikan

Optimasi dapat dilakukan dengan menyesuaikan periode EMA untuk mengoptimalkan sensitivitas. Membuat rasio ATR dapat disesuaikan memungkinkan kustomisasi berdasarkan kondisi pasar. Menambahkan indikator lain membantu memvalidasi sinyal dan menghindari kesalahan.

Peningkatan

  • Sesuaikan periode EMA untuk mengoptimalkan sensitivitas
  • Membuat rasio ATR disesuaikan
  • Tambahkan indikator lain untuk menghindari sinyal palsu

Kesimpulan

Strategi ini mempertimbangkan tren, tingkat overbought/oversold, dan rentang volatilitas untuk mengidentifikasi waktu masuk. EMA dan Stochastic RSI dikombinasikan secara efektif mengidentifikasi tren, sementara ATR stop loss / take profit dinamis membantu pengendalian risiko. Dengan penyesuaian parameter dan optimalisasi, strategi dapat menjadi sistem trend berikut yang dapat diandalkan.


/*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)

Lebih banyak