
Strategi ini diuji pada waktu 3 menit dari pasangan perdagangan Bitcoin dan dolar AS (BTC/USDT) dan memberikan hasil yang sangat baik. Strategi ini dikombinasikan dengan penggunaan moving average dan indikator relatif kuat acak (Stochastic RSI) untuk mengidentifikasi sinyal perdagangan.
Strategi ini menggunakan dua rata-rata bergerak sederhana dengan durasi yang berbeda, yaitu 20 periode dan 50 periode. Kedua rata-rata ini digunakan untuk menentukan tren harga.
Indikator RSI Stokastik dihitung dengan rumus: (((RSI - RSI Terendah) / (((RSI Tertinggi - RSI Terendah) * 100。 Indikator ini mencerminkan tingkat RSI saat ini relatif terhadap posisi RSI tertinggi dan terendah dalam beberapa waktu terakhir。 Ketika RSI Stokastik naik melewati 20 sebagai sinyal oversell, dan ketika turun melewati 80 sebagai sinyal overbuy。
Strategi ini menggabungkan penggunaan rata-rata bergerak untuk menentukan arah tren dan menggunakan RSI Stokastik untuk menentukan titik balik potensial sebagai waktu masuk.
Strategi ini menggabungkan keunggulan keduanya, lebih baik dalam mengidentifikasi tren, sekaligus mengidentifikasi potensi titik balik, sehingga meningkatkan probabilitas keuntungan, dibandingkan dengan penggunaan rata-rata bergerak atau RSI Stokastik saja.
Dibandingkan dengan satu indikator, strategi ini mengintegrasikan berbagai indikator dan menetapkan aturan masuk yang ketat, yang secara efektif dapat menyaring sinyal palsu dan menghindari perdagangan yang tidak berarti.
Strategi ini juga sangat baik dalam pengendalian risiko, dengan hanya 2% dari dana yang diperdagangkan dalam setiap transaksi, yang secara efektif dapat membatasi dampak dari kerugian tunggal.
Strategi ini terutama bergantung pada indikator teknis untuk menentukan sinyal perdagangan. Jika indikator gagal, sinyal yang salah dapat menyebabkan kerugian. Selain itu, parameter indikator yang tidak tepat dapat mempengaruhi kinerja strategi.
Pada saat volatilitas pasar yang sangat tinggi, pengaturan stop loss dapat ditembus, menyebabkan risiko peningkatan kerugian.
Anda dapat menguji lebih banyak kombinasi dan parameter moving average untuk menemukan kombinasi parameter yang optimal. Anda juga dapat mencoba kombinasi indikator momentum lainnya seperti KD, RSI, dan lain-lain dengan moving average.
Anda dapat memilih modus stop-loss yang optimal sesuai dengan karakteristik cryptocurrency yang berbeda untuk mengontrol risiko lebih lanjut.
Algoritma pembelajaran mesin dapat diperkenalkan untuk mengoptimalkan pengaturan parameter dan aturan penilaian sinyal secara otomatis, membuat strategi lebih kasar dan adaptif.
Strategi ini berhasil digabungkan dengan Moving Average dan Stochastic RSI untuk menentukan sinyal perdagangan. Strategi ini dapat memberikan sinyal perdagangan yang lebih andal dibandingkan dengan indikator teknis tunggal. Dengan kontrol risiko yang ketat dan pengoptimalan parameter, strategi ini diharapkan untuk mendapatkan keuntungan yang stabil.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true)
// Input variables
ma1_length = input.int(20, title="MA1 Length")
ma2_length = input.int(50, title="MA2 Length")
stoch_length = input.int(14, title="Stochastic RSI Length")
overbought = input.int(80, title="Overbought Level")
oversold = input.int(20, title="Oversold Level")
risk_percentage = input.float(2.0, title="Risk Percentage")
// Calculate moving averages
ma1 = ta.sma(close, ma1_length)
ma2 = ta.sma(close, ma2_length)
// Calculate Stochastic RSI
rsi1 = ta.rsi(close, stoch_length)
rsiH = ta.highest(rsi1, stoch_length)
rsiL = ta.lowest(rsi1, stoch_length)
stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100
// Determine buy and sell signals based on Stochastic RSI
buySignal = ta.crossover(stoch, oversold)
sellSignal = ta.crossunder(stoch, overbought)
// Plot signals on the chart
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Calculate position size based on equity and risk percentage
equity = strategy.equity
riskAmount = equity * risk_percentage / 100
positionSize = riskAmount / ta.atr(14)
// Entry and exit conditions
var float stopLoss = na
var float takeProfit = na
if buySignal
stopLoss := low
takeProfit := high
strategy.entry("Buy", strategy.long)
else if sellSignal
strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)