Стратегия трехэтапного прорыва тренда и следования за импульсом

HLOC BAR TRINITY PA TA RANGE Trend
Дата создания: 2025-02-17 10:53:49 Последнее изменение: 2025-02-17 10:53:49
Копировать: 0 Количество просмотров: 371
1
Подписаться
1617
Подписчики

Стратегия трехэтапного прорыва тренда и следования за импульсом Based on the provided code, I’ll help create an SEO-friendly article analyzing this trading strategy in both Chinese and English.

Обзор

Эта стратегия основана на анализе ценового поведения (Price Action) и теории третей степени K-линии Билла Уильямса, которая анализирует взаимосвязь между открытием и закрытием текущей и предыдущей K-линии, чтобы определить переломные моменты и продолжительность рыночных тенденций, чтобы создать торговый сигнал. Эта стратегия полностью основана на ценовом поведении, не зависит от каких-либо технических показателей, и устраняет эмоциональные отклонения в торговле систематизированным способом.

Стратегический принцип

Центральная логика стратегии состоит в том, чтобы разделить колебания каждой K-линии на три части, чтобы определить тенденции рынка, анализируя место открытия и закрытия цен в этих зонах. В частности:

  1. Классификация K-линий - классификация K-линий в зависимости от позиции цены открытия и закрытия:
    • См. формы: 1-3 (сверху вниз), 2-3 (в середине) и 3-3 (сверху вверх)
    • Смотреть в открытом пространстве: 3-1 (вверх, вниз), 2-1 (в середине, вниз), 1-1 (вниз)
  2. Генерирование сигнала - подтверждение торгового сигнала с помощью формового сочетания двух последовательных K-линий:
    • Сигнал покупки: предыдущая K-линия в произвольном многообразии, текущая K-линия в 1-3 или 3-3
    • Продающий сигнал: предыдущая K-линия в произвольном просмотре, текущая K-линия в формате 1-1 или 3-1
  3. Исполнение сделки - автоматическое исполнение ордера после сигнала подтверждения:
    • Когда появятся сигналы о покупке, обналичьте свободные позиции и делайте лишние
    • Когда появляется сигнал продажи, ликвидируйте позиции и освободите позиции.

Стратегические преимущества

  1. Чисто ценовое движение - полностью основанное на анализе ценового поведения, избегая задержки технических показателей
  2. Систематизированная торговля - выполнение сделок с помощью четкой системы правил, снижающих отклонения от субъективных суждений
  3. Следить за тенденциями - эффективно улавливать значительные колебания цен, увеличивая объем доходов за единицу
  4. Контроль риска - повышение надежности сигнала путем анализа двух последовательных K-линий
  5. Простая интуиция - четкая логика стратегии, легко понятная и реализуемая

Стратегический риск

  1. Не применяется для рынков содроганий - часто могут возникать ложные сигналы в случае межзоновых содроганий
  2. Задержка входа - необходимо ждать закрытия линии K для подтверждения сигнала, возможно, пропустить лучшую точку входа
  3. Недостаточное управление деньгами - стратегия сама по себе не включает в себя механизм остановки убытков, требующий дополнительных мер по контролю риска
  4. Зависимость от рыночных условий - может плохо работать в условиях недостаточной ликвидности или высокой волатильности
  5. Чувствительность параметров - выбор K-линейного цикла имеет важное влияние на эффективность стратегии

Направление оптимизации стратегии

  1. Внедрение фильтра волатильности - динамическая адаптация частоты торгов в различных рыночных условиях путем добавления волатильности, таких как ATR
  2. Усовершенствование управления рисками - Динамический механизм остановки убытков, основанный на третьей степени K-линии
  3. Оптимизация подтверждения сигнала - рассмотрение возможности внедрения вспомогательных показателей, таких как трафик, волатильность и т. д., для повышения надежности сигнала
  4. Добавление анализа рыночной среды - разработка модуля для идентификации состояния рынка с использованием различных торговых параметров в различных рыночных условиях
  5. Улучшение управления позициями - изменение доли позиций в зависимости от силы сигналов и динамики рыночной среды

Подвести итог

Стратегия создала простую и эффективную систему отслеживания тенденций, используя инновационный метод анализа ценового поведения на уровне K-линии. Несмотря на определенные ограничения, разумные меры оптимизации и контроля риска позволяют получать стабильную прибыль в условиях явно тенденциозной рыночной среды.

Исходный код стратегии
/*backtest
start: 2025-01-17 00:00:00
end: 2025-02-15 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TrinityBar", overlay=true, initial_capital=100000, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=200)

//─────────────────────────────────────────────────────────────
// Current Bar Thirds Calculations
//─────────────────────────────────────────────────────────────
cur_range      = high - low
cur_lowerThird = low + cur_range / 3
cur_upperThird = high - cur_range / 3

//─────────────────────────────────────────────────────────────
// Previous Bar Thirds Calculations
//─────────────────────────────────────────────────────────────
prev_range      = high[1] - low[1]
prev_lowerThird = low[1] + prev_range / 3
prev_upperThird = high[1] - prev_range / 3

//─────────────────────────────────────────────────────────────
// Define Bullish Bar Types for Current Bar
//─────────────────────────────────────────────────────────────
is_1_3 = (open <= cur_lowerThird) and (close >= cur_upperThird)
is_3_3 = (open >= cur_upperThird) and (close >= cur_upperThird)
is_2_3 = (open > cur_lowerThird) and (open < cur_upperThird) and (close >= cur_upperThird)

//─────────────────────────────────────────────────────────────
// Define Bearish Bar Types for Current Bar
//─────────────────────────────────────────────────────────────
is_3_1 = (open >= cur_upperThird) and (close <= cur_lowerThird)
is_1_1 = (open <= cur_lowerThird) and (close <= cur_lowerThird)
is_2_1 = (open > cur_lowerThird) and (open < cur_upperThird) and (close <= cur_lowerThird)

//─────────────────────────────────────────────────────────────
// Define Bullish Bar Types for Previous Bar
//─────────────────────────────────────────────────────────────
prev_is_1_3 = (open[1] <= prev_lowerThird) and (close[1] >= prev_upperThird)
prev_is_3_3 = (open[1] >= prev_upperThird) and (close[1] >= prev_upperThird)
prev_is_2_3 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] >= prev_upperThird)

//─────────────────────────────────────────────────────────────
// Define Bearish Bar Types for Previous Bar
//─────────────────────────────────────────────────────────────
prev_is_3_1 = (open[1] >= prev_upperThird) and (close[1] <= prev_lowerThird)
prev_is_1_1 = (open[1] <= prev_lowerThird) and (close[1] <= prev_lowerThird)
prev_is_2_1 = (open[1] > prev_lowerThird) and (open[1] < prev_upperThird) and (close[1] <= prev_lowerThird)

//─────────────────────────────────────────────────────────────
// Valid Signal Conditions
//─────────────────────────────────────────────────────────────
// Bullish Signal: If the previous bar is any bullish type (2‑3, 3‑3, or 1‑3)
// and the current bar is either a 1‑3 or a 3‑3 bar.
validBuy = (prev_is_2_3 or prev_is_3_3 or prev_is_1_3) and (is_1_3 or is_3_3)

// Bearish Signal: If the previous bar is any bearish type (2‑1, 1‑1, or 3‑1)
// and the current bar is either a 1‑1 or a 3‑1 bar.
validSell = (prev_is_2_1 or prev_is_1_1 or prev_is_3_1) and (is_1_1 or is_3_1)

//─────────────────────────────────────────────────────────────
// Plot Only the Signal Triangles
//─────────────────────────────────────────────────────────────
plotshape(validBuy, title="Valid Buy", style=shape.triangleup, location=location.belowbar, 
     color=color.green, size=size.small, text="B")
plotshape(validSell, title="Valid Sell", style=shape.triangledown, location=location.abovebar, 
     color=color.red, size=size.small, text="S")

//─────────────────────────────────────────────────────────────
// Market Order Execution Based on Signals
//─────────────────────────────────────────────────────────────
if validBuy
    // Close any short positions.
    strategy.close("Short", comment="")
    // If not already long, enter a market long.
    if strategy.position_size <= 0
        strategy.entry("Long", strategy.long, comment="")
        
if validSell
    // Close any long positions.
    strategy.close("Long", comment="")
    // If not already short, enter a market short.
    if strategy.position_size >= 0
        strategy.entry("Short", strategy.short, comment="")