Стратегия слияния двух направлений захвата тренда


Дата создания: 2023-11-06 11:49:41 Последнее изменение: 2023-11-06 11:49:41
Копировать: 0 Количество просмотров: 368
1
Подписаться
1166
Подписчики

Стратегия слияния двух направлений захвата тренда

Обзор

Эта стратегия объединяет две подстратегии: 123 Reversal и SMA Elastic Oscillator, чтобы сформировать двойную орбитальную стратегию отслеживания тренда, которая отсеивает сигналы. 123 Reversal использует K-линию для определения потенциальных поворотных точек, а SMA Elastic Oscillator использует движущуюся среднюю для определения направления тренда. Они взаимно проверяются, образуя механизм двойного подтверждения, который эффективно отфильтровывает ошибочные сигналы, захватывает более сильное направление тренда и позволяет осуществлять торговлю по тренду.

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

  1. 123 Стратегия переворота

Эта стратегия происходит от системы Ульфа Дженсена, описанной в его книге “Как я могу получить три раза большую отдачу на рынке фьючерсов” (P183). Она относится к стратегии обратного типа. Когда цена закрытия 2 дня подряд выше цены закрытия предыдущего дня, а на 9 день медленная линия случайного показателя ниже 50, делают больше; когда цена закрытия 2 дня подряд ниже цены закрытия предыдущего дня, а на 9 день быстрая линия случайного показателя выше 50.

  1. Эластичный осциллятор SMA

Этот индикатор похож на TSI, разработанный Уильямом Блау, в отличие от SMA-осколчика, который содержит сигнальную линию. Эластичный индикатор SMA использует цену минус двойная скользящая средняя цены предыдущего дня, а затем изображает индикаторную скользящую среднюю SMA в качестве сигнальной линии для подачи торгового сигнала.

Двойное подтверждение: открывать позиции только в том случае, если 123 обращается вспять, а SMA-эластичный индикатор сигнализирует в одном направлении.

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

  1. Объединение различных показателей, формирующих механизм двойного подтверждения, позволяет эффективно фильтровать ошибочные сигналы.

  2. 123 Обратная стратегия использует K-линейную форму для определения потенциальной обратной точки. Эластичный осциллятор SMA посылает сигналы с помощью определения тенденции, которые взаимно проверяются, восполняя недостаток одного показателя.

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

  4. В целом, как стратегия отслеживания тенденций, можно последовательно и постоянно отслеживать направление более сильных тенденций.

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

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

  2. С другой стороны, если вы используете обратную стратегию, то рискуете совершить ошибочную сделку, и вам придется изменить параметры, чтобы снизить вероятность неудачи.

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

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

Оптимизация стратегии

  1. Настройка параметров 123-го поворота, снижение частоты ошибочных сделок.

  2. Настройка параметров эластичного осциллятора SMA, оптимизация чувствительности показателя.

  3. Добавление стратегии стоп-лосс для снижения одноразовых потерь.

  4. В сочетании с другими показателями оценить потенциальную реверсию, своевременно снизить позиции.

  5. Оптимизация параметров различных сортов, повышение стабильности.

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

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

Исходный код стратегии
/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )