
Strategi ini adalah sistem perdagangan automatik yang berdasarkan kepada pelbagai isyarat perpaduan antara purata bergerak ((SMA) dan penunjuk yang agak kuat ((RSI)). Ia menggabungkan mekanisme pengesahan pelbagai purata bergerak jangka pendek dan jangka menengah, dan mengesahkan trend melalui penunjuk RSI, sambil menggunakan stop loss ATR dinamik untuk mengawal risiko, untuk mewujudkan kerangka keputusan perdagangan yang lengkap.
Logik utama strategi ini adalah berdasarkan kepada penghakiman komprehensif terhadap lima syarat utama:
Strategi hanya akan menghasilkan isyarat beli jika lima syarat ini dipenuhi secara serentak. Selepas masuk, strategi menggunakan tahap stop loss dan stop loss yang dinamik berdasarkan ATR, di mana stop loss ditetapkan sebagai 1.5 kali ATR dan stop loss ditetapkan sebagai 2.5 kali ATR, reka bentuk yang dapat menyesuaikan parameter pengurusan risiko secara automatik mengikut turun naik pasaran.
Ini adalah strategi perdagangan teknikal yang dirancang dengan wajar, meningkatkan ketepatan perdagangan dengan pengesahan silang pelbagai petunjuk teknikal, dan menggunakan sistem pengurusan risiko dinamik untuk melindungi keuntungan. Walaupun ada batasan tertentu dalam strategi, prestasi dapat ditingkatkan lagi dengan arah pengoptimuman yang disyorkan.
/*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)