
Die Strategie ist ein auf K-Linien basierendes Zwei-Wege-Trading-System, das auf Absorptionsformen basiert. Die Strategie identifiziert Absorptionsformen in einem Markt, indem sie die Beziehungen zwischen Richtung, Amplitude und Transaktionsvolumen der benachbarten K-Linien analysiert.
Die Kernlogik der Strategie basiert auf drei Schlüsselfaktoren:
Wenn diese drei Bedingungen gleichzeitig erfüllt sind, bestimmt die Strategie die Richtung des Handels in Bezug auf die Richtung der neuesten K-Linie: Wenn es sich um die Y-Linie handelt, ist die Plus-Linie, wenn die Y-Linie leer ist. Die Strategie verwendet die vollen Positionen, um zu handeln, und verfolgt die Position durch die Statusvariablen.
Die Strategie baut ein vollständiges Handelssystem auf, indem sie eine mehrdimensionale Analyse der K-Linie-Form, der Amplitude und des Transaktionsvolumens durchführt. Obwohl bestimmte Risiken bestehen, kann die Stabilität und Zuverlässigkeit der Strategie durch die empfohlene Optimierungsrichtung weiter verbessert werden. Die Kernvorteile der Strategie liegen in ihrer mehrdimensionalen Analysemethode und einem ausgefeilten Zustandsmanagementmechanismus, der für den Einsatz in stark volatilen Marktumgebungen geeignet ist.
/*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))