
Эта стратегия состоит в сочетании стратегии 123 форм обратного трейдинга, предложенной Ульфом Дженсеном в его книге, с весовым двигательным средним колебателем (KST), предложенным Мартином Плинком, для построения количественной стратегии, которая использует обобщенные формы обратного трейдинга и индикаторы трендовых колебаний для создания торговых сигналов.
Центральная логика этой части стратегии заключается в том, чтобы следить за тем, не изменились ли цены на акции в течение последних двух дней, а именно:
Если за последние 2 дня цена закрытия находится в нисходящей тенденции, то есть цена закрытия предыдущего дня была выше, чем за предыдущие 2 дня; а сегодняшняя цена закрытия по сравнению с предыдущим днем поменялась вверх, то есть выше, чем цена закрытия предыдущего дня, то можно судить о реверсии дна, которая создает сигнал к покупке.
Напротив, если за последние 2 дня цена закрытия находится в тенденции к росту, то есть цена закрытия предыдущего дня была ниже цены за предыдущие 2 дня; а сегодняшняя цена закрытия снизилась по сравнению с предыдущим днем, то есть ниже цены закрытия предыдущего дня, то можно определить, что верхняя обратная сторона создает сигнал продажи.
Эта часть стратегии также сочетается с Stochastic, чтобы определить, перепродано ли или перекуплено, и отфильтровывать торговые сигналы, не связанные с обратными точками времени.
ROC в KST-индикаторе представляет собой скорость изменения цены, рассчитанную на 6 дней, 10 дней, 15 дней и 20 дней соответственно, и после сглаживания скользящих средних различных параметров, сделанного путем взвешенного суммирования, составляет KST-индикатор.
При прохождении медленной линии вверх по быстрой линии рассматривается как рост, а при прохождении медленной линии вниз по быстрой линии рассматривается как падение. Здесь быстрая линия является исходной величиной KST, а медленная линия - это скользящая средняя KST.
Эта стратегия использует KST>0 для определения позиции, KST для определения позиции.
Комбинирование сигналов Judgment для KST и стратегии 123 форм:
Как видно, эта стратегия использует комбинацию обратных форм и показателей для определения двух различных типов технических показателей, которые в сочетании с их интенсивностью сигналов создают более продвинутую количественную стратегию торговли.
Риск можно контролировать путем корректировки параметров, оптимизации логики обратного суждения, внедрения механизмов стоп-лосса.
Стратегия объединяет в себе использование различных типов технических показателей, используя двойную идентификацию и оптимизацию комбинаций, чтобы создать более сильную количественную торговую стратегию, которая является образцом комбинации стратегий. Реальная эффективность еще предстоит дополнительной проверки, но с точки зрения теоретической концепции она учитывает несколько сценариев и решает ограничения одного показателя, что заслуживает дальнейшего исследования и применения.
/*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 )