
Strategi ini adalah sistem perdagangan otomatis yang didasarkan pada sinyal crossover antara multiple moving average (SMA) dan relative weak indicator (RSI). Strategi ini menggabungkan mekanisme verifikasi multiple dari short and medium moving average (SMA) dan melakukan konfirmasi tren melalui RSI, sementara menggunakan stop loss ATR dinamis untuk mengendalikan risiko. Strategi ini terutama digunakan untuk menangkap titik balik tren pasar dan meningkatkan akurasi perdagangan melalui konfirmasi silang dari beberapa indikator teknis.
Logika inti dari strategi ini didasarkan pada penilaian komprehensif atas lima kondisi kunci:
Strategi hanya akan menghasilkan sinyal beli jika kelima kondisi ini terpenuhi secara bersamaan. Setelah masuk, strategi menggunakan stop loss dan stop loss level berbasis ATR yang dinamis, di mana stop loss diatur menjadi 1,5 kali ATR dan stop loss diatur menjadi 2,5 kali ATR, yang dirancang untuk menyesuaikan parameter manajemen risiko secara otomatis sesuai dengan volatilitas pasar.
Ini adalah strategi perdagangan teknologi yang dirancang secara rasional untuk meningkatkan akurasi perdagangan dengan pengesahan silang dari beberapa indikator teknis, dan menggunakan sistem manajemen risiko dinamis untuk melindungi keuntungan. Meskipun strategi ini memiliki beberapa keterbatasan, kinerja dapat ditingkatkan lebih lanjut dengan arah pengoptimalan yang disarankan. Strategi ini cocok untuk digunakan oleh pedagang yang memiliki toleransi risiko yang kuat dan bersedia melakukan pengoptimalan strategi jangka panjang.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Virat Bharat Auto Trade", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// **User-Defined Inputs for Customization**
smaLength20 = input(20, title="SMA High/Low 20 Length")
smaLength50 = input(50, title="SMA High/Low 50 Length")
rsiLength = input(7, title="RSI Length")
rsiLevel = input(50, title="RSI Crossover Level")
atrMultiplierSL = input(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input(2.5, title="ATR Multiplier for Target")
// **Defining the Indicators with Custom Inputs**
smaHigh20 = ta.sma(high, smaLength20)
smaLow20 = ta.sma(low, smaLength20)
smaHigh50 = ta.sma(high, smaLength50)
smaLow50 = ta.sma(low, smaLength50)
rsiValue = ta.rsi(close, rsiLength)
atrValue = ta.atr(14) // ATR for Dynamic Stop Loss & Target
// **Conditions for Buy Signal**
condition1 = ta.crossover(close, smaHigh20)
condition2 = ta.crossover(close, smaLow20)
condition3 = ta.crossover(close, smaHigh50)
condition4 = ta.crossover(close, smaLow50)
condition5 = ta.crossover(rsiValue, rsiLevel)
// **Final Buy Signal (Only when all conditions match)**
buySignal = condition1 and condition2 and condition3 and condition4 and condition5
// **Buy Price, Stop Loss & Target**
buyPrice = close
stopLoss = buyPrice - (atrValue * atrMultiplierSL) // Dynamic Stop Loss
target = buyPrice + (atrValue * atrMultiplierTP) // Dynamic Target
// **Plot Buy Signal on Chart**
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small, text="BUY")
// **Plot Labels for Buy, Stop Loss & Target**
if buySignal
label.new(x=bar_index, y=buyPrice, text="BUY @ " + str.tostring(buyPrice, format="#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
label.new(x=bar_index, y=stopLoss, text="STOP LOSS @ " + str.tostring(stopLoss, format="#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
label.new(x=bar_index, y=target, text="TARGET @ " + str.tostring(target, format="#.##"), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up, yloc=yloc.price)
// **Strategy Trading Logic - Automated Entry & Exit**
if buySignal
strategy.entry("BUY", strategy.long)
strategy.exit("SELL", from_entry="BUY", loss=atrValue * atrMultiplierSL, profit=atrValue * atrMultiplierTP)