Стратегия отслеживания квантового обратного движения с двумя драйверами

Автор:Чао Чжан, Дата: 2024-02-18 10:03:14
Тэги:

img

Обзор

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

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

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

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

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

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

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

Оптимизация стратегии

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

Резюме

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


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/12/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
// Everyone wants a short-term, fast trading trend that works without large
// losses. That combination does not exist. But it is possible to have fast
// trading trends in which one must get in or out of the market quickly, but
// these have the distinct disadvantage of being whipsawed by market noise
// when the market is volatile in a sideways trending market. During these
// periods, the trader is jumping in and out of positions with no profit-making
// trend in sight. In an attempt to overcome the problem of noise and still be
// able to get closer to the actual change of the trend, Kaufman developed an
// indicator that adapts to market movement. This indicator, an adaptive moving
// average (AMA), moves very slowly when markets are moving sideways but moves
// swiftly when the markets also move swiftly, change directions or break out of
// a trading range.
//
// 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

KAMA(Length) =>
    pos = 0.0
    nAMA = 0.0
    xPrice = close
    xvnoise = abs(xPrice - xPrice[1])
    nfastend = 0.666
    nslowend = 0.0645
    reverse = input(false, title="Trade reverse")
    nsignal = abs(xPrice - xPrice[Length])
    nnoise = sum(xvnoise, Length)
    nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
    nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) 
    nAMA := nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))
    pos := iff(close[1] > nAMA, 1,
    	     iff(close[1] < nAMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Kaufman Moving Average Adaptive", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthKAMA = input(21, minval=2)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKAMA = KAMA(LengthKAMA)
pos = iff(posReversal123 == 1 and posKAMA == 1 , 1,
	   iff(posReversal123 == -1 and posKAMA == -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 )

Больше