
Chiến lược này là một hệ thống giao dịch trong ngày kết hợp nhiều chỉ số kỹ thuật, chủ yếu sử dụng đường chéo, RSI, giao dịch quá mức, xác nhận khối lượng, băng Brin và hình ảnh phác họa để đánh giá thời gian vào thị trường. Nó cũng bao gồm một tỷ lệ rủi ro và tỷ lệ dừng lỗ cố định 1: 2 nhằm quản lý rủi ro và tối đa hóa lợi nhuận.
Chiến lược này dựa trên những nguyên tắc cốt lõi sau:
Giao chéo trung bình: sử dụng giao chéo của các chỉ số di chuyển nhanh (khoảng 9 chu kỳ) và chậm (khoảng 21 chu kỳ) để xác định sự thay đổi xu hướng tiềm ẩn.
Bộ lọc RSI: xác nhận cường độ của xu hướng bằng cách kiểm tra xem chỉ số tương đối mạnh (RSI) có đang ở trạng thái quá mua (<70) hoặc quá bán (<30) hay không.
Xác nhận khối lượng giao dịch: yêu cầu khối lượng giao dịch vượt ngưỡng tối thiểu được thiết lập để đảm bảo đủ sự tham gia thị trường.
Brin: Sử dụng Brin để xác định biến động giá và mức hỗ trợ / kháng cự tiềm năng.
Định dạng thị trường: kết hợp thị trường tăng giá và thị trường giảm giá để tăng cường độ tin cậy của tín hiệu đầu vào.
Quản lý rủi ro: Sử dụng tỷ lệ lợi nhuận rủi ro cố định 1:2 và thiết lập dừng lỗ dựa trên tỷ lệ phần trăm.
Tín hiệu giao dịch được kích hoạt khi đáp ứng các điều kiện trên và giá nằm dưới đường trung tâm của băng thông Brin ((multihead) hoặc trên ((blank head)).
Xác nhận đa dạng: kết hợp nhiều chỉ số kỹ thuật và biểu đồ, tăng độ tin cậy của tín hiệu giao dịch.
Quản lý rủi ro động: thích ứng với các môi trường thị trường khác nhau bằng cách tính toán thời gian thực của mức dừng và giá mục tiêu.
Theo dõi xu hướng kết hợp với đảo ngược: có thể nắm bắt được xu hướng và xác định cơ hội đảo ngược tiềm năng.
Tính thích nghi với biến động: Sử dụng Brin để điều chỉnh sự nhạy cảm với biến động của thị trường.
Tính linh hoạt: cho phép người dùng điều chỉnh các tham số tùy theo sở thích cá nhân và đặc điểm thị trường.
Quá giao dịch: Có thể tạo ra quá nhiều tín hiệu giao dịch trong thị trường có biến động cao, làm tăng chi phí giao dịch.
Các tín hiệu phá vỡ giả có thể xảy ra thường xuyên trong thị trường ngang.
Rủi ro trượt điểm: Trong thị trường chuyển động nhanh, giá thực hiện thực tế có thể khác biệt đáng kể so với giá kích hoạt tín hiệu.
Tính nhạy cảm tham số: Hiệu suất chiến lược có thể rất nhạy cảm với cài đặt tham số, cần được tối ưu hóa và kiểm tra lại cẩn thận.
Điều chỉnh tham số động: Xem xét điều chỉnh tự động chu kỳ EMA và điểm mốc RSI theo biến động của thị trường.
Thêm bộ lọc cường độ xu hướng: giới thiệu các chỉ số như ADX để đánh giá cường độ xu hướng và tránh giao dịch trong xu hướng yếu.
Bộ lọc thời gian: Thêm bộ lọc thời gian để tránh giao dịch trong thời gian có biến động thấp.
Cải thiện cơ chế dừng lỗ: Xem xét sử dụng dừng theo dõi hoặc dừng động dựa trên ATR để quản lý rủi ro tốt hơn.
Tăng khóa lợi nhuận: Khi đạt được một phần giá mục tiêu, hãy cân nhắc khóa một phần lợi nhuận và di chuyển dừng lỗ.
Chiến lược giao dịch trong ngày này cung cấp một hệ thống giao dịch toàn diện bằng cách kết hợp nhiều chỉ số kỹ thuật và kỹ thuật quản lý rủi ro. Ưu điểm của nó là xác nhận nhiều lần và quản lý rủi ro động, nhưng cũng đối mặt với những thách thức của giao dịch quá mức và nhạy cảm với các tham số.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-10-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday Strategy with Risk-Reward 1:2, Bollinger Bands, and Stop Loss", overlay=true)
// Parameters
fastLength = input(9, title="Fast EMA Length")
slowLength = input(21, title="Slow EMA Length")
rsiLength = input(14, title="RSI Length")
overbought = input(70, title="RSI Overbought Level")
oversold = input(30, title="RSI Oversold Level")
minVolume = input(100000, title="Min Volume for Confirmation")
bbLength = input(20, title="Bollinger Bands Length")
bbStdDev = input.float(2.0, title="Bollinger Bands Standard Deviation")
stopLossPercent = input.float(1, title="Stop Loss (%)", minval=0.1) // Stop Loss %
riskRewardRatio = 2.0 // Fixed risk-reward ratio 1:2
// Indicators
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
rsi = ta.rsi(close, rsiLength)
volumeCondition = volume > minVolume
// Bollinger Bands
bbBasis = ta.sma(close, bbLength) // Basis (middle line) is the SMA
bbUpper = bbBasis + bbStdDev * ta.stdev(close, bbLength) // Upper band
bbLower = bbBasis - bbStdDev * ta.stdev(close, bbLength) // Lower band
// Bullish Engulfing Pattern
bullishEngulfing = close > open and close[1] < open[1] and close > open[1]
// Bearish Engulfing Pattern
bearishEngulfing = close < open and close[1] > open[1] and close < open[1]
// Entry Conditions
bullishCrossover = ta.crossover(fastEMA, slowEMA) and rsi < oversold and volumeCondition
bearishCrossover = ta.crossunder(fastEMA, slowEMA) and rsi > overbought and volumeCondition
// Signal Conditions
longCondition = (bullishCrossover or bullishEngulfing) and close < bbBasis // Buy below Bollinger Bands middle line
shortCondition = (bearishCrossover or bearishEngulfing) and close > bbBasis // Sell above Bollinger Bands middle line
// Stop Loss and Target Calculation for Long and Short Positions
stopLossLong = close * (1 - stopLossPercent / 100) // Stop loss for long positions
targetLong = close + (close - stopLossLong) * riskRewardRatio // Target for long positions (1:2 ratio)
stopLossShort = close * (1 + stopLossPercent / 100) // Stop loss for short positions
targetShort = close - (stopLossShort - close) * riskRewardRatio // Target for short positions (1:2 ratio)
// Strategy Execution with Stop Loss and Target
if (longCondition)
strategy.entry("Long", strategy.long, stop=stopLossLong, limit=targetLong)
if (shortCondition)
strategy.entry("Short", strategy.short, stop=stopLossShort, limit=targetShort)
// Plot Moving Averages for Visualization
plot(fastEMA, color=color.blue, linewidth=1, title="Fast EMA")
plot(slowEMA, color=color.red, linewidth=1, title="Slow EMA")
// Plot Bollinger Bands with Color Fill
plot(bbUpper, "BB Upper", color=color.gray, linewidth=1)
plot(bbLower, "BB Lower", color=color.gray, linewidth=1)
plot(bbBasis, "BB Basis", color=color.gray, linewidth=1)
fill(plot(bbUpper), plot(bbLower), color=color.new(color.blue, 90), title="Bollinger Bands Area")
// Plot Risk-Reward Levels
plot(longCondition ? targetLong : na, color=color.green, linewidth=2, title="Long Target (1:2)", style=plot.style_circles)
plot(shortCondition ? targetShort : na, color=color.red, linewidth=2, title="Short Target (1:2)", style=plot.style_circles)
plot(longCondition ? stopLossLong : na, color=color.red, linewidth=2, title="Long Stop Loss", style=plot.style_cross)
plot(shortCondition ? stopLossShort : na, color=color.green, linewidth=2, title="Short Stop Loss", style=plot.style_cross)
// Plot Buy and Sell Signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="SELL")
// Clean Background Color for Trades
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Background Long", transp=90)
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Background Short", transp=90)