Estratégia de negociação quantitativa que integre a inversão e as futuras linhas de demarcação

Autora:ChaoZhang, Data: 2023-12-08 12:00:35
Tags:

img

Resumo

Esta estratégia integra a estratégia de reversão 123 e a estratégia de linhas de demarcação futuras (FLD) para implementar uma estratégia quantitativa de negociação que entra ou sai de posições quando ambas as estratégias geram sinais simultaneamente.

Princípios

123 Estratégia de reversão

A estratégia de reversão 123 tem origem no livro How I Tripled My Money in the Futures Market. Ela vai longa quando o preço de fechamento mostra padrões de reversão por dois dias contínuos e a estocástica lenta de 9 dias está abaixo de 50; Ela vai curta quando o preço de fechamento mostra padrões de reversão por dois dias contínuos e a estocástica rápida de 9 dias está acima de 50.

Líneas futuras da estratégia de demarcação

A estratégia de linhas de demarcação futuras (FLD) é uma estratégia de tendência baseada na periodicidade das flutuações de preços.

Análise das vantagens

Esta estratégia combina estratégias de reversão e de tendência, capturando oportunidades de reversão de curto prazo e direções de tendência de médio e longo prazo em vários prazos para negociação quantitativa. O elemento de reversão fornece chances de lucro de curto prazo, enquanto a parte de tendência garante que a negociação geral esteja alinhada com a tendência, controlando efetivamente os riscos comerciais. Além disso, a natureza adaptativa da FLD também aumenta a estabilidade da estratégia.

Análise de riscos

Os principais riscos desta estratégia vêm de falhas de sinais de reversão e erros nos julgamentos da linha FLD. Para o primeiro, os parâmetros podem ser ajustados para confirmar os sinais de reversão ou adicionar outros indicadores auxiliares para melhorar a precisão. Para o segundo, os parâmetros precisam ser otimizados para garantir que o FLD descreva os ciclos de mercado com mais precisão. Além disso, os erros do FLD quando ocorrem grandes inversões de tendência também devem ser observados.

Orientações de otimização

  1. Melhorar a estratégia de reversão adicionando outros indicadores aos sinais filtrados e diminuindo as possibilidades de falha de ruptura
  2. Comparar diferentes parâmetros de FLD para melhor descrever padrões cíclicos
  3. Adicionar uma lógica de stop loss para controlar os riscos de perda única
  4. Eficácia dos parâmetros de ensaio em diferentes produtos

Conclusão

Esta estratégia combina conceitos de reversão e de tendência para lucros estáveis em prazos de curto e médio prazo.


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

Mais.