Эта стратегия генерирует сигналы входа и выхода на основе индикатора канала SuperTrend для реализации автоматизированной квантовой торговли. Индикатор канала SuperTrend может четко идентифицировать точки прорыва и уровни поддержки / сопротивления для определения направления тренда. Эта стратегия включает в себя преимущества этого индикатора для проведения как длинной, так и короткой торговли.
Эта стратегия использует ATR и Donchian Channel для вычисления двух линий стоп-лосса для длинных и коротких позиций. В частности, она вычисляет значение ATR с использованием периода ATR и параметров мультипликатора, затем добавляет и вычитает его из среднего числа самых высоких и самых низких, чтобы получить длинные и короткие линии стоп-лосса. Когда цена закрытия превышает длинную линию стоп-лосса вверх, генерируется длинный сигнал. Когда цена закрытия превышает короткую линию стоп-лосса вниз, запускается короткий сигнал.
После занятия длинных или коротких позиций линии стоп-лосса обновляются динамически, чтобы блокировать прибыль. Новая линия стоп-лосса не будет ниже или выше предыдущей, избегая проникновения стоп-лосса. Когда между текущей и предыдущей линией стоп-лосса появляется новый максимум или минимум, линия стоп-лосса корректируется на последнюю цену.
Наибольшее преимущество этой стратегии заключается в том, что индикатор SuperTrend может четко определить направление тренда и ключевые уровни поддержки / сопротивления.
В частности, две линии стоп-лосса в индикаторе канала SuperTrend представляют собой основу стоимости позиции и последнюю поддержку / сопротивление. Они предлагают очень четкое руководство для входов и выходов. Между тем линия стоп-лосса динамически обновляется, чтобы зафиксировать прибыль и предотвратить проникновение стоп-лосса.
В целом, эта стратегия вступает в свое время, когда определяется тенденция, контролирует риск с помощью динамического стоп-лосса, что делает ее относительно надежной количественной торговой стратегией.
Основный риск этой стратегии заключается в возможности проникновения стоп-лосса. Когда цена сильно колеблется, новая линия стоп-лосса может стать ниже или выше предыдущей, вызывая проникновение стоп-лосса и увеличение потерь.
Кроме того, сигналы вхождений, генерируемые индикатором канала SuperTrend, не работают хорошо на рыночных диапазонах, что иногда приводит к неправильным сделкам.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизируйте период ATR и параметры мультипликатора, чтобы найти наилучшую комбинацию путем обратного тестирования различных значений и анализа показателей, таких как доходность и соотношение Шарпа.
Добавьте другие индикаторы для фильтрации сигнала, чтобы избежать ошибочных записей на рыночных диапазонах.
Включите индикаторы объема, чтобы отрегулировать позицию стоп-лосса.
Внедрить модели машинного обучения для адаптивной оптимизации параметров.
Эта стратегия происходит из индикатора SuperTrend с четким суждением направления тренда и относительно высокой скоростью выигрыша. Она также применяет динамическое отслеживание ATR для контроля одиночных потерь. Производительность может быть улучшена с помощью оптимизации параметров, оптимизации индикатора и т. Д. В целом, это надежная стратегия, подходящая для автоматической квантовой торговли.
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //EU ESCREVI ISSO TUDO, PARA FICAR BEM CLARO strategy("SuperTrend Strategy", overlay=true) //AQUI OS INPUTS PARA A SUPERTREND length = input(title="ATR Period", type=input.integer, defval=7) mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=7) showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true) //AQUI O CALCULO DO ATR STOPS atr = mult * atr(length) //AQUI A TRANSFORMAÇÃO DO ATR STOPS EM SUPERTREND //- //A LÓGICA PARA LONGSTOP longStop = hl2 - atr longStopPrev = nz(longStop[1], longStop) longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop //A LÓGICA PARA SELLSTOP shortStop = hl2 + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop //DIREÇÃO DO INDICADOR dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and close > shortStopPrev ? 1 : dir == 1 and close < longStopPrev ? -1 : dir //DEFININDO AS CORES DAS LINHAS DA SUPERTREND longColor = color.lime shortColor = color.red //PLOTANDO NO GRÁFICO A SUPERTREND E A ESTRATÉGIA plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=3, color=longColor) buySignal = dir == 1 and dir[1] == -1 plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=3, color=shortColor) sellSignal = dir == -1 and dir[1] == 1 //DEFININDO AS FUNÇÕES DE COMPRA E VENDA strategy.entry("long", strategy.long, when = buySignal) strategy.entry("short", strategy.short, when = sellSignal)