
Đây là chiến lược giao dịch dựa trên phân tích mô hình nến đa giai đoạn, chủ yếu tạo ra tín hiệu giao dịch bằng cách xác định các mô hình nến điển hình như nến nhấn chìm tăng giá, nến nhấn chìm giảm giá và nến doji. Chiến lược này hoạt động theo chu kỳ hàng ngày và xác định điểm ngoặt của xu hướng thị trường bằng cách kết hợp nhiều chỉ báo kỹ thuật và đặc điểm của mô hình, từ đó tìm ra thời điểm vào lệnh giao dịch lý tưởng.
Logic cốt lõi của chiến lược này là xác định theo chương trình ba mô hình nến cổ điển:
Khi một mô hình engulfing tăng giá được xác định, tín hiệu mua sẽ được hiển thị bên dưới đường K; khi một mô hình engulfing giảm giá được xác định, tín hiệu bán sẽ được hiển thị bên trên đường K; khi một mô hình doji được xác định, tín hiệu này sẽ được đánh dấu tại đầu dòng K. Chiến lược này thực hiện gắn nhãn tín hiệu thông qua hàm label.new() và tăng cường khả năng trực quan hóa tín hiệu thông qua hàm plotshape().
Chiến lược này triển khai phân tích mẫu K-line cổ điển theo cách có lập trình và có khả năng vận hành và mở rộng tốt. Thông qua việc thiết lập thông số hợp lý và kiểm soát rủi ro, nó có thể cung cấp tài liệu tham khảo có giá trị cho các quyết định giao dịch. Trong tương lai, tính ổn định và độ tin cậy của chiến lược có thể được cải thiện bằng cách bổ sung thêm các chỉ báo kỹ thuật và tối ưu hóa cơ chế xác nhận tín hiệu.
/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Sensex Option Buy/Sell Signals", overlay=true)
// Input parameters
bullishColor = color.new(color.green, 0)
bearishColor = color.new(color.red, 0)
dojiColor = color.new(color.yellow, 0)
// Candlestick pattern identification
isBullishEngulfing = close[1] < open[1] and close > open and close > high[1] and open < low[1]
isBearishEngulfing = close[1] > open[1] and close < open and close < low[1] and open > high[1]
isDoji = math.abs(close - open) <= (high - low) * 0.1
// Plot buy/sell signals
buySignal = isBullishEngulfing
sellSignal = isBearishEngulfing
timeframeCondition = input.timeframe("D", title="Timeframe for signals")
// Buy Signal
if buySignal
label.new(bar_index, high, "Buy", style=label.style_label_up, color=bullishColor, textcolor=color.white)
strategy.entry("Buy", strategy.long)
// Sell Signal
if sellSignal
label.new(bar_index, low, "Sell", style=label.style_label_down, color=bearishColor, textcolor=color.white)
strategy.entry("Sell", strategy.short)
// Highlight Doji candles
if isDoji
label.new(bar_index, high, "Doji", style=label.style_circle, color=dojiColor, textcolor=color.black)
// Alerts
alertcondition(buySignal, title="Buy Alert", message="Bullish Engulfing Pattern Detected")
alertcondition(sellSignal, title="Sell Alert", message="Bearish Engulfing Pattern Detected")
// Add plot shapes for visibility
plotshape(series=buySignal, title="Buy Signal", location=location.belowbar, color=bullishColor, style=shape.labelup, text="BUY")
plotshape(series=sellSignal, title="Sell Signal", location=location.abovebar, color=bearishColor, style=shape.labeldown, text="SELL")