Estratégia de ruptura de reversão de preço de média móvel dupla

Autora:ChaoZhang, Data: 2023-12-07 18:15:12
Tags:

img

Resumo

A estratégia de ruptura de reversão de preço de média móvel dupla combina sinais de negociação dupla para identificar oportunidades de entrada de maior qualidade. Primeiro usa uma média móvel de 9 dias e seus trilhos superior e inferior para construir uma estrutura de ruptura básica, depois introduz um indicador estocástico para filtrar sinais depois de julgar a direção da oportunidade usando 123 padrões e, finalmente, forma uma regra de entrada relativamente rigorosa.

Princípios

A estratégia de ruptura de preços de reversão de média móvel dupla consiste em duas sub-estratégias.

A primeira subestratégia é o julgamento do padrão 123. Esta estratégia usa a relação de preço de fechamento nos dois dias anteriores para julgar a direção provável da fuga de preços futura. Se o preço de fechamento de hoje subir em comparação com o preço de fechamento do dia anterior, enquanto o preço de fechamento do dia anterior caiu em comparação com o preço de fechamento de dois dias atrás, é considerado um sinal de compra; se o preço de fechamento de hoje cair em comparação com o preço de fechamento do dia anterior, enquanto o preço de fechamento do dia anterior aumentou em comparação com o preço de fechamento de dois dias atrás, é considerado um sinal de venda. Acredita-se que este padrão reflita o ponto de virada chave em que o sentimento de curto prazo se transforma de pessimista para otimista ou de otimista para pessimista. Aqui, reverificamos os sinais de compra e venda usando o indicador estocástico e geramos a operação final quando o indicador estocástico também dá um sinal de sobrevenda ou sobre

A segunda subestratégia é a quebra do canal da média móvel deslocada. Esta estratégia primeiro calcula a linha média móvel exponencial do ciclo especificado (como 9 dias), e depois adiciona uma certa porcentagem acima e abaixo dela como os trilhos superior e inferior do canal. Se o preço quebra o trilho superior, um sinal de venda é gerado. Se o preço quebra o trilho inferior, um sinal de compra é gerado. Aqui a largura de expansão e contração dos trilhos superior e inferior pode ser controlada pelo fator percentual para ajustar a frequência do sinal.

Por fim, somente quando as direções do sinal das duas sub-estratégias são consistentes, ou seja, o sinal de reversão 123 e o sinal de ruptura do canal estão na mesma direção, um sinal real será finalmente gerado para guiar a negociação real.

Análise das vantagens

A estratégia de reversão de ruptura de preços de média móvel dupla combina vários métodos analíticos e tem as seguintes vantagens:

  1. O mecanismo de filtragem dupla de sinais pode efetivamente reduzir os sinais inválidos e tornar cada negociação de maior qualidade.

  2. O julgamento do padrão 123 pertence a uma estratégia de reversão de curto prazo, enquanto a ruptura do canal deslocado pertence a uma estratégia de rastreamento de tendências de médio e longo prazo.

  3. Ao ajustar a largura dos trilhos superior e inferior do canal, a frequência do sinal pode ser livremente controlada para atender a diferentes preferências comerciais.

  4. Usando a média móvel de 9 dias como linha média do canal, a selecção do parâmetro é mais razoável para evitar sinais excessivamente frequentes.

  5. Ao aplicar as zonas de sobrecompra e sobrevenda do indicador estocástico, evita-se ficar preso num mercado de choque.

Análise de riscos

A estratégia de ruptura de preços de reversão de média móvel dupla também apresenta alguns riscos, principalmente nos seguintes aspectos:

  1. O mecanismo de sinal de filtragem dupla perde algumas oportunidades que uma estratégia unilateral pode capturar, com algum risco de perdas de ordens.

  2. Os pontos de compra e venda não podem filtrar completamente todas as falhas.

  3. No caso de uma mudança violenta no mercado, as configurações de stop loss inadequadas podem levar a grandes perdas.

  4. A lógica da condição ifft é complexa. Parâmetros inadequados são propensos a erros lógicos, resultando em julgamentos de sinal inválidos.

  5. Os dados fora da amostra afetam a estabilidade dos parâmetros, exigindo uma otimização dinâmica dos parâmetros.

Orientações de otimização

Ainda há espaço para otimização na estratégia de ruptura de reversão de preço de média móvel dupla:

  1. Diferentes tipos de médias móveis podem ser testados para selecionar combinações de parâmetros com melhor e mais estável qualidade do sinal.

  2. Os canais de largura adequada podem ser selecionados de acordo com as características dos dados específicos do produto.

  3. A perda de parada dinâmica pode ser combinada para controlar a taxa de perda máxima.

  4. Os modelos de aprendizado de máquina podem ser introduzidos para otimização de parâmetros dinâmicos para tornar a estratégia mais robusta.

  5. Podem ser adicionados filtros baseados no volume de negociação ou na volatilidade para evitar entradas e saídas excessivamente frequentes em condições de mercado turbulentas.

Conclusão

Através do mecanismo de filtragem de verificação dupla, a Estratégia de Breakout de Reversão de Preço de Média Móvel Dupla combina com sucesso a reversão de curto prazo e o rastreamento de tendências de médio e longo prazo para formar um sistema de negociação eficiente que pode efetivamente filtrar sinais inválidos e selecionar oportunidades de alta qualidade para entrar, e tem uma personalização relativamente forte.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/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
// Moving Average Displaced Envelope. These envelopes are calculated 
// by multiplying percentage factors with their displaced expotential 
// moving average (EMA) core.
// How To Trade Using:
// Adjust the envelopes percentage factors to control the quantity and 
// quality of the signals. If a previous high goes above the envelope 
// a sell signal is generated. Conversely, if the previous low goes below 
// the envelope a buy signal is given.
//
// 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


MADE(Price,Period, perAb, perBl, disp) =>
    pos = 0.0
    sEMA = ema(Price, Period)
    top = sEMA[disp] * ((100 + perAb)/100)
    bott = sEMA[disp]* ((100 - perBl)/100)
    pos := iff(close < bott , 1,
    	     iff(close > top, -1, pos[1])) 
    pos

strategy(title="Combo Backtest 123 Reversal & MA Displaced Envelope", 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)
//-------------------------
line2 = input(true, "---- MA Displaced Envelope ----")
Price = input(title="Source", type=input.source, defval=close)
Period =input(defval=9, minval=1)
perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1)
perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1)
disp = input(title = "Displacement", defval=13, minval=1) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMADE = MADE(Price,Period, perAb, perBl, disp)
pos = iff(posReversal123 == 1 and posMADE == 1 , 1,
	   iff(posReversal123 == -1 and posMADE == -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.