Система двойного сопровождения трендов

Автор:Чао Чжан, Дата: 2023-11-02 17:19:22
Тэги:

Обзор

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

Логика стратегии

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

Во-первых, стратегия рассчитывает самые высокие и самые низкие цены долгосрочной коробки для определения основного направления тренда.

  • Если самая высокая цена пересекает высокую цену предыдущей панели, она определяется как восходящий тренд, которому присваивается значение 1
  • Если самая низкая цена пересекается ниже самой низкой цены предыдущей панели, она определяется как нисходящий тренд, которому присваивается значение -1
  • В противном случае, поддерживайте оригинал направления тренда

После определения основного тренда стратегия начинает занимать позиции на основе краткосрочных сигналов.

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

Кроме того, стоп-лосс и брокерские операции выполняются следующим образом:

  • Длинный стоп-лосс - это самая низкая цена долгосрочной коробки, короткий стоп-лосс - самая высокая цена долгосрочной коробки.
  • Долгая прибыль - это самая высокая цена краткосрочной коробки, короткая прибыль - самая низкая цена краткосрочной коробки.

Когда основная тенденция изменится, закрыть все позиции.

Анализ преимуществ

Преимущества этой стратегии включают:

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

Анализ рисков

Риски этой стратегии включают:

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

Руководство по оптимизации

Стратегия может быть улучшена путем:

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

Резюме

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

[/trans]


/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-26 07:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © LonesomeTheBlue

//@version=4
strategy("Grab Trading System", overlay = true)
flb = input(defval = 80, title = "Longterm Period", minval = 1)
slb = input(defval = 21, title = "Shortterm Period", minval = 1)
showtarget = input(defval = true, title = "Show Target")
showtrend = input(defval = true, title = "Show Trend")

major_resistance = highest(flb)
major_support = lowest(flb)
minor_resistance = highest(slb)
minor_support = lowest(slb)

var int trend = 0
trend := high > major_resistance[1] ? 1 : low < major_support[1] ? -1 : trend
strategy.entry("Buy", true, when = trend == 1 and low[1] == minor_support[1] and low > minor_support)
strategy.entry("Sell", false, when = trend == -1 and high[1] == minor_resistance[1] and high < minor_resistance)

if strategy.position_size > 0
    strategy.exit("Buy", stop = major_support, comment = "Stop Buy")
    if high[1] == minor_resistance[1] and high < minor_resistance
        strategy.close("Buy", comment ="Close Buy")
    
if strategy.position_size < 0
    strategy.exit("Sell", stop = major_resistance, comment = "Stop Sell")
    if low[1] == minor_support[1] and low > minor_support
        strategy.close("Sell", comment ="Close Sell")

if strategy.position_size != 0 and change(trend)
    strategy.close_all()
    
majr = plot(major_resistance, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na)
majs = plot(major_support, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na)
minr = plot(minor_resistance, color = showtarget and trend == 1 and strategy.position_size > 0 ? color.yellow : na, style = plot.style_circles)
mins = plot(minor_support, color = showtarget and trend == -1 and strategy.position_size < 0 ? color.yellow : na, style = plot.style_circles)

fill(majs, mins, color = showtrend and trend == 1 and trend[1] == 1 ? color.lime : na, transp = 85)
fill(majr, minr, color = showtrend and trend == -1 and trend[1] == -1 ? color.red : na, transp = 85)


Больше