Стратегия расхождения осциллятора тренда волатильности,

WT VWAP
Дата создания: 2024-05-28 17:43:54 Последнее изменение: 2024-05-28 17:43:54
Копировать: 0 Количество просмотров: 721
1
Подписаться
1617
Подписчики

Стратегия расхождения осциллятора тренда волатильности,

Обзор

Эта стратегия объединяет волатильный индикатор WaveTrend (WT) и торгово-весовую среднюю цену (VWAP) для захвата потенциальных возможностей для обратного тренда путем идентификации цены и отклонения от индикатора. Стратегия использует ATR (Average True Range) для определения стоп-позиции и динамического корректирования позиционного масштаба в зависимости от процента риска в счетах. Основные преимущества стратегии заключаются в ее способности отслеживать тенденции и меры по управлению риском, однако в волатильных рынках возможны убытки.

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

  1. Вычисление индикатора колебаний WaveTrend ((WT): генерирует индикатор колебаний динамики, сравнивая текущую цену с разницами между ее каналом и средним значением.
  2. Расчет суммы сделок в виде средневзвешенной цены (VWAP): используется сумма сделок в качестве веса для расчета средневзвешенной цены.
  3. Идентификация отклонения цены от WT: когда цены создают новый высокий/новый низкий уровень, а индикатор не создает нового высокого/нового низкого, это указывает на возможность обратного тренда.
  4. Условия входа: открыть позицию, когда определяется отклонение от цены, и закрыть позицию, когда определяется отклонение от цены
  5. Остановить: Динамическое положение остановки, основанное на ATR (Average True Range).
  6. Размер позиции: размер позиции для каждой сделки динамически корректируется в зависимости от процента риска в счете и стоп-лосс.
  7. Цвет фона: изменение цвета фона в зависимости от уровня перекупа/перепродажи индикатора, обеспечивает дополнительные визуальные подсказки.

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

  1. Следить за тенденциями: эта стратегия позволяет уловить потенциальные возможности для изменения тенденции, идентифицируя цены и отклонения от показателей.
  2. Управление рисками: использование динамического стоп-лосса на основе ATR и корректировка размера позиции в соответствии с процентом риска помогает контролировать потенциальные потери.
  3. Визуальные подсказки: цвет фона изменяется в зависимости от состояния перекупа/перепродажи индикатора, что дает трейдеру дополнительный визуальный сигнал.
  4. Гибкость: параметры этой стратегии (например, длина канала, средняя длина, уровень перекупа/перепродажи) могут быть скорректированы в зависимости от различных рыночных условий и стилей торговли.

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

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

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

  1. Тренд-фильтрация: при появлении отклонений вводятся дополнительные индикаторы подтверждения тренда (например, скользящая средняя) для фильтрации потенциальных ложных сигналов.
  2. Динамические параметры: параметры индекса, скорректированные в соответствии с волатильностью рынка, используют более короткие каналы и среднюю длину при низкой волатильности, более длинные параметры - при высокой волатильности.
  3. Остановка: введение динамических уровней остановки, основанных на риско-рентабельном соотношении или целевой цене, для лучшего управления выигрышными позициями.
  4. Многопространственная фильтрация: фильтрация торговых сигналов в зависимости от общего направления тренда на рынке (например, долгосрочная скользящая средняя) и торговля только в направлении тренда.

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

WaveTrend Oscillator Divergence Strategy объединяет волатильные трендовые индикаторы и торгово-весовые средние цены для выявления потенциальных возможностей для перехода в тренд. Преимущества этой стратегии заключаются в ее способности отслеживать тенденции и мерах по управлению рисками, но она может быть подвержена риску на волатильных рынках. Выполнение стратегии может быть дополнительно оптимизировано путем введения дополнительных фильтрующих условий, корректировки динамических параметров и улучшенных правил выхода.

Исходный код стратегии
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("PipShiesty Swagger", overlay=true)

// WaveTrend Oscillator (WT)
n1 = input.int(10, "Channel Length")
n2 = input.int(21, "Average Length")
obLevel1 = input.float(60.0, "Overbought Level 1")
obLevel2 = input.float(53.0, "Overbought Level 2")
osLevel1 = input.float(-60.0, "Oversold Level 1")
osLevel2 = input.float(-53.0, "Oversold Level 2")

ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// VWAP
vwap = ta.vwma(close, n1)

// Signal Line
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Bullish and Bearish Divergences
bullishDivergence = (ta.lowest(close, 5) > ta.lowest(close[1], 5)) and (wt1 < wt1[1]) and (close > close[1])
bearishDivergence = (ta.highest(close, 5) < ta.highest(close[1], 5)) and (wt1 > wt1[1]) and (close < close[1])

// Plot WaveTrend Oscillator
plot(wt1, title="WT1", color=color.blue)
plot(wt2, title="WT2", color=color.red)

// Plot Divergences
plotshape(series=bullishDivergence, location=location.belowbar, color=color.green, style=shape.labelup, title="Bullish Divergence")
plotshape(series=bearishDivergence, location=location.abovebar, color=color.red, style=shape.labeldown, title="Bearish Divergence")

// Risk Management Parameters
riskPercentage = input.float(1, title="Risk Percentage per Trade", minval=0.1, step=0.1) / 100
stopLossATR = input.float(1.5, title="Stop Loss ATR Multiplier", minval=0.5, step=0.1)

// ATR Calculation
atr = ta.atr(14)

// Position Size Calculation
calculatePositionSize(stopLoss) =>
    riskAmount = strategy.equity * riskPercentage
    positionSize = riskAmount / stopLoss
    positionSize

// Entry and Exit Logic with Stop Loss
if bullishDivergence
    stopLoss = low - atr * stopLossATR
    positionSize = calculatePositionSize(close - stopLoss)
    strategy.entry("Buy", strategy.long, qty=positionSize)
    strategy.exit("Sell", from_entry="Buy", stop=stopLoss)

if bearishDivergence
    strategy.close("Buy")

// Plot VWAP
plot(vwap, title="VWAP", color=color.orange)

// Background color to indicate Overbought/Oversold conditions
bgcolor(wt1 > obLevel1 ? color.new(color.red, 90) : na, title="Overbought Level 1")
bgcolor(wt1 < osLevel1 ? color.new(color.green, 90) : na, title="Oversold Level 1")
bgcolor(wt1 > obLevel2 ? color.new(color.red, 70) : na, title="Overbought Level 2")
bgcolor(wt1 < osLevel2 ? color.new(color.green, 70) : na, title="Oversold Level 2")