Стратегия EMA Enhanced Super Trend


Дата создания: 2023-10-07 10:07:15 Последнее изменение: 2023-10-07 10:07:15
Копировать: 1 Количество просмотров: 700
1
Подписаться
1617
Подписчики

Обзор

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

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

Эта стратегия основана на следующих этапах:

  1. Расчет среднего истинного диапазона колебаний ATR за последние N дней. Здесь используется метод расчета ATR, определенный Уайлдером, который лучше отражает текущие колебания рынка.

  2. Вычисление верхней и нижней полос в зависимости от коэффициента корректировки ATR и atk. Верхняя линия = цена - ((atk умноженная на ATR); Нижняя линия = цена + ((atk умноженная на ATR)). При этом atk обычно устанавливается между 2 и 3.

  3. Сравнение отношений цены с верхней и нижней орбитальными линиями, определение направления тренда. Цены на верхней и верхней орбитальных линиях являются позитивными сигналами; цены на нижней и нижней орбитальных линиях являются нисходящими сигналами.

  4. При появлении торгового сигнала, делается лишний или пустой. Здесь в сочетании с подвижной средней определяется качество сигнала.

  5. Присоединяйтесь к стратегии контроля рисков Stop Loss.

  6. Применение цветовых меток поведения для определения состояния стратегии.

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

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

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

  1. Быстро реагировать на ценовые изменения. ATR может быстро реагировать на последние тенденции, что позволяет своевременно улавливать изменения в тенденциях.

  2. Небольшой отход. На верхней и нижней полосе имеется определенная буферная зона, которая может уменьшить вероятность того, что стоп-дема будет разбита, и снизить отход.

  3. Торговые сигналы четкие. Прорыв в диапазоне сбора - это высококачественный торговый сигнал, в котором можно четко определить направление множественного диверсификации.

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

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

  6. Легкость оптимизации. Дополнительные модули, такие как мобильная остановка, фильтрация и другие, могут быть дополнительно оптимизированы.

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

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

Однако эта стратегия также несет в себе определенные риски:

  1. Риск ошибки в оценке тренда. При колебании цены могут появляться ошибочные сигналы.

  2. Риск выбора точки выхода. Необходимо разумно выбрать точку остановки, чтобы предотвратить преждевременный выход.

  3. Риск оптимизации параметров. ATR-циклы и кратность требуют повторного тестирования оптимизации, неправильная настройка может повлиять на эффективность стратегии.

  4. Слишком высокая частота торгов рискованна. Слишком высокая частота торгов может возникнуть в условиях резкой волатильности.

  5. В некоторых рынках, где тенденции не очевидны, эффект может быть плохим.

  6. Риск корректировки на реальном диске. При работе на реальном диске необходимо также оптимизировать корректировку для скольжения, комиссионных и т. Д.

  7. Системный риск. Необходимо учитывать риск-контроль всей системы, а не полагаться на эту стратегию в одиночку.

Для борьбы с этими рисками можно использовать следующие меры:

  1. Оптимизация параметров ATR для повышения точности суждения.

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

  3. Используйте мобильные стоп-локации, чтобы зафиксировать прибыль и уменьшить отзыв.

  4. Фильтрационные условия для контроля частоты транзакций.

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

  6. Попробуйте различные сорта и найдите лучшие варианты применения.

  7. Все риски, связанные с торговлей, учитываются в реальном мире.

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

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

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

  2. Оптимизация параметров ATR. Можно тестировать различные параметры ATR-циклов, чтобы найти оптимальные значения.

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

  4. Присоединение к мобильной стратегии остановки убытков. Динамическая остановка убытков в соответствии с ATR или волатильностью может еще больше снизить отзыв.

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

  6. Применение машинного обучения для улучшения оценки сигналов. Использование обучения моделей, таких как RNN, для оценки моделей сигналов купли-продажи.

  7. Параметры могут быть скорректированы в соответствии с особенностями разновидности. Например, для волатильных акций можно уместно сократить цикл ATR.

  8. Оптимизация входных точек. Для поиска лучших входных точек можно использовать такие методы, как прорыв и откат.

  9. Показатель объединенной мощности. Добавление объема взаимодействия и других вспомогательных показателей для определения силы сигнала.

  10. Добавить стратегию остановки. Определить остановку в зависимости от энергетических показателей тренда и т. Д.

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

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

Исходный код стратегии
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
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/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => true
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)

//@version=3
//study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true)
//len1 = input(17, minval=1, title="Fast")
//len2 = input(72, minval=1, title="Medium")
len3 = input(305, minval=1, title="Slow")
//src1 = input(close, title="Source Fast")
//src2 = input(close, title="Source Medium")
src3 = input(close, title="Source Slow")
//out1 = ema(src1, len1)
//out2 = ema(src2, len2)
out3 = ema(src3, len3)
//plot(out1, title="EMA1", color=fuchsia)
//plot(out2, title="EMA2", color=orange)
plot(out3, title="EMA3", color=color.blue)