この戦略は,キャンドルスタイク吸収パターンに基づいた二方向取引システムである. 隣接するキャンドルスタイクの方向,幅,およびボリューム関係を分析し,条件を満たしたときに取引を実行することによって市場吸収パターンを特定する. 戦略は完全なエントリーと出口ロジックを持つパーセントベースのマネーマネジメントを使用する.
基本的な論理は3つの条件に基づいています
この3つの条件が同時に満たされた場合,戦略は最新のキャンドルスタイクに基づいて取引方向を決定します.上昇するキャンドルには長,下落するキャンドルには短. 戦略はフルポジション取引を使用し,状態変数を通じてポジションを追跡します.
この戦略は,キャンドルスタイクパターン,幅,およびボリュームの多次元分析を通じて完全な取引システムを構築する.特定のリスクが存在するが,戦略の安定性と信頼性は,提案された最適化方向によってさらに強化することができる.主な利点は,多次元分析方法と包括的な状態管理メカニズムにあるため,非常に不安定な市場環境での適用に適している.
/*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))