Стратегия покупки с низкой волатильностью и высокой волатильностью


Дата создания: 2024-01-08 11:33:58 Последнее изменение: 2024-01-08 11:33:58
Копировать: 0 Количество просмотров: 607
1
Подписаться
1617
Подписчики

Стратегия покупки с низкой волатильностью и высокой волатильностью

Обзор

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

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

Эта стратегия определяет волатильность, рассчитывая ATR и его SMA. В частности, она рассчитывает SMA для ATR, а затем рассчитывает соотношение ATR к SMA. Если это соотношение выше, чем пользовательское определение порога volatilityTargetRatio, то волатильность считается высокой; если ниже этого порога, то волатильность считается низкой.

В зависимости от режима, выбранного пользователем, стратегия создает сигнал покупки при высокой или низкой волатильности. После покупки стратегия будет держать определенное количество барсов (определенное sellAfterNBarsLength), а затем будет ликвидирована.

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

Основные преимущества этой стратегии:

  1. Можно визуально сравнить эффективность стратегии покупки в периоды низкой и высокой волатильности.
  2. С помощью SMA можно сгладить ATR и отфильтровать ложные прорывы.
  3. Различные уровни волатильности могут быть протестированы путем корректировки параметров.

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

Основные риски этой стратегии:

  1. Если вы покупаете только низкую волатильность, вы можете упустить возможность повысить цены.
  2. Если вы покупаете только высокую волатильность, это может привести к увеличению системного риска.
  3. Неправильная настройка параметров может привести к пропущенному моменту покупки или преждевременному закрытию позиции.

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

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

Эта стратегия может быть оптимизирована:

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

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

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

Исходный код стратегии
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © I11L

//@version=5
strategy("I11L - Better Buy Low Volatility or High Volatility?", overlay=false)

mode = input.string("Buy low Volatility",options = ["Buy low Volatility","Buy high Volatility"])
volatilityTargetRatio = input.float(1,minval = 0, maxval = 100,step=0.1, tooltip="1 equals the average atr for the security, a lower value means that the volatility is lower")
atrLength = input.int(14)

atr = ta.atr(atrLength) / close
avg_atr = ta.sma(atr,atrLength*5)
ratio = atr / avg_atr

sellAfterNBarsLength = input.int(5, step=5, minval=0)


var holdingBarsCounter = 0

if(strategy.opentrades > 0)
    holdingBarsCounter := holdingBarsCounter + 1


isBuy = false

if(mode == "Buy low Volatility")
    isBuy := ratio < volatilityTargetRatio
else
    isBuy := ratio > volatilityTargetRatio

isClose = holdingBarsCounter > sellAfterNBarsLength



if(isBuy)
    strategy.entry("Buy",strategy.long)

if(isClose)
    holdingBarsCounter := 0
    strategy.exit("Close",limit=close)

plot(ratio, color=isBuy[1] ? color.green : isClose[1] ? color.red : color.white)
plot(1, color=color.white)