Комбинированная стратегия двойного линейного разворота скользящего среднего осциллятора


Дата создания: 2023-11-22 14:49:41 Последнее изменение: 2023-11-22 14:49:41
Копировать: 1 Количество просмотров: 656
1
Подписаться
1617
Подписчики

Комбинированная стратегия двойного линейного разворота скользящего среднего осциллятора

Обзор

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

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

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

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

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

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

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

Механизм KST

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

При прохождении медленной линии вверх по быстрой линии рассматривается как рост, а при прохождении медленной линии вниз по быстрой линии рассматривается как падение. Здесь быстрая линия является исходной величиной KST, а медленная линия - это скользящая средняя KST.

Эта стратегия использует KST>0 для определения позиции, KST для определения позиции.

Объединение сигналов

Комбинирование сигналов Judgment для KST и стратегии 123 форм:

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

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

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

  • Обратная форма позволяет эффективно идентифицировать переломные моменты, а индикатор - отслеживать тенденции.
  • В сочетании с двойной индикаторной фильтрацией улучшается качество сигнала и уменьшается количество ложных сигналов.
  • 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 )