Стратегия следования за трендом Dual Time Frame Super


Дата создания: 2023-09-22 14:27:52 Последнее изменение: 2023-09-22 14:27:52
Копировать: 1 Количество просмотров: 760
1
Подписаться
1617
Подписчики

Обзор

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

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

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

Конкретная логика сделки заключается в следующем:

  1. Определение направления сверх трендовых линий в основных временных рамках как направления большого тренда.

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

  3. Установка точки остановки убытков.

  4. Основная временная рамка сверх трендовой линии снова поворачивает и плавная позиция.

Таким образом, можно отфильтровать некоторые отклонения, чтобы сделать вход более точным, комбинируя два циклических показателя.

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

Эта стратегия имеет следующие преимущества:

  1. Поскольку это два временных фрейма, можно более точно оценить тенденции.

  2. Супер-трендовый индикатор чувствителен к изменению тренда, входный точен.

  3. Настройка точки остановки убытков, чтобы контролировать риск.

  4. Стратегическая логика проста, понятна и понятна.

  5. Параметры могут быть оптимизированы для различных сортов.

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

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

  1. Задержка в сверхтрендовых показателях может привести к ошибочному восприятию сигналов.

  2. Неправильно настроенная тормозная остановка может привести к чрезмерному отслеживанию или преднамеренному торможению.

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

  4. Оптимизация параметров зависит от исторических данных, существует риск пересочетания.

  5. Не учитывается влияние на стоимость сделки.

Решение проблемы:

  1. Допустимость корректировки параметров показателя, введение проверки других комбинаций показателей.

  2. Оптимизация позиции стоп-лома в зависимости от динамики данных обратной связи.

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

  4. Расширение диапазона отслеживания данных, многорыночная проверка отслеживания.

  5. Расчет расходов на транзакцию, включая комиссионные, скидки и т.д.

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

Эта стратегия может быть улучшена в следующих аспектах:

  1. тестирование комбинаций из нескольких показателей для поиска оптимальных комбинаций.

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

  3. Оптимизация стратегии стоп-лосс и улучшение прибыльно-неприбыльного соотношения.

  4. Попробуйте комбинировать эффекты различных временных циклов.

  5. Корректировка зоны стоп-стоп в зависимости от количества сделок.

  6. Логика расчета сборов и скидок.

  7. Разработка инструментов для оптимизации графических параметров.

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

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

Исходный код стратегии
/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

// strategy("Super Trend 2", overlay=true, default_qty_value=100)
TrendUp = 0.0
TrendDown = 0.0
Trend = 0.0
MTrendUp = 0.0
MTrendDown = 0.0
MTrend = 0.0

res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=security(syminfo.tickerid,res,close)

TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)