
В этой стратегии используются обобщенные индикаторы пояса буринга и случайные индикаторы, чтобы идентифицировать перекуп и перепродажу на рынке и обнаружить торговые возможности вблизи пояса буринга. В то же время, используя индикатор среднего реального диапазона колебаний для отслеживания стоп-стопов, DYNAMIC TRAILING STOP использует метод динамического стоп-стопа, который позволяет гибко регулировать стоп-позиции в зависимости от колебаний рынка, чтобы избежать чрезмерно чувствительного стоп-стопа при сохранении эффекта стоп-стопа.
В этой стратегии используются буринские полосы длиной 20 и стандартной разницей 2, чтобы определить, касается ли цена верхней или нижней полосы. Прикосновение нижней полосы указывает на возможное перепродажа, а прикосновение верхней полосы - на возможное перепродажа. Кроме того, в этой стратегии используется случайный индикатор, который имеет K-линейный цикл 14, D-значение с гладким циклом 3.
После входа в рынок стратегия использует индикатор средней реальной колебательной amplitude для отслеживания стоп-порогов. Стоп-пороги в 1,5 раза превышают среднюю реальную колебательную amplitude и позволяют устанавливать стоп-пороги в зависимости от степени волатильности рынка, чтобы избежать слишком близкого или слишком мягкого стоп-порога.
У этой стратегии есть следующие преимущества:
Комбинированное использование лент Брин и случайных индикаторов для определения перепродажи и повышения точности определения времени сделки
Динамическая корректировка стоп-стоп, позволяющая установить разумные стоп-дистанции в зависимости от степени волатильности рынка
Метод отслеживания остановки позволяет не задерживать остановку слишком близко, чтобы избежать слишком легкой остановки
Правила стратегии четкие, простые и понятные для исполнения
Однако есть и другие риски:
Брин-банк вверх-вниз не может быть уверен, что цена изменится, но есть вероятность, что прорыв продолжится.
Неправильная настройка параметров случайного индикатора может привести к ошибочному сигналу
Прекращение отслеживания может привести к тому, что остановка будет слишком большой и превысит разумные колебания рынка.
addDynamic trailing stop, возможно, лучше, но с небольшим отклонением в зависимости от рыночных колебаний
Эта стратегия также может быть оптимизирована в следующих направлениях:
Тестирование влияния на результат различных параметров Брин-полосы для поиска оптимальной комбинации параметров
Тестирование различных параметров случайных показателей для повышения эффективности показателей
Динамически корректируйте стоп-дистанцию в зависимости от количества триггеров и прибыли
В сочетании с другими показателями фильтрации входных сигналов, повышение успешности операции
Добавление механизма погашения убытков для полного использования возможностей рыночных тенденций
Эта стратегия основана на идентификации перепродажи сверхпокупки по Брин-полосе, стохастический показатель для вспомогательного подтверждения. Обладает ясными правилами стратегии, разумной гибкостью в методе остановки убытков. В то же время существуют такие риски, как неточные критерии суждения, необоснованное установление остановки убытков.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger y Estocástico con Trailing Stop", overlay=true)
// Parámetros de entrada
lengthBB = input(20, title="Longitud BB")
stdDevBB = input(2, title="Desviación Estándar BB")
kLength = input(14, title="Longitud K Estocástico")
dLength = input(3, title="Longitud D Estocástico")
smooth = input(3, title="Suavizado Estocástico")
atrLength = input(14, title="Longitud ATR")
trailStopATRMultiple = input(1.5, title="Multiplicador ATR para Trailing Stop")
// Cálculos
[upperBB, basisBB, lowerBB] = ta.bb(close, lengthBB, stdDevBB)
stochK = ta.sma(ta.stoch(close, high, low, kLength), smooth)
atr = ta.atr(atrLength)
// Condiciones de trading
longCondition = close < lowerBB and stochK < 20
shortCondition = close > upperBB and stochK > 80
// Ejecutar operaciones
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Trailing Stop
strategy.exit("Exit Long", from_entry="Long", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)
strategy.exit("Exit Short", from_entry="Short", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)