Стратегия импульсной волатильности


Дата создания: 2023-11-28 16:57:28 Последнее изменение: 2023-11-28 16:57:28
Копировать: 1 Количество просмотров: 630
1
Подписаться
1619
Подписчики

Стратегия импульсной волатильности

Обзор

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

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

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

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

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

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

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

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

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

В случае неэффективности буринского пояса, можно сократить параметр n дней, чтобы сделать буринский пояса более чувствительным. Или уменьшить его диапазон, чтобы снизить вероятность убытков. Для обратного решения кривой можно уменьшить ошибку, оптимизировав параметр прорыва.

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

В этой стратегии можно оптимизировать следующие направления:

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

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

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

Исходный код стратегии
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()