Estratégia de rastreamento de reversão quantificada de dois condutores

Autora:ChaoZhang, Data: 2024-02-18 10:03:14
Tags:

img

Resumo

A estratégia de rastreamento de reversão quantificada de dois condutores combina indicadores simples de média móvel e indicadores aleatórios para alcançar uma estratégia de negociação de curto prazo eficiente e estável que pode capturar reversões rápidas do mercado, reduzindo os custos de oportunidade dos sinais em falta.

Princípio da estratégia

A estratégia consiste em duas partes: 123 parte de padrão de reversão e parte de média móvel adaptativa. A parte de padrão de reversão 123 julga se há uma oportunidade de reversão, calculando a relação de preço de fechamento entre os dois dias de negociação anteriores. Se o preço de fechamento no dia anterior for menor do que o do dia 2 anterior e o preço de fechamento no dia atual for maior do que o do dia anterior, e a linha aleatória lenta estiver abaixo de 50, é gerado um sinal de compra. Se o preço de fechamento no dia anterior for maior do que o do dia 2 anterior e o preço de fechamento no dia atual for menor do que o do dia anterior, e a linha rápida estiver acima de 50, é gerado um sinal de venda aleatória. Isso pode capturar oportunidades de reversão de curto prazo. A outra parte é a média móvel, que responde rapidamente quando o mercado está inativo e responde de forma eficaz, o que pode evitar o ruído e os sinais de entrada e saída quando as principais posições são fechadas.

Vantagens da estratégia

A maior vantagem da estratégia de rastreamento de reversão quantificada de dois condutores é que combina padrões de reversão e filtragem de tendência para que possa capturar reversões rápidas, evitando ficar preso em um mercado de choque.

Riscos da Estratégia

O principal risco desta estratégia é que configurações de parâmetros inadequadas podem levar a uma frequência de negociação excessivamente alta ou capacidade de identificação de sinal insuficiente. Se os parâmetros do padrão 123 forem muito sensíveis, pode levar a negociações frequentes em condições de mercado voláteis, resultando em perdas mais fechadas. Se os parâmetros da média móvel adaptativa forem definidos muito lentamente, as oportunidades de reversão podem ser perdidas. Além disso, perseguir novas altas e vender mínimas em um mercado de tendência também levará a maiores flutuações de capital.

Optimização da Estratégia

A estratégia pode ser otimizada de várias maneiras: primeiro, ajustar os parâmetros do padrão 123 para identificar reversões claras sem ser muito sensível à geração de sinais falsos. Segundo, otimizar os parâmetros da média móvel adaptativa para encontrar o melhor equilíbrio entre estabilidade e sensibilidade. Terceiro, estratégias de stop loss podem ser introduzidas para controlar perdas individuais. Quarto, os indicadores de sentimento do mercado podem ser combinados para melhorar a qualidade da decisão.

Resumo

A estratégia de rastreamento de reversão quantificada de dois condutores integra com sucesso as duas partes indispensáveis da negociação de reversão e da filtragem de tendências, e as vantagens combinadas são significativas.


/*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 )

Mais.