Многоосцилляторная торговая система: автоматизированная многонаправленная стратегия управления позициями на основе TSL

TSL 摆动交易 趋势跟踪 自动化交易系统 多方向交易 防护止损 波动率适应
Дата создания: 2025-03-06 10:57:03 Последнее изменение: 2025-03-06 10:57:03
Копировать: 0 Количество просмотров: 348
2
Подписаться
319
Подписчики

Многоосцилляторная торговая система: автоматизированная многонаправленная стратегия управления позициями на основе TSL Многоосцилляторная торговая система: автоматизированная многонаправленная стратегия управления позициями на основе TSL

Обзор

Система торговли с множественными волатильными индикаторами - это количественная торговая стратегия, основанная на техническом анализе, основанная на идентификации волатильных максимумов и минимумов для определения изменения тенденции на рынке. Эта стратегия, отслеживая максимальные и минимальные цены за последние N циклов, создает динамический уровень стоп-лора (TSL), который служит в качестве границы для принятия решений по многомерной торговле. Система автоматически выполняет сигнал покупки, когда цена превышает уровень TSL, и автоматически выполняет сигнал продажи, когда цена падает ниже уровня TSL, одновременно автоматически управляя позициями, гарантируя, что каждый позиционер держит позицию в одном направлении.

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

Основная логика стратегии заключается в отслеживании уровня остановки убытков (TSL) и реализуется следующим образом:

  1. Ключевые уровни цен в течение цикла:

    • проходитьta.highest(high, no)Вычислить максимальную цену за последние новые циклы ((res))
    • проходитьta.lowest(low, no)Вычислить минимальные цены за последние новые циклы ((sup)
  2. Определение позиции цены относительно предыдущих максимумов и минимумов:

    • При закрытии цены выше максимума предыдущего цикла, avd присваивается 1 (по восходящей тенденции)
    • При закрытии цены ниже минимальной цены предыдущего цикла, avd присваивается как -1 (в нисходящем тренде)
    • В остальных случаях avd присваивается 0 (без четкой тенденции)
  3. Конструировать следящий стоп-уровень (TSL):

    • Когда тренд идет вверх, TSL устанавливает поддержку ((sup), которая служит в качестве точки остановки.
    • Когда тренд идет вниз, TSL устанавливает точку сопротивления ((res), которая служит точкой обратного сигнала
  4. Создание торговых сигналов:

    • Покупательский сигнал ((Buy): когда TSL проходит над ценой закрытия
    • Сигнал продажи ((Sell): когда TSL пробивается под ценой закрытия
  5. Выполнение операций:

    • Покупать, когда сигнал срабатывает, ликвидировать пустую первую позицию и открыть многоглавную позицию
    • Продажа по сигналу снятия позиции с множества голов и открытия позиции с пустой головой

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

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

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

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

  3. Двухсторонний торговый механизм: поддерживает одновременную торговлю с большим количеством и пустым, что позволяет получать прибыль как в растущем, так и в падающем рынке.

  4. Встроенный риск-менеджмент: дизайн, отслеживающий уровень стоп-лосса (TSL), по сути, включает в себя функцию стоп-лосса, ограничивающую максимальную потерю на одну сделку.

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

  6. Гибкость параметров: можно адаптироваться к рыночным характеристикам разных временных периодов, регулируя параметры колебания цикла ((no), применяя от короткой до средней длинной линии.

  7. Ясные сигнальные сигналы: система предоставляет текстовые и визуальные сигналы, уменьшающие вероятность ошибочных операций.

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

  1. Недостаточная производительность в шокирующем рынке: в шокирующем рынке эта стратегия может привести к частому возникновению ложных сигналов, что приводит к последовательным остановкам.

  2. Риск проскальзывания и задержки исполнения: в реальном режиме может существовать разница во времени между генерированием сигнала и исполнением ордера, что приводит к тому, что фактическая цена сделки отклоняется от идеальной цены.

  3. Ограничения по управлению фиксированными позициями: текущая стратегия использует фиксированные единицы ((qty=1) для торговли, отсутствует механизм корректировки размеров позиций в зависимости от волатильности рынка или размера счета.

  4. Чувствительность параметров: эффективность стратегии сильно зависит от параметров колебания циклов ((no), в разных рыночных условиях могут потребоваться разные значения параметров.

  5. Слабое реагирование на чрезвычайные ситуации: в случае быстрых ценовых изменений, вызванных важными новостями или черными белками, уровень остановки может быть не скорректированным, что приводит к большим потерям.

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

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

  1. Динамическое управление позициями: Динамическая корректировка размеров позиций на основе рыночной волатильности или пропорции баланса счета, а не фиксированной единицы торгов. Это может быть реализовано путем добавления следующего кода:
   volatility = ta.atr(14) / close * 100  // 计算波动率百分比
   position_size = strategy.equity * 0.01 / volatility  // 根据波动率调整仓位
  1. Оптимизация фильтрации сигнала: введение дополнительных технических показателей, таких как RSI, MACD или ATR, в качестве фильтра сигнала, уменьшает ложный сигнал. Например:
   rsi = ta.rsi(close, 14)
   valid_buy = Buy and rsi < 70  // 避免在超买区域买入
   valid_sell = Sell and rsi > 30  // 避免在超卖区域卖出
  1. Параметры самостоятельной адаптации: параметры колебательного цикла, скорректированные на основе динамики волатильности рынка ((no), используют меньшие значения в условиях низкой волатильности и большие значения в условиях высокой волатильности.

  2. Добавление целевых показателей прибыли: установление целевых показателей прибыли на основе ATR или уровня поддержки/сопротивления, блокирование части прибыли, когда рынок движется достаточно далеко в благоприятном направлении.

  3. Фильтр времени: добавление ограничений на время торгового окна, чтобы избежать периодов низкой ликвидности или необычного колебания рынка.

  4. Механизм контроля за отзывом: внедрение механизма приостановки торговли на основе процента отзывов в отношении учетных записей, приостанавливая торговлю, когда последовательные убытки достигают заданной отметки.

  5. Многоциклическое подтверждение: в сочетании с тенденцией более высокого временного цикла, открывайте позиции только в направлении, соответствующем тенденции более высокого цикла, повышая выигрышную вероятность.

Эти направления оптимизации позволяют значительно повысить устойчивость и адаптивность стратегии, особенно в случае изменения рыночной среды, обеспечивая лучшую прибыль от корректировки риска.

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

Торговая система с несколькими колеблющимися индикаторами - это автоматизированная торговая стратегия, основанная на техническом анализе, которая захватывает изменения в рыночных тенденциях и выполняет двунаправленную торговлю с несколькими колебаниями путем динамического отслеживания уровня остановки (TSL). Эта стратегия отлично работает на рынках с ясными тенденциями, эффективно отслеживая движение цен и автоматически управляя позициями.

Ключевые преимущества стратегии заключаются в ее простом и эффективном механизме генерации сигналов и встроенных функциях управления рисками, особенно подходящих для торговли среднесрочными и краткосрочными тенденциями. Однако, стратегия может сталкиваться с проблемой частого ложного сигнала на волатильных рынках и нуждается в дальнейшей оптимизации для повышения ее адаптации в различных рыночных условиях.

Эта стратегия может еще больше повысить свою рискованную прибыль и стабильность путем реализации оптимизационных мер, таких как динамическое управление позициями, подтверждение многозначных сигналов и адаптивная коррекция параметров. Для количественных трейдеров эта автоматизированная система, основанная на четких правилах, обеспечивает надежную основу, позволяющую уменьшить эмоциональные помехи и сохранить торговую дисциплину.

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

Исходный код стратегии
/*backtest
start: 2024-05-06 00:00:00
end: 2025-03-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Accurate Swing Trading System with Auto Entry (Long & Short)", overlay=true)

// Parameters
no = input.int(3, title="Swing")
Barcolor = input.bool(true, title="Barcolor")
Bgcolor = input.bool(false, title="Bgcolor")

// Calculate TSL (Trailing Stop Level)
res = ta.highest(high, no)
sup = ta.lowest(low, no)
avd = close > res[1] ? 1 : close < sup[1] ? -1 : 0
avn = ta.valuewhen(avd != 0, avd, 0)
tsl = avn == 1 ? sup : res

// Define Buy and Sell Conditions
Buy = ta.crossover(close, tsl)
Sell = ta.crossunder(close, tsl)

plotshape(Buy, "BUY", shape.labelup, location.belowbar, color.green, text="BUY", textcolor=color.black)
plotshape(Sell, "SELL", shape.labeldown, location.abovebar, color.red, text="SELL", textcolor=color.black)

// Plot TSL
colr = close >= tsl ? color.green : close <= tsl ? color.red : na
plot(tsl, color=colr, linewidth=3, title="TSL")
barcolor(Barcolor ? colr : na)
bgcolor(Bgcolor ? colr : na)

// Alerts
alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")

// Automatic Entry & Exit with 1 Unit
if (Buy)
    strategy.entry("Long", strategy.long, qty=1)  // Enter long with 1 unit
    strategy.close("Short")  // Close any open short positions
    alert("Buy Signal - Entry Long", alert.freq_once_per_bar_close)
    alert("Buy Entry Sound", alert.freq_once_per_bar_close)

if (Sell)
    strategy.entry("Short", strategy.short, qty=1)  // Enter short with 1 unit
    strategy.close("Long")  // Close any open long positions
    alert("Sell Signal - Entry Short", alert.freq_once_per_bar_close)
    alert("Sell Entry Sound", alert.freq_once_per_bar_close)

// Plotting lines for open trades
var float long_price = na
var float short_price = na

// For Long Position: Plot the entry line at the price of the open position
if (strategy.opentrades > 0)
    if (strategy.opentrades.entry_id(0) == "Long" and not na(strategy.opentrades.entry_price(0)))
        long_price := strategy.opentrades.entry_price(0)
    if (strategy.opentrades.entry_id(0) == "Short" and not na(strategy.opentrades.entry_price(0)))
        short_price := strategy.opentrades.entry_price(0)

plot(long_price, color=color.green, style=plot.style_line, linewidth=2, title="Long Entry Line", offset=-1)
plot(short_price, color=color.red, style=plot.style_line, linewidth=2, title="Short Entry Line", offset=-1)