Стратегия торговли с двойным индикатором с незначительным переломом

Автор:Чао Чжан, Дата: 2023-10-17 15:45:09
Тэги:

img

Обзор

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

Принцип

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

Первый - 123 Reversal стратегия. Она отслеживает, происходит ли пиковая обратная тенденция. В частности, она будет генерировать длинный сигнал, если цена закрытия предыдущих двух дней падает, а текущая цена закрытия выше предыдущей цены закрытия, при этом стохастическая медленная линия ниже 50. Она будет генерировать короткий сигнал, если цены закрытия предыдущих двух дней растут, и текущая цена закрытия ниже предыдущей цены закрытия, при этом стохастическая быстрая линия выше 50.

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

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

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

  • Объединение нескольких индикаторов может эффективно отфильтровать ложные сигналы и повысить надежность.

  • Сочетание обратного движения и следования тренду обеспечивает как краткосрочные возможности, так и предотвращает контратендентные сделки.

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

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

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

  • Подходит для среднесрочной торговли с гибкими сроками.

Риски

  • Сигналы обратного движения могут быть ложными и нуждаются в подтверждении с помощью индикаторов тренда.

  • Низкая частота торгов может лишить некоторых краткосрочных возможностей.

  • Это может привести к переломам, требующим своевременной остановки потерь.

  • Неправильные параметры могут существенно повлиять на результаты.

  • Слишком многое зависит от технических показателей.

Улучшение

  • Проверьте различные параметры для оптимизации подстратегий.

  • Ввести больше показателей для построения многофакторных моделей.

  • Применение машинного обучения для оптимизации динамических параметров.

  • Исследуйте различные методы стоп-лосса для контроля рисков.

  • Изучите затраты на возможности и скорректируйте частоту стратегии.

  • Проверка надежности стратегии в различных рыночных режимах.

Заключение

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


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/07/2020
// 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
// This is one of the techniques described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). If you like to learn more, we advise you to
// read this book. His book focuses on three key aspects of trading: momentum, 
// direction and divergence. Blau, who was an electrical engineer before becoming 
// a trader, thoroughly examines the relationship between price and momentum in 
// step-by-step examples. From this grounding, he then looks at the deficiencies 
// in other oscillators and introduces some innovative techniques, including a 
// fresh twist on Stochastics. On directional issues, he analyzes the intricacies 
// of ADX and offers a unique approach to help define trending and non-trending periods. 
//
// 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


EMDI(r,s,u,SmthLen) =>
    pos = 0
    xEMA = ema(close, r)
    xEMA_S = close - xEMA
    xEMA_U = ema(ema(xEMA_S, s), u)
    xSignal = ema(xEMA_U, u)
    pos := iff(xEMA_U > xSignal, 1,
    	     iff(xEMA_U < xSignal, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic MDI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
s = input(5, minval=1)
u = input(5, minval=1)
SmthLen = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMDI = EMDI(r,s,u,SmthLen)
pos = iff(posReversal123 == 1 and posEMDI == 1 , 1,
	   iff(posReversal123 == -1 and posEMDI == -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 )

Больше