Стратегия многовременной торговли, сочетающая гармонические модели и индикаторы Вильямса

WPR SL TP RR Pivot
Дата создания: 2025-01-17 16:19:15 Последнее изменение: 2025-01-17 16:19:15
Копировать: 0 Количество просмотров: 463
1
Подписаться
1617
Подписчики

Стратегия многовременной торговли, сочетающая гармонические модели и индикаторы Вильямса

Обзор

Стратегия представляет собой усовершенствованную торговую систему, которая сочетает в себе гармонический паттерн и процентный рейтинг Вильямса (WPR). Он работает путем выявления гармонических моделей на рынке (таких как модели Гартли, Летучая мышь, Краб и Бабочка) и объединения их с уровнями перекупленности и перепроданности осциллятора Уильямса для определения входов и выходов из сделок. Стратегия использует механизм множественного подтверждения для повышения точности и надежности транзакций за счет синергии технических индикаторов.

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

Основная логика стратегии включает в себя следующие ключевые части:

  1. Распознавание гармонических моделей: используйте точки разворота цен для выявления потенциальных гармонических моделей, которые определяют структуру рынка путем анализа взаимосвязи максимумов и минимумов.
  2. Расчет индикатора Вильямса: используйте пользовательские циклы для расчета индикатора Вильямса и оценивайте состояние рынка, анализируя взаимосвязь между самой высокой ценой, самой низкой ценой и ценой закрытия.
  3. Условия участия:
    • Вход в длинную позицию: когда появляется бычья гармоническая модель и осциллятор Уильямса находится в зоне перепроданности.
    • Короткая позиция: когда появляется медвежья гармоническая модель и осциллятор Уильямса находится в зоне перекупленности.
  4. Управление рисками: используйте динамический стоп-лосс на основе недавних минимумов/максимумов и устанавливайте позиции тейк-профит на основе соотношения риска и прибыли.

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

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

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

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

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

  1. Улучшения распознавания образов:
    • Добавлена ​​более строгая проверка гармонического соотношения
    • Внедрение анализа структуры цен для повышения точности распознавания образов
  2. Фильтрация сигнала:
    • Добавить фильтр тренда
    • Рассмотрите возможность добавления индикаторов волатильности для адаптации к различным рыночным условиям.
  3. Оптимизация управления рисками:
    • Достичь динамической корректировки соотношения риска и доходности
    • Усиление управления позициями на основе колебаний рынка

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

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

Исходный код стратегии
/*backtest
start: 2025-01-09 00:00:00
end: 2025-01-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=5
strategy("Harmonic Pattern with WPR Backtest", overlay=true)

// === Inputs ===
patternLength = input.int(5, title="Pattern Length")
wprLength = input.int(14, title="WPR Length")
wprOverbought = input.float(-20, title="WPR Overbought Level")
wprOversold = input.float(-80, title="WPR Oversold Level")
riskRewardMultiplier = input.float(0.618, title="Take-Profit Risk/Reward Multiplier")
stopLossBuffer = input.float(0.005, title="Stop-Loss Buffer (%)")

// === Manual Calculation of William Percent Range (WPR) ===
highestHigh = ta.highest(high, wprLength)
lowestLow = ta.lowest(low, wprLength)
wpr = ((highestHigh - close) / (highestHigh - lowestLow)) * -100

// === Harmonic Pattern Detection (Simplified Approximation) ===
// Calculate price pivots
pivotHigh = ta.pivothigh(high, patternLength, patternLength)
pivotLow = ta.pivotlow(low, patternLength, patternLength)

// Detect Bullish and Bearish Harmonic Patterns
bullishPattern = pivotLow and close > ta.lowest(close, patternLength)  // Simplified detection for bullish patterns
bearishPattern = pivotHigh and close < ta.highest(close, patternLength)  // Simplified detection for bearish patterns

// === Entry Conditions ===
longCondition = bullishPattern and wpr < wprOversold
shortCondition = bearishPattern and wpr > wprOverbought

// === Stop-Loss and Take-Profit Levels ===
longEntryPrice = close
longSL = ta.valuewhen(longCondition, low, 0) * (1 - stopLossBuffer)  // Stop-loss for long trades
longTP = longEntryPrice * (1 + riskRewardMultiplier)  // Take-profit for long trades

shortEntryPrice = close
shortSL = ta.valuewhen(shortCondition, high, 0) * (1 + stopLossBuffer)  // Stop-loss for short trades
shortTP = shortEntryPrice * (1 - riskRewardMultiplier)  // Take-profit for short trades

// === Backtesting Logic ===
// Long Trade
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", stop=longSL, limit=longTP)

// Short Trade
if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", stop=shortSL, limit=shortTP)

// === Visualization ===
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Long Entry Signal")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Short Entry Signal")