Двухступенчатая стратегия по сбору тенденций в области синтеза

Автор:Чао Чжан, Дата: 2023-11-06 11:49:41
Тэги:

img

Обзор

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

Логика стратегии

  1. 123 Стратегия отмены

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

  1. SMA эргодический осциллятор

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

Двойное подтверждение: открыть позиции только тогда, когда 123 Reversal и SMA Ergodic дают сигналы в одном направлении.

Преимущества

  1. Интеграция нескольких показателей формирует механизм двойного подтверждения, который может эффективно отфильтровать ложные сигналы.

  2. 123 Стратегия реверсии оценивает потенциальные точки реверсии с помощью моделей свечей. SMA Ergodic Oscillator выдает сигналы на основе суждения о тренде. Они дополняют друг друга, чтобы преодолеть ограничения отдельных индикаторов.

  3. Параметры SMA Ergodic Oscillator регулируются для оптимизации на различных продуктах и временных рамках.

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

Риски

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

  2. Стратегии реверсии несут в себе риски ложной торговли. Параметры должны быть скорректированы для снижения уровня неудачи.

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

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

Усовершенствования

  1. Настройка параметров 123 Reversal для уменьшения частоты ложных сделок.

  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 )

Больше