
Chiến lược này là một hệ thống giao dịch hai chiều dựa trên hình thức hấp thụ K-line. Chiến lược này xác định các hình thức có đặc điểm hấp thụ trong thị trường bằng cách phân tích mối quan hệ giữa hướng, cường độ và khối lượng giao dịch của các đường K lân cận và giao dịch theo hướng tương ứng khi phù hợp. Chiến lược sử dụng phương pháp quản lý vốn phần trăm, có logic mở cửa hoàn chỉnh.
Lập luận cốt lõi của chiến lược này dựa trên ba điều kiện quan trọng:
Khi ba điều kiện này được đáp ứng cùng một lúc, chiến lược sẽ xác định hướng giao dịch dựa trên hướng của đường K mới nhất: nếu đường dương thì làm nhiều, đường âm thì làm trống. Chiến lược sử dụng toàn bộ vị trí giao dịch và theo dõi tình trạng giữ vị trí thông qua biến trạng thái.
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua phân tích đa chiều về hình dạng, cường độ và khối lượng giao dịch của K. Mặc dù có một số rủi ro, nhưng bằng hướng tối ưu hóa được đề xuất, có thể nâng cao hơn nữa sự ổn định và độ tin cậy của chiến lược. Điểm mạnh cốt lõi của chiến lược là phương pháp phân tích đa chiều và cơ chế quản lý trạng thái hoàn thiện, phù hợp để sử dụng trong môi trường thị trường biến động lớn.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Candle Absorption Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Условия индикатора
// 1. Две соседних свечи должны быть разнонаправленными
condition1 = (close[1] > open[1] and close < open) or (close[1] < open[1] and close > open)
// 2. Дельта по цене открытия/закрытия у первой свечи меньше, чем у следующей
delta1 = math.abs(close[1] - open[1])
delta2 = math.abs(close - open)
condition2 = delta1 < delta2
// 3. Объем первой свечи должен быть больше, а последней меньше
condition3 = volume[1] > volume and volume < volume[2]
// Проверяем выполнение всех условий
all_conditions = condition1 and condition2 and condition3
// Определяем направление для входа
is_bullish = close > open // Зеленая свеча больше (бычье поглощение)
is_bearish = close < open // Красная свеча больше (медвежье поглощение)
// Переменные для отслеживания состояния позиции
var float entryPrice = na
var bool isLong = false
var bool isShort = false
// Логика генерации сигналов
buySignal = all_conditions and is_bullish and not isLong
sellSignal = all_conditions and is_bearish and not isShort
// Обработка лонгового входа
if (buySignal)
isLong := true
isShort := false
entryPrice := close
strategy.entry("Long", strategy.long)
// Обработка шортового входа
if (sellSignal)
isLong := false
isShort := true
entryPrice := close
strategy.entry("Short", strategy.short)
// Визуализация точек поглощения
// if all_conditions
// label.new(bar_index, high, "✔", color=is_bullish ? color.green : color.red, textcolor=color.white, style=label.style_circle, size=size.small)
// Логика сброса состояния при закрытии позиции
if (strategy.position_size == 0)
isLong := false
isShort := false
entryPrice := na
// Дополнительно: можно добавить стоп-лосс и тейк-профит (пример ниже)
// strategy.exit("Exit Long", from_entry="Long", stop=low - atr(14), limit=high + atr(14))
// strategy.exit("Exit Short", from_entry="Short", stop=high + atr(14), limit=low - atr(14))