
Chiến lược này là một hệ thống theo dõi xu hướng động kết hợp với đường trung bình di chuyển của chỉ số (EMA) và hình dạng đồ thị. Nó xác định xu hướng thị trường bằng cách xác định hình dạng đồ thị cụ thể (pin bar và hình dạng ăn sâu), kết hợp với chỉ số EMA nhanh và chậm, và sử dụng chỉ số ATR để đo lường sự biến động của thị trường. Ý tưởng cốt lõi của chiến lược là xác định thời gian nhập cảnh chính xác thông qua hình dạng đồ thị khi xu hướng thị trường được xác nhận.
Chiến lược bao gồm ba thành phần cốt lõi:
Điều kiện nhập cảnh nghiêm ngặt yêu cầu xu hướng và hình thức được xác nhận chung: nhập cảnh nhiều đầu cần phải nhìn thấy hình thức nhiều biểu đồ trong khi thị trường đang có xu hướng tăng; nhập cảnh không đầu cần phải nhìn thấy hình thức trống trong khi thị trường đang có xu hướng giảm.
Đây là một chiến lược theo dõi xu hướng có cấu trúc tốt, cung cấp một hệ thống giao dịch tương đối đáng tin cậy bằng cách kết hợp nhiều công cụ phân tích kỹ thuật. Mặc dù phiên bản hiện tại có một số điểm cần cải thiện, nhưng logic cốt lõi của nó là hợp lý. Bằng cách thực hiện các biện pháp tối ưu hóa được đề xuất, chiến lược này có tiềm năng trở thành một hệ thống giao dịch tốt hơn.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-19 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Candlestick Bible: Dynamic Price Follower (Corrected)", overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//=======================
// 1. PATTERN DETECTION
//=======================
// Pin Bar Detection
bodySize = math.abs(close - open)
upperShadow = high - math.max(close, open)
lowerShadow = math.min(close, open) - low
isBullishPin = (lowerShadow >= 2 * bodySize) and (upperShadow <= bodySize / 2)
isBearishPin = (upperShadow >= 2 * bodySize) and (lowerShadow <= bodySize / 2)
// Engulfing Pattern
isBullishEngulf = (close[1] < open[1]) and (close > open) and (close > open[1]) and (open < close[1])
isBearishEngulf = (close[1] > open[1]) and (close < open) and (close < open[1]) and (open > close[1])
//=======================
// 2. DYNAMIC TREND SYSTEM
//=======================
emaFast = ta.ema(close, 8)
emaSlow = ta.ema(close, 21)
marketTrend = emaFast > emaSlow ? "bullish" : "bearish"
//=======================
// 3. PRICE MOVEMENT SYSTEM
//=======================
atr = ta.atr(14)
//=======================
// 4. STRATEGY RULES
//=======================
longCondition = (isBullishPin or isBullishEngulf) and marketTrend == "bullish" and close > emaSlow
shortCondition = (isBearishPin or isBearishEngulf) and marketTrend == "bearish" and close < emaSlow
//=======================
// 5. STRATEGY ENTRIES
//=======================
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
//=======================
// 6. VISUAL FEEDBACK
//=======================
plot(emaFast, "Fast EMA", color=color.blue)
plot(emaSlow, "Slow EMA", color=color.red)
plotshape(longCondition, "Long Signal", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Short Signal", shape.triangledown, location.abovebar, color=color.red, size=size.small)