Динамическая стратегия следования за трендом, основанная на угле Ганна

GANN SMA SL TP
Дата создания: 2024-07-30 15:53:39 Последнее изменение: 2024-07-30 15:53:39
Копировать: 0 Количество просмотров: 253
1
Подписаться
1215
Подписчики

Динамическая стратегия следования за трендом, основанная на угле Ганна

Обзор

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

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

  1. Выявление высоких и низких точек колебания: стратегия использует пользовательский определенный цикл (по умолчанию 14) для выявления высоких и низких точек колебания. Эти точки являются основой для нанесения канцлера.

  2. Вычисление углов Ганси: основываясь на выявленных высоких и низких точках колебания, стратегия рассчитывает углы Ганси вверх и вниз. Угол может быть настроен пользователем, по умолчанию 45 градусов.

  3. Сигналы транзакций генерируются:

    • Когда цена пересекает горизонтальную линию Ганца и поднимается вверх, вызывается сигнал “поли”.
    • Когда цена пересекает нижнюю границу Гангеса, запускается сигнал пустоты.
  4. Управление рисками: стратегия включает в себя настраиваемые уровни стоп-лосса и стоп-стоп, чтобы контролировать риск на каждой сделке.

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

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

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

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

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

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

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

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

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

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

  4. Риск обратного тренда: стратегия может привести к убыткам при первоначальном обратном тренде.

Чтобы снизить эти риски, можно рассмотреть:

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

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

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

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

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

  4. Оптимизация машинного обучения: динамическая оптимизация параметров стратегии с использованием алгоритмов машинного обучения может повысить адаптивность стратегии.

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

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

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

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

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

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

//@version=5
strategy("Gann Strategy", overlay=true)

// User inputs
gann_angle_up = input.float(45, "Gann Angle Up (degrees)")
gann_angle_down = input.float(45, "Gann Angle Down (degrees)")
length = input.int(14, "Length for Swing High/Low")

// Functions to find Swing High and Swing Low
var float swingHigh = na
var float swingLow = na

if (high[length] == ta.highest(high, length * 2 + 1))
    swingHigh := high[length]

if (low[length] == ta.lowest(low, length * 2 + 1))
    swingLow := low[length]

// Gann angles calculation
gann_up = swingLow + math.tan(gann_angle_up * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingLow), bar_index, 0))
gann_down = swingHigh - math.tan(gann_angle_down * math.pi / 180) * (bar_index - ta.valuewhen(not na(swingHigh), bar_index, 0))

// Gann angles visualization
plot(na(gann_up) ? na : gann_up, color=color.green, linewidth=2, title="Gann Angle Up")
plot(na(gann_down) ? na : gann_down, color=color.red, linewidth=2, title="Gann Angle Down")

// Entry and exit conditions
longCondition = ta.crossover(close, gann_up)
shortCondition = ta.crossunder(close, gann_down)

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Visualization of entry and exit points
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Setting stop loss and take profit levels
stopLossLevel = input.float(1.0, "Stop Loss Level (percent)") / 100
takeProfitLevel = input.float(2.0, "Take Profit Level (percent)") / 100

if (strategy.position_size > 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close * (1 + takeProfitLevel), stop=close * (1 - stopLossLevel))

if (strategy.position_size < 0)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close * (1 - takeProfitLevel), stop=close * (1 + stopLossLevel))