Эта стратегия использует метод "Wilder volatility trailing stop" в сочетании с индикатором ATR и различными типами скользящих средних для реализации адаптивной стратегии отслеживания тренда.
Ядром этой стратегии является алгоритм остановки после волатильности Уайлдера. Он сначала рассчитывает индикатор ATR и динамически графизирует линию остановки по вводу длины и мультипликатора ATR. Затем он отслеживает самый высокий и самый низкий уровень линии остановки по выбранному варианту цены среди закрытых, высоких и низких цен. Он посылает торговые сигналы, когда цена нарушает линию остановки.
В коде функция f_ma реализует различные скользящие средние, включая RMA, EMA, SMA и Hull MA. Индикатор ATR рассчитывается и умножается на пользовательский мультипликатор, чтобы генерировать линию остановки, основанную на волатильности. Самые высокие и низкие уровни этой линии отслеживаются с помощью функций высшего и низшего.
Благодаря гибкому использованию индикатора ATR, различных скользящих средних значений и регулируемых параметров, эта стратегия реализует высоко адаптивную систему отслеживания тренда.
Эта стратегия использует алгоритм "Wilder Volatility Trailing Stop", который является зрелой и надежной методологией отслеживания тренда.
Стратегия использует индикатор ATR для динамического расчета линии стоп-лосса, избегая жестких точек стоп-лосса.
Внедрение различных скользящих средних, включая RMA, EMA, SMA и Hull MA, повышает адаптивность стратегии.
Настройка длины ATR, параметров мультипликатора, оптимизированные параметры могут быть найдены для разных рынков, улучшая эффективность стратегии.
Использование различных вариантов цен, таких как высокие, низкие, близкие цены, позволяет оптимизировать различные продукты.
Подводя итог, это надежная, адаптивная и легко оптимизируемая стратегия отслеживания тренда.
Стратегия в значительной степени опирается на оптимизацию параметров. Соответствующие параметры ATR и мультипликатора должны быть найдены путем тестирования для разных рынков и продуктов, в противном случае эффект стоп-лосса может быть не идеальным.
На рыночных диапазонах линия остановки ATR может вызывать частые необоснованные остановки.
Если линия стоп-лосса слишком широкая, возможности для потери будут упущены. Если слишком узкая, частота торговли и расходы на скольжение увеличатся. Сбалансированную точку необходимо найти путем тщательного тестирования.
Слишком много вариантов скользящих средних может привести к отклонениям в производительности.
Эта стратегия сосредоточена на отслеживании тенденций и не нацелена непосредственно на прибыль.
При неправильных параметрах стратегия может проявлять чрезмерную торговлю или чрезмерные периоды хранения.
Индикаторы определения трендов могут быть введены, чтобы избежать сбоев на рынках с различными показателями.
Индикаторы обратного движения могут быть проверены, чтобы позволить быстрее остановиться и повернуть вспять, когда восходящий и нисходящий тренды чередуются.
Параметр периода ATR может быть коррелирован с характеристиками продукции, так что для различных продуктов используются разные периоды ATR.
Индикаторы объема могут быть использованы для более быстрого затягивания линии остановки потерь при значительном снижении объема.
Процент стоп-лосса может быть увеличен, но не слишком тесно, чтобы избежать остановки при нормальных ретрексерах.
Другие индикаторы могут использоваться для измерения импульса и оптимизации параметров для ослабления остановок при слабом импульсе.
Основанная на концепции Wilder Volatility Trailing Stop, эта стратегия использует индикатор ATR для разработки высоко адаптивной системы отслеживания тренда стоп-лосса. Благодаря оптимизации параметров он может быть приспособлен к различным торговым продуктам и является надежным и практичным подходом к стоп-лос. Но рискам необходимо управлять с помощью дальнейших улучшений, таких как фильтры тренда и элементы объема, чтобы сделать его более надежным.
/*backtest start: 2023-10-09 00:00:00 end: 2023-10-16 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Wilder's Volatility Trailing Stop Strategy with various MA's // by SparkyFlary //For Educational Purposes //Results can differ on different markets and can fail at any time. Profit is not guaranteed. strategy(title="Wilder's Volatility Trailing Stop Strategy with various MA's", shorttitle="Trailing Stop Strategy", overlay=true) AtrMult = input(3.0, title="ATR multiplier") ATRlength = input(7, title="ATR length") ATRavgType = input("RMA", title="ATR moving average type", options=["RMA", "EMA", "SMA", "HULL"]) sicType = input("close", title="significant close type for trail calculation", options=["close", "high-low"]) //function for choosing moving averages f_ma(type, src, len) => float result = 0 if type == "RMA" // Wilder's moving averaege or Running moving average result := rma(src, len) if type == "EMA" // Exponential moving average result := ema(src, len) if type == "SMA" // Simple moving average result := sma(src, len) if type == "HULL" // Hull moving average result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len))) result ATR = f_ma(ATRavgType, tr, ATRlength) upperTrail = lowest(sicType=="close"?close:low, ATRlength) + AtrMult * ATR lowerTrail = highest(sicType=="close"?close:high, ATRlength) - AtrMult * ATR float TS = 0 TS := close < TS[1] ? upperTrail[1] : close > TS[1] ? lowerTrail[1] : TS //plot plot(TS, title="trailing stop", color=close<TS?color.red:color.green) //Strategy buy = crossover(close, TS) //sell = close < TS short = crossunder(close, TS) //cover = close > TS strategy.entry(id="enter long", long=true, when=buy) //strategy.close(id="enter long", comment="exit long", when=sell) strategy.entry(id="enter short", long=false, when=short) //strategy.close(id="enter short", comment="exit short", when=cover)