123 Média móvel inversa Convergência Divergência Estratégia de combinação

Autora:ChaoZhang, Data: 2023-11-22 14:49:41
Tags:

img

Resumo

Esta estratégia combina a estratégia de negociação de reversão 123 proposta por Ulf Jensen em seu livro com o Moving Average Convergence Divergence Oscillator (KST) proposto por Martin Pring para construir uma estratégia quantitativa que gera sinais de negociação utilizando padrões de reversão e indicadores de oscilação de tendência.

Princípio da estratégia

123 Mecanismo de formação inversa

A lógica central desta parte da estratégia consiste em monitorizar se o preço de fechamento da ação reverteu nos últimos dois dias, especificamente:

Se os preços de fechamento nos últimos 2 dias estiverem em tendência descendente, ou seja, o preço de fechamento do dia anterior for superior ao anterior; e o preço de fechamento de hoje se recuperar para cima do dia anterior, que é superior ao preço de fechamento do dia anterior, pode ser julgado como uma inversão de fundo e um sinal de compra é gerado.

Em contrapartida, se os preços de encerramento nos últimos dois dias estiverem em tendência ascendente, ou seja, o preço de encerramento do dia anterior for inferior ao anterior; e o preço de encerramento de hoje cair em relação ao dia anterior, que é inferior ao preço de encerramento do dia anterior, pode ser julgado como uma inversão superior e um sinal de venda é gerado.

Esta parte da estratégia também combina o indicador estocástico para determinar se está sobrecomprado ou sobrevendido para filtrar sinais de negociação não reversíveis.

Princípio do indicador KST

No indicador KST, o ROC representa a taxa de variação do preço, com o cálculo dos ROC de 6 dias, 10 dias, 15 dias e 20 dias, respectivamente, e a realização de uma soma ponderada após a suavização da média móvel de diferentes parâmetros para construir o indicador KST.

Quando a linha rápida cruza acima da linha lenta, é julgada como alta; quando a linha rápida cruza abaixo da linha lenta, é julgada como baixa.

Esta estratégia utiliza o KST>0 para julgar de alta e o KST<0 para julgar de baixa.

Fusão de sinal

Os sinais de julgamento da estratégia de reversão 123 e o indicador KST são combinados:

  • Se ambos os sinais forem os mesmos, um sinal de negociação é gerado nessa direção
  • Se os dois sinais forem diferentes, nenhuma negociação ocorre

Pode-se ver que esta estratégia utiliza de forma abrangente dois tipos diferentes de indicadores técnicos, o padrão de reversão e o julgamento do indicador, e combina as suas forças de sinal para conceber uma estratégia de negociação quantitativa mais avançada.

Vantagens da estratégia

  • A parte de reversão pode identificar eficazmente pontos de virada e a parte de indicador pode rastrear tendências, complementando-se mutuamente
  • A filtragem com indicadores duplos pode melhorar a qualidade do sinal e reduzir os falsos sinais
  • Ajuste flexível dos parâmetros do KST para a otimização das unidades populacionais de diferentes ciclos
  • Pode adaptar-se a estoques de alta volatilidade, pode também ser utilizado para estoques relativamente estáveis

Riscos da Estratégia

  • Risco de falha de inversão, o sinal de inversão pode ser também um falso rompimento
  • Algumas oportunidades podem ser perdidas após a fusão do sinal
  • Parâmetros KST incorretos podem interferir muito nos resultados
  • Quando os preços das ações flutuam acentuadamente, os atrasos da KST, sinais inconsistentes podem aparecer

Métodos como ajuste de parâmetros, otimização da lógica de reversão, introdução do mecanismo de stop loss podem ser usados para controlar riscos.

Direcção de otimização

  • Optimização dos parâmetros estocásticos
  • Otimizar os parâmetros de comprimento da linha KST
  • Adicionar filtro de volume de negociação ou índice de volatilidade
  • Adicionar julgamento de tendência para evitar negociação contra tendência
  • Introdução de um mecanismo de stop loss

Conclusão

Esta estratégia integra vários tipos diferentes de indicadores técnicos. Através da confirmação dupla e otimização de combinações, ele projetou cientificamente uma estratégia de negociação quantitativa relativamente forte, e é um modelo de combinação de estratégias. Seu desempenho na negociação ao vivo ainda está por ser verificado, mas da perspectiva da conceptualização teórica, considera abrangentemente vários cenários, resolve as limitações de indicadores únicos e vale a pena mais pesquisa e aplicação.


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

Mais.