
Đây là chiến lược giao dịch định lượng dựa trên mô hình engulfing, giao dịch bằng cách xác định mô hình engulfing tuyến tính theo xu hướng đa giai đoạn xuất hiện trên thị trường. Cốt lõi của chiến lược này là nắm bắt tín hiệu đảo chiều giá, kết hợp thời gian nắm giữ và kiểm soát rủi ro, đồng thời đạt được kết quả giao dịch vững chắc. Chiến lược này có thể áp dụng cho mọi thị trường và mọi thời kỳ và có tính phổ biến cao.
Chiến lược này dựa trên việc giao dịch theo mô hình engulfing trong mô hình nến. Khi mô hình engulfing tăng giá xảy ra (một nến đen nhỏ hơn theo sau là một nến trắng lớn hơn hoàn toàn bao trùm nến đen nhỏ hơn), nó tạo ra tín hiệu mua trong xu hướng giảm; khi mô hình engulfing giảm giá xảy ra (một nến đen nhỏ hơn theo sau là một nến trắng lớn hơn nến bao trùm hoàn toàn nến đen nhỏ hơn), nó tạo ra tín hiệu mua trong xu hướng tăng. Một tín hiệu bán được tạo ra. Chiến lược này thiết lập thời gian nắm giữ thông qua tham số hóa và tự động đóng vị thế sau thời gian chỉ định để tránh rủi ro do nắm giữ quá mức.
Chiến lược này sử dụng phương pháp tiếp cận có hệ thống để nắm bắt các cơ hội mô hình bao trùm trên thị trường và kết hợp với quản lý vị thế theo tham số để đạt được giao dịch được kiểm soát rủi ro. Chiến lược này có tính thực tiễn và dễ thích ứng cao, nhưng các nhà giao dịch vẫn cần phải tối ưu hóa và điều chỉnh theo đặc điểm cụ thể của thị trường. Nên kết hợp các chỉ báo kỹ thuật khác và các biện pháp kiểm soát rủi ro để nâng cao tính ổn định và độ tin cậy của chiến lược.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Engulfing Candlestick Strategy", overlay=true)
// Input parameters
bull_color = input.color(color.new(color.green, 0), title="Bullish Engulfing Highlight")
bear_color = input.color(color.new(color.red, 0), title="Bearish Engulfing Highlight")
hold_periods = input.int(17, title="Hold Periods", minval=1) // How many bars to hold the position
// Input for selecting the pattern (Bullish or Bearish Engulfing)
pattern_type = input.string("Bullish Engulfing", title="Engulfing Pattern", options=["Bullish Engulfing", "Bearish Engulfing"])
// Input for selecting the trade type (Long or Short)
trade_type = input.string("Long", title="Trade Type", options=["Long", "Short"])
// Conditions for Bullish Engulfing
bullish_engulfing = close > open and open < close[1] and close > open[1] and open[1] > close[1]
// Conditions for Bearish Engulfing
bearish_engulfing = close < open and open > close[1] and close < open[1] and open[1] < close[1]
// Declare the entry condition variable
var bool entry_condition = false // Set initial value to 'false'
// Entry logic based on selected pattern and trade type
if pattern_type == "Bullish Engulfing"
entry_condition := bullish_engulfing
else
entry_condition := bearish_engulfing
// Execute the entry based on the selected trade type
if entry_condition
if trade_type == "Long"
strategy.entry("Long", strategy.long)
else
strategy.entry("Short", strategy.short)
// Close position after specified number of bars
if strategy.position_size != 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= hold_periods
strategy.close("Long")
strategy.close("Short")
// Highlight Bullish Engulfing Candles (Background Color)
bgcolor(bullish_engulfing and pattern_type == "Bullish Engulfing" ? color.new(bull_color, 80) : na, title="Bullish Engulfing Background")
// Highlight Bearish Engulfing Candles (Background Color)
bgcolor(bearish_engulfing and pattern_type == "Bearish Engulfing" ? color.new(bear_color, 80) : na, title="Bearish Engulfing Background")