
Chiến lược này là một chiến lược giao dịch định lượng tần số cao dựa trên nhiều chỉ số kỹ thuật. Nó sử dụng tổng hợp phân tích hình dạng đồ thị, theo dõi xu hướng và chỉ số động lực để tăng độ chính xác của giao dịch thông qua xác nhận tín hiệu đa chiều.
Lập luận cốt lõi của chiến lược được xây dựng trên sự phối hợp của ba chỉ số kỹ thuật chính. Đầu tiên, sử dụng đường K mịn (Heiken Ashi) để lọc tiếng ồn thị trường, cung cấp hướng xu hướng rõ ràng hơn. Thứ hai, các dải Bollinger (Bollinger Bands) được sử dụng để xác định các khu vực quá mua quá bán, đồng thời cung cấp mức áp lực hỗ trợ động.
Đây là một chiến lược kết hợp các phương pháp phân tích kỹ thuật cổ điển với tư tưởng giao dịch định lượng hiện đại. Bằng cách sử dụng nhiều chỉ số phối hợp, theo đuổi khả năng lợi nhuận cao hơn trong khi đảm bảo sự ổn định. Tính mở rộng và linh hoạt của chiến lược làm cho nó phù hợp với nhiều môi trường thị trường, nhưng yêu cầu các nhà giao dịch kiểm soát rủi ro một cách cẩn thận và tối ưu hóa các tham số thường xuyên.
/*backtest
start: 2024-11-26 00:00:00
end: 2024-12-03 00:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTC Scalping Strategy with Risk-Reward 1:3", overlay=true)
// Heiken Ashi Candle Calculation
var float haOpen = na
haClose = (open + high + low + close) / 4
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow = math.min(low, math.min(haOpen, haClose))
// Plot Heiken Ashi Candles
plotcandle(haOpen, haHigh, haLow, haClose, color=haClose >= haOpen ? color.green : color.red)
// Bollinger Bands Calculation
lengthBB = 20
src = close
mult = 2.0
basis = ta.sma(src, lengthBB)
dev = mult * ta.stdev(src, lengthBB)
upperBB = basis + dev
lowerBB = basis - dev
// Stochastic RSI Calculation (fixed parameters)
kLength = 14
dSmoothing = 3
stochRSI = ta.stoch(close, high, low, kLength)
// Average True Range (ATR) for stop loss and take profit
atrLength = 14
atrValue = ta.atr(atrLength)
// Entry conditions
longCondition = ta.crossover(close, lowerBB) and stochRSI < 20
shortCondition = ta.crossunder(close, upperBB) and stochRSI > 80
// Alerts and trade signals
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", profit=atrValue*3, loss=atrValue)
alert("Buy Signal Triggered", alert.freq_once_per_bar_close)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit", "Short", profit=atrValue*3, loss=atrValue)
alert("Sell Signal Triggered", alert.freq_once_per_bar_close)