Estratégia de negociação quantitativa integrando reversão e média móvel futura


Data de criação: 2023-12-08 12:00:35 última modificação: 2023-12-08 12:00:35
cópia: 0 Cliques: 624
1
focar em
1621
Seguidores

Estratégia de negociação quantitativa integrando reversão e média móvel futura

Visão geral

A estratégia combina a estratégia de inversão 123 com a estratégia de linha de equilíbrio para o futuro, permitindo uma estratégia de negociação quantitativa de entrada ou saída quando as duas estratégias emitem sinais ao mesmo tempo. A estratégia é aplicada principalmente no mercado de futuros de índices de ações, permitindo a negociação de posições a médio prazo, capturando uma combinação de sinais de inversão de curto prazo e sinais de tendência de médio prazo.

Princípio da estratégia

123 estratégia de reversão

A estratégia de inversão 123 é derivada de um livro chamado “How I Triple My Money in the Futures Market”. A estratégia de inverter o preço de fechamento em dois dias consecutivos e fazer mais quando a linha de K lenta é inferior a 50 em nove dias consecutivos; fechar a linha de fechamento em dois dias consecutivos e a linha de K rápida é superior a 50 em nove dias consecutivos.

Estratégia para o futuro

Linhas de Demarcação Futuras (FLD) é uma estratégia de acompanhamento de tendências baseada na lei periódica da oscilação de preços. As linhas de FLD são baseadas em preços médios, altos ou baixos, movidos para o futuro em cerca de meio ciclo, gerando um sinal de negociação quando as linhas de preço atravessam as linhas de FLD.

Análise de vantagens

A estratégia combina a estratégia de reversão e a estratégia de acompanhamento de tendências, captando simultaneamente oportunidades de reversão de mercado de curto prazo e tendências de médio e longo prazo, permitindo negociações quantitativas em várias escalas de tempo. A estratégia de reversão oferece oportunidades de lucro em curto prazo, e a parte de acompanhamento de tendências garante que a direção geral da negociação esteja de acordo com a tendência e controle efetivamente o risco de negociação. Além disso, a característica de auto-adaptação da linha de equilíbrio de deslocamento futuro também aumenta a estabilidade da estratégia.

Análise de Riscos

Esta estratégia enfrenta principalmente o risco de falsas rupturas de sinais de reversão e o risco de erro no julgamento da linha FLD. Para os primeiros, pode-se confirmar o sinal de reversão ajustando os parâmetros ou adicionando outros indicadores auxiliares de julgamento para aumentar a precisão do julgamento. Para os últimos, é necessário otimizar os parâmetros para garantir que eles possam descrever com mais precisão a lei de bandas do mercado. Além disso, é necessário estar alerta para a possibilidade de erro no julgamento da linha FLD durante a reversão da tendência do grande ciclo.

Direção de otimização

  1. Melhoria da estratégia de reversão, adição de outros indicadores para filtrar os sinais de confirmação e redução da probabilidade de falsa brecha
  2. Comparar os diferentes parâmetros da linha FLD para ver se pode descrever com mais precisão a lei do ciclo
  3. Adição de lógica de stop loss para controlar o risco de perda individual
  4. Teste dos efeitos de diferentes variedades

Resumir

A estratégia combina a filosofia de negociação de reversão com a tendência para obter lucros estáveis em um período de tempo médio ou curto. No futuro, pode ser otimizada em termos de precisão de confirmação de sinais, precisão de descrição de tendências e controle de riscos, tornando o alcance dos parâmetros da estratégia mais amplo e mais estável.

Código-fonte da estratégia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/08/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
//  An FLD is a line that is plotted on the same scale as the price and is in fact the 
//  price itself displaced to the right (into the future) by (approximately) half the 
//  wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be 
//  plotted for each cycle:
//    An FLD based on the median price.
//    An FLD based on the high price.
//    An FLD based on the low price.
//
// 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


FLD(Period,src) =>
    pos = 0
    pos := iff(src[Period] < close , 1,
             iff(src[Period] > close, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & FLD's - Future Lines of Demarcation", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(title="Period", defval=40)
src = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFLD = FLD(Period,src)
pos = iff(posReversal123 == 1 and posFLD == 1 , 1,
	   iff(posReversal123 == -1 and posFLD == -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 )