
Chiến lược này là một hệ thống giao dịch tự động dựa trên các tín hiệu chéo giữa nhiều đường trung bình di chuyển (SMA) và các chỉ số tương đối mạnh (RSI). Nó kết hợp các cơ chế xác minh nhiều đường trung bình di chuyển ngắn hạn và trung hạn và xác nhận xu hướng thông qua chỉ số RSI, đồng thời sử dụng ATR động để kiểm soát rủi ro, để tạo ra một khung quyết định giao dịch hoàn chỉnh. Chiến lược này chủ yếu được sử dụng để nắm bắt các bước ngoặt trong xu hướng thị trường và tăng độ chính xác của giao dịch thông qua xác nhận chéo của nhiều chỉ số kỹ thuật.
Lập luận cốt lõi của chiến lược được xây dựng dựa trên sự kết hợp của 5 điều kiện quan trọng:
Chiến lược chỉ tạo ra tín hiệu mua khi năm điều kiện này được đáp ứng cùng một lúc. Sau khi tham gia, chiến lược sử dụng mức dừng và dừng động dựa trên ATR, trong đó dừng là 1,5 lần ATR và dừng là 2,5 lần ATR, thiết kế này có thể tự động điều chỉnh các tham số quản lý rủi ro theo biến động của thị trường.
Đây là một chiến lược giao dịch kỹ thuật được thiết kế hợp lý, tăng độ chính xác của giao dịch bằng cách xác nhận chéo của nhiều chỉ số kỹ thuật và sử dụng hệ thống quản lý rủi ro động để bảo vệ lợi nhuận. Mặc dù có một số hạn chế trong chiến lược, nhưng có thể nâng cao hiệu suất của nó hơn nữa bằng cách hướng tối ưu hóa được đề xuất.
/*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)