
Двухсигнальная количественная обратная стратегия позволяет получить более точные торговые сигналы, используя в сочетании 123 обратной стратегии и индикатора ускорителя колебания, чтобы судить о обратном тренде. Эта стратегия используется в основном для краткосрочной и среднесрочной торговли на фондовых индексах, валюте, драгоценных металлах и энергетических сортах.
Эта стратегия состоит из двух отдельных логических блоков кода.
Первая часть - 123 обратная стратегия, которая определяет обратный сигнал следующим образом: многоголовый сигнал возникает, когда цена закрытия на протяжении двух дней подряд ниже предыдущей ценой закрытия, а линия K индикатора STOCH на 9 день ниже линии D; пустой сигнал возникает, когда цена закрытия на протяжении двух дней подряд выше предыдущей ценой закрытия, а линия K индикатора STOCH на 9 день выше линии D.
Вторая часть - индикатор ускорителя-осязателя. Этот индикатор отражает скорость изменения абсолютного ценового колебателя и позволяет заранее определить точку обратного тренда, рассчитывая разницу между абсолютным ценовым колебателем и его 5-циклической скользящей средней.
Наконец, стратегия комбинирует сигналы обоих индикаторов: когда сигналы обоих индикаторов совпадают, то выводит торговый сигнал в этом направлении; когда сигналы обоих индикаторов не совпадают, то выводит нулевой сигнал.
Эта стратегия, в сочетании с двойным оценочным суждением, позволяет отфильтровывать определенные ложные сигналы, сигналы являются точными и надежными. При этом, используя абсолютные ценовые колебатели, которые отражают характеристики ускорения изменений, можно заранее улавливать потенциальные поворотные моменты тенденции, чтобы добиться большего пространства для прибыли.
Наибольший риск этой стратегии заключается в том, что цена уже существенно изменилась до того, как индикатор выпустил сигнал, что привело к пропуску оптимальной точки входа. Кроме того, параметры индикатора требуют оптимизированной корректировки при резких колебаниях рынка.
Для риска входных точек можно комбинировать с другими показателями обратного отсчета, чтобы обеспечить надежность сигнала; для проблем оптимизации параметров можно создать механизм динамической корректировки, чтобы обеспечить обоснованность параметров.
Эта стратегия может быть оптимизирована в следующих аспектах:
Увеличение условий фильтрации, чтобы избежать ошибочного сигнала в период высоких колебаний
Вместе с другими показателями обратного отсчета, создание механизма многократной проверки
Создание механизмов адаптации параметров, динамическая коррекция параметров показателей
Оптимизация стратегии по уменьшению убытков для контроля однократных убытков
Двухсигнальная количественная обратная стратегия повышает точность сигнала с помощью двойной проверки, что помогает уловить ключевые рыночные обратные моменты. В то же время необходимо обратить внимание на риск задержки показателей и неэффективности параметров, постоянно проверять и оптимизировать стратегию, чтобы она могла адаптироваться к изменяющейся рыночной среде.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/04/2019
// This is combo strategies for get
// a cumulative signal. Result signal will return 1 if two strategies
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// The Accelerator Oscillator has been developed by Bill Williams
// as the development of the Awesome Oscillator. It represents the
// difference between the Awesome Oscillator and the 5-period moving
// average, and as such it shows the speed of change of the Awesome
// Oscillator, which can be useful to find trend reversals before the
// Awesome Oscillator does.
//
// 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
AcceleratorOscillator(nLengthSlow, nLengthFast) =>
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = sma(xSMA1_SMA2, nLengthFast)
nRes = xSMA1_SMA2 - xSMA_hl2
cClr = nRes > nRes[1] ? blue : red
pos = 0.0
pos := iff(nRes > 0, 1,
iff(nRes < 0, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal and Accelerator Oscillator (AC)", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
nLengthSlow = input(34, minval=1, title="Length Slow")
nLengthFast = input(5, minval=1, title="Length Fast")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posAcceleratorOscillator = AcceleratorOscillator(nLengthSlow, nLengthFast)
pos = iff(posReversal123 == 1 and posAcceleratorOscillator == 1 , 1,
iff(posReversal123 == -1 and posAcceleratorOscillator == -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 ? red: possig == 1 ? green : blue )