123 Сдвижная средняя конвергенция

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

img

Обзор

Эта стратегия объединяет 123 обратную торговую стратегию, предложенную Ульфом Дженсеном в его книге с Кочевым средним конвергентным дивергентным осциллятором (KST), предложенным Мартином Прингом, для создания количественной стратегии, которая генерирует торговые сигналы с использованием обратных моделей и индикаторов колебаний тренда.

Принцип стратегии

123 Механизм обратного формирования

Основная логика этой части стратегии заключается в том, чтобы отслеживать, изменилась ли цена закрытия акции за последние 2 дня, в частности:

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

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

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

Принцип показателя KST

В показателе KST ROC представляет собой скорость изменения цены, рассчитывая ROC 6 дней, 10 дней, 15 дней и 20 дней соответственно, и выполняя взвешенное суммирование после сглаживания скользящей средней по различным параметрам для построения показателя KST.

Когда быстрая линия пересекает медленную линию, она рассматривается как быстрая; когда быстрая линия пересекает медленную линию, она рассматривается как медленная.

Эта стратегия использует KST>0 для оценки бычьего и KST<0 для оценки медвежьего.

Слияние сигналов

Сигналы Judgment стратегии 123 и показателя KST объединены:

  • Если оба сигнала одинаковы, то торговый сигнал генерируется в этом направлении.
  • Если два сигнала отличаются, то торговля не происходит.

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

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

  • Часть отмены может эффективно идентифицировать поворотные моменты, а часть индикатора может отслеживать тенденции, дополняя друг друга
  • Фильтрация с помощью двойных индикаторов может улучшить качество сигнала и уменьшить количество ложных сигналов
  • Гибкая корректировка параметров KST для оптимизации для запасов различных циклов
  • Может адаптироваться к запасам с высокой волатильностью, также может использоваться для относительно стабильных запасов

Риски стратегии

  • Риск отказа от обратного движения, сигнал обратного движения также может быть ложным прорывом
  • Некоторые возможности могут быть упущены после слияния сигналов
  • Неправильные параметры KST могут сильно повлиять на результаты
  • Когда цена акций резко колеблется, KST отстает, могут появиться несовместимые сигналы

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

Направление оптимизации

  • Оптимизировать стохастические параметры
  • Оптимизировать параметры длины линии KST
  • Добавить фильтр объема торговли или индекса волатильности
  • Добавить суждение о тренде, чтобы избежать торговли против тренда
  • Внедрение механизма остановки потерь

Заключение

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


/*backtest
start: 2023-10-22 00:00:00
end: 2023-11-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/03/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
// This indicator really is the KST indicator presented by Martin Pring. 
// the KST indicator is a weighted summed rate of change oscillator that 
// is designed to identify meaningful turns. Various smoothed rate of change 
// indicators can be combined to form different measurements of cycles. 
//
// 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


MROC() =>
    pos = 0.0
    xROC6 = sma(roc(close, 6), 10)
    xROC10 = sma(roc(close, 10), 10)
    xROC15 = sma(roc(close, 15), 9)
    xROC20 = sma(roc(close, 20), 15)
    nRes = xROC6 + (2 * xROC10) + (3 * xROC15) + (4 * xROC20)
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & MovROC (KST indicator)", 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)
//-------------------------
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMROC = MROC()
pos = iff(posReversal123 == 1 and posMROC == 1 , 1,
	   iff(posReversal123 == -1 and posMROC == -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 )

Больше