Стратегия Dual SuperTrend представляет собой количественную торговую стратегию, которая включает в себя систему двойного канала SuperTrend.
Стратегия Dual SuperTrend происходит от индикатора SuperTrend. SuperTrend состоит из верхних и нижних полос для определения ценовых тенденций и ключевых уровней поддержки / сопротивления.
Стратегия сначала вычисляет истинный диапазон и средний истинный диапазон. Затем она вычисляет базовые диапазоны на основе параметров длины и мультипликатора. Далее она строит канал перерыва, если цена проходит через базовые диапазоны. Таким образом, устанавливается двойная система каналов.
При структуре двойного канала торговые сигналы генерируются, когда цена пересекает разные каналы:
Двухканальный мониторинг позволяет отслеживать как тенденции, так и обратные тенденции.
Стратегия Dual SuperTrend с двуканальной системой имеет следующие преимущества:
Стратегия Dual SuperTrend также сопряжена со следующими рисками:
Риски могут быть смягчены путем корректировки диапазона параметров, добавления фильтров, управления размером позиции и т. д.
Стратегия Dual SuperTrend может быть оптимизирована в следующих аспектах:
Дальнейшие оптимизации могут улучшить параметровое приспособление и анализ ходьбы вперед для более надежной производительности.
Стратегия Dual SuperTrend использует двойной механизм для отслеживания тренда и отслеживания обратного движения. Стабильные торговые стратегии могут быть разработаны с помощью оптимизации параметров, но существуют ограничения. Требуются дополнения для контроля риска. В целом, Dual SuperTrend обеспечивает прочную основу для краткосрочных количественных торговых стратегий.
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Double Supertrend Strategy", overlay=true) // Define your parameters length = input(10, title="Length") multiplier = input(3, title="Multiplier") // Calculate the True Range and Average True Range trueRange = max(high - low, max(abs(high - close[1]), abs(low - close[1]))) averageTrueRange = sma(trueRange, length) // Calculate the basic upper and lower bands basicUpperBand = hl2 + (multiplier * averageTrueRange) basicLowerBand = hl2 - (multiplier * averageTrueRange) // Calculate the final upper and lower bands finalUpperBand = basicUpperBand finalLowerBand = basicLowerBand finalUpperBand := close[1] > finalUpperBand[1] ? max(basicUpperBand, finalUpperBand[1]) : basicUpperBand finalLowerBand := close[1] < finalLowerBand[1] ? min(basicLowerBand, finalLowerBand[1]) : basicLowerBand // Determine if we're currently in an uptrend or downtrend uptrend = close > finalLowerBand[1] downtrend = close < finalUpperBand[1] // Plot the bands plot(uptrend ? finalUpperBand : na, color=color.green, linewidth=2) plot(downtrend ? finalLowerBand : na, color=color.red, linewidth=2) // Define your conditions for entering and exiting trades if (uptrend) strategy.entry("Buy", strategy.long) else if (downtrend) strategy.entry("Sell", strategy.short)