Sistema de reversão de sobrevenda dupla


Data de criação: 2023-10-27 16:22:08 última modificação: 2023-10-27 16:22:08
cópia: 0 Cliques: 677
1
focar em
1617
Seguidores

Sistema de reversão de sobrevenda dupla

Visão geral

O sistema de ruptura de reviravolta de dupla sobreaquecimento é uma estratégia quantitativa que combina o acompanhamento de tendências e a negociação de reviravolta. A estratégia gera um sinal de compra, calculando se há sinais de sobreaquecimento consecutivos no preço de fechamento de N dias antes da comparação do preço da ação; ao mesmo tempo, em combinação com o cálculo da média móvel T3 de determinados parâmetros, gera sinais de venda, para obter proteção de lucro.

Princípio da estratégia

A estratégia consiste em duas partes:

  1. 123 Sistema de inversão

De acordo com a descrição do livro, o sistema de inversão observa a mudança no preço de fechamento nos últimos N dias. Se o preço de fechamento de hoje for superior ao do dia anterior e o preço de fechamento do dia anterior for inferior aos dois dias anteriores, é considerado um sinal de superação de dois dias consecutivos. O sistema gera um sinal de compra. Além disso, o sistema também é combinado com o indicador STOCH, que confirma ainda mais a validade do sinal de compra se a linha rápida de STOCH de hoje for inferior à linha lenta.

  1. T3 média móvel

A média móvel T3 é calculada de acordo com uma fórmula de cálculo, combinada com o índice de média móvel do preço. Ela regula a sensibilidade da média móvel às mudanças de preço através de certos parâmetros. Quando o preço atravessa a média móvel T3, gera um sinal de venda.

A estratégia combina os dois segmentos de sinais mencionados acima e, ao satisfazer simultaneamente o sinal de compra do inverso 123 e o sinal de venda da média móvel T3, produz um verdadeiro sinal de negociação.

Análise de vantagens

  • Estratégias de negociação de reversão, apropriadas para comprar no fundo e acompanhar a tendência de rebote
  • Estratégias de média móvel para bloquear lucros e evitar riscos
  • Combinação de sinais duplos para aumentar a eficácia do sinal e reduzir os falsos
  • Os benefícios de acompanhar a tendência e inverter a negociação
  • Parâmetros ajustáveis, com flexibilidade para diferentes situações

Análise de Riscos

  • Sinais de inversão podem causar erros de avaliação e perda de negociação
  • A configuração inadequada dos parâmetros pode levar à frequência de transações, aumentando os custos de transação e os custos de deslizamento
  • Os sinais de venda gerados pelas médias móveis podem bloquear os lucros prematuramente
  • O risco de perdas permanece quando as coisas mudam drasticamente
  • Parâmetros de otimização precisam ser definidos para selecionar o melhor parâmetro para diferentes variedades

As seguintes medidas podem ser adotadas em função dos riscos:

  1. Ajustar adequadamente os parâmetros de inversão de negociação para garantir a eficácia do sinal
  2. Ajustar os parâmetros das médias móveis para prolongar adequadamente o tempo de detenção
  3. Aumentar as estratégias de stop loss e reduzir as perdas individuais
  4. Optimizar a seleção de parâmetros para diferentes variedades

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Aumentar as condições de filtragem para garantir a eficácia dos sinais de transação

Pode-se, com base na estratégia original, adicionar outros indicadores técnicos como condições de filtragem, como condições de ruptura de aumento de volume de transação, para evitar transações erradas causadas pelo ruído.

  1. Ajustar a configuração dos parâmetros para o ambiente de mercado

Pode ser testado através de vários conjuntos de parâmetros, selecionando o parâmetro correspondente à combinação de maior taxa de retorno para otimizar o efeito da estratégia. Também pode ser configurado um parâmetro dinâmico, ajustado em tempo real de acordo com a situação do mercado.

  1. Otimização de adaptação de estratégias em combinação com aprendizado de máquina

Por exemplo, é possível coletar uma grande quantidade de dados históricos, usar modelos de treinamento de aprendizado de máquina para prever o melhor momento de compra e venda e otimizar os parâmetros da estratégia em tempo real.

  1. Parâmetros independentes definidos de acordo com as características de diferentes variedades

Diferentes variedades possuem diferentes características, e os parâmetros adequados também podem variar. Os parâmetros podem ser definidos de acordo com os dados de diferentes variedades.

Resumir

O sistema de ruptura de dupla superavaliação e reversão integra os benefícios do acompanhamento de tendências e do comércio de reversão. Ele permite comprar preços mais baixos durante a fase de superavaliação e parar em tempo hábil após o aproveitamento da tendência. A combinação efetiva de sinais de reversão e sinais de tendência permite efetivamente obter oportunidades de reversão e, ao mesmo tempo, bloquear o lucro.

Código-fonte da estratégia
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/09/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 plots the moving average described in the January, 1998 issue
// of S&C, p.57, "Smoothing Techniques for More Accurate Signals", by Tim Tillson.
// This indicator plots T3 moving average presented in Figure 4 in the article.
// T3 indicator is a moving average which is calculated according to formula:
//     T3(n) = GD(GD(GD(n))),
// where GD - generalized DEMA (Double EMA) and calculating according to this:
//     GD(n,v) = EMA(n) * (1+v)-EMA(EMA(n)) * v,
// where "v" is volume factor, which determines how hot the moving average’s response
// to linear trends will be. The author advises to use v=0.7.
// When v = 0, GD = EMA, and when v = 1, GD = DEMA. In between, GD is a less aggressive
// version of DEMA. By using a value for v less than1, trader cure the multiple DEMA
// overshoot problem but at the cost of accepting some additional phase delay.
// In filter theory terminology, T3 is a six-pole nonlinear Kalman filter. Kalman
// filters are ones that use the error — in this case, (time series - EMA(n)) — 
// to correct themselves. In the realm of technical analysis, these are called adaptive
// moving averages; they track the time series more aggres-sively when it is making large
// moves. Tim Tillson is a software project manager at Hewlett-Packard, with degrees in
// mathematics and computer science. He has privately traded options and equities for 15 years.  
//
// 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


T3A(Length, b) =>
    pos = 0.0
    xPrice = close
    xe1 = ema(xPrice, Length)
    xe2 = ema(xe1, Length)
    xe3 = ema(xe2, Length)
    xe4 = ema(xe3, Length)
    xe5 = ema(xe4, Length)
    xe6 = ema(xe5, Length)
    c1 = -b*b*b
    c2 = 3*b*b+3*b*b*b
    c3 = -6*b*b-3*b-3*b*b*b
    c4 = 1+3*b+b*b*b+3*b*b
    nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3
    pos:= iff(nT3Average > close, -1,
           iff(nT3Average < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & T3 Averages", 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, "---- T3 Averages ----")
LengthT3 = input(5, minval=1)
b = input(0.7, minval=0.01,step=0.01) 
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3A = T3A(LengthT3, b)
pos = iff(posReversal123 == 1 and posT3A == 1 , 1,
	   iff(posReversal123 == -1 and posT3A == -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 )