Strategi crossover tiga EMA plus Stochastic RSI


Tanggal Pembuatan: 2023-11-15 10:47:20 Akhirnya memodifikasi: 2023-11-15 10:47:20
menyalin: 0 Jumlah klik: 954
1
fokus pada
1617
Pengikut

Strategi crossover tiga EMA plus Stochastic RSI

Ringkasan

Ini adalah strategi pelacakan tren yang menggabungkan beberapa indikator. Ini menggunakan tiga periode EMA, Stochastic RSI, dan ATR yang berbeda untuk mengidentifikasi arah tren dan membangun posisi secara bersamaan.

Prinsip

Strategi ini menggunakan tiga garis rata-rata EMA, yaitu EMA 8 periode, EMA 14 periode, dan EMA 50 periode. Mereka masing-masing mewakili tren harga dalam periode waktu yang berbeda.

Indikator RSI Stochastic menggabungkan RSI dan metode stochastic untuk menemukan overbought dan oversold. Ketika garis K dari RSI Stochastic melewati garis D dari bawah, menunjukkan bahwa pasar sedang beralih dari oversold ke bullish, Anda dapat melakukan lebih banyak.

ATR mewakili rentang fluktuasi terdekat. Strategi menggunakan 3 kali ATR sebagai stop loss dan 2 kali stop loss untuk mengunci keuntungan dan mengendalikan risiko.

Keunggulan

  • Menggunakan garis rata-rata EMA dapat menghapus sebagian dari kebisingan dalam data harga dan mengidentifikasi arah tren
  • Stochastic RSI dapat menemukan peluang untuk berbalik
  • ATR Dynamic Tracking Stop Loss Stop, yang dapat mengatur jarak untung-rugi yang wajar sesuai dengan volatilitas pasar

Risiko

  • Kombinasi beberapa indikator dapat memberikan sinyal yang salah
  • Stop loss multiplier tetap tidak dapat beradaptasi dengan perubahan pasar
  • Siklus pendek sangat rentan terhadap perubahan.

Sensitivitas indikator dapat dioptimalkan dengan menyesuaikan parameter siklus EMA. Anda juga dapat membuat stop loss stop loss ATR dapat disesuaikan, sesuai dengan kondisi pasar untuk mengatur parameter yang sesuai. Selain itu, Anda dapat mempertimbangkan untuk menambahkan indikator lain untuk penilaian tambahan, untuk menghindari sinyal yang salah.

Arah optimasi

  • Menyesuaikan parameter siklus EMA untuk mengoptimalkan sensitivitas indikator
  • Mengaktifkan ATR Stop Loss Stop Stop Multiplier
  • Menambahkan penilaian indikator lainnya untuk menghindari sinyal yang salah

Meringkaskan

Strategi ini secara komprehensif mempertimbangkan arah tren, fenomena overbought dan oversold dan rentang fluktuasi untuk mengidentifikasi waktu masuk. EMA rata-rata dan Stochastic RSI digunakan dalam kombinasi dengan indikator untuk mengidentifikasi tren secara efektif, dan ATR dinamis untuk melacak stop loss membantu dalam pengendalian risiko. Dengan penyesuaian dan pengoptimalan parameter, strategi ini dapat menjadi sistem pelacakan tren yang andal.

Kode 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)