Estratégia de negociação integrada de inversão e centro de gravidade baseada em estratégias múltiplas

Autora:ChaoZhang, Data: 2024-01-03 16:51:03
Tags:

img

Resumo

Esta estratégia realiza decisões de negociação mais estáveis e eficientes através da integração de sinais de negociação duplos. Um é a estratégia de reversão combinando sinais de reversão de preço e indicadores estocásticos, e o outro é a estratégia de ruptura da linha central e do canal de preço. Os sinais de negociação das duas estratégias serão logicamente ANDed, ou seja, a posição será aberta apenas quando as duas estratégias emitirem sinais na mesma direção ao mesmo tempo. Este tipo de integração multi-estratégia pode filtrar alguns sinais inválidos e alcançar decisões de negociação mais confiáveis.

Princípio da estratégia

A parte da estratégia de reversão gera sinais de negociação quando o preço mostra um padrão de reversão por dois dias de negociação consecutivos e o indicador estocástico entrou na área de sobrecompra ou sobrevenda. Isso permite o uso de sinais de reversão de preço e sinais de sobrecompra / sobrevenda para confirmação dupla. A parte do centro de gravidade constrói canais superiores e inferiores ao redor da linha central de regressão linear do preço para gerar sinais de negociação quando o canal é quebrado. Os sinais de ruptura de canal também implicam que os preços estão começando a experimentar movimentos de tendência direcional.

As duas estratégias capturam oportunidades de valor e tendência, respectivamente. Ao ANDar logicamente os sinais da estratégia, a posição só é aberta quando as duas estratégias emitem sinais na mesma direção ao mesmo tempo. Isso pode efetivamente filtrar alguns sinais inválidos e tornar a estratégia final mais confiável.

Análise das vantagens

A maior vantagem desta estratégia é a estabilidade e confiabilidade dos sinais. A combinação de estratégias de reversão e tendência capta oportunidades de negociação de reversão e tendência ao mesmo tempo, sem perder nenhum movimento importante. Enquanto isso, a operação AND lógica filtra alguns sinais inválidos, tornando a estratégia final mais confiável e evita ser enganada pelo ruído.

Além disso, a combinação de estratégias de reversão e tendência também alcança operações estáveis em vários prazos. A estratégia de reversão utiliza sinais de sobrecompra / sobrevenda de curto prazo, enquanto o centro de gravidade da estratégia é baseado em médias móveis de médio e longo prazo. Os prazos complementares podem gerar oportunidades de negociação sustentadas e estáveis.

Análise de riscos

O maior risco desta estratégia é a falha na correspondência de sinais das estratégias duais, o que leva a sinais de negociação insuficientes. Isso pode acontecer quando o preço está limitado e consolidando-se sem uma tendência direcional clara.

Além disso, a operação lógica AND das estratégias duais também pode perder algumas oportunidades de uma única estratégia.

Para mitigar os riscos, os parâmetros poderiam ser moderadamente relaxados para facilitar a correspondência e a abertura de posições com os sinais de estratégia.

Orientações de otimização

Existem duas dimensões principais em que esta estratégia pode ser otimizada:

O primeiro é a otimização de parâmetros. Os parâmetros, incluindo os indicadores de Stoch e os canais de linha central, podem ser testados e otimizados para obter sinais mais alinhados. Isso pode ser alcançado através de mais backtests.

O segundo é introduzir mecanismos semelhantes às operações de seleção de ações. Porque esta estratégia é mais adequada para ações com tendências claras. Portanto, se as ações que atendem a certas condições podem ser selecionadas para negociação com base em indicadores específicos, isso melhoraria significativamente o desempenho geral da estratégia. Isso requer o projeto de um módulo de seleção de ações combinado com tendências de rotação da indústria, sistemas de média móvel, etc.

Resumo

Esta estratégia atinge a dupla confirmação e a correspondência de decisões de negociação em vários prazos, integrando estratégias de reversão e tendência, ao mesmo tempo em que enfrenta o problema de oportunidades de negociação reduzidas devido à dificuldade na correspondência de sinais.


/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 18/07/2019
// 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
// The indicator is based on moving averages. On the basis of these, the 
// "center" of the price is calculated, and price channels are also constructed, 
// which act as corridors for the asset quotations.
//
// 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

CenterOfGravity(Length, m,Percent, SignalLine) =>
    pos = 0
    xLG = linreg(close, Length, m)
    xLG1r = xLG + ((close * Percent) / 100)
    xLG1s = xLG - ((close * Percent) / 100)
    xLG2r = xLG + ((close * Percent) / 100) * 2
    xLG2s = xLG - ((close * Percent) / 100) * 2
    xSignalR = iff(SignalLine == 1, xLG1r, xLG2r)
    xSignalS = iff(SignalLine == 1, xLG1s, xLG2s)
    pos :=  iff(close > xSignalR, 1,
             iff(close < xSignalS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Center Of Gravity", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCoF = input(20, minval=1)
m = input(5, minval=0)
Percent = input(1, minval=0)
SignalLine = input(1, minval=1, maxval = 2, title = "Trade from line (1 or 2)")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(LengthCoF, KSmoothing, DLength, Level)
posCenterOfGravity = CenterOfGravity(Length, m,Percent, SignalLine)
pos = iff(posReversal123 == 1 and posCenterOfGravity == 1 , 1,
	   iff(posReversal123 == -1 and posCenterOfGravity == -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.