Estratégia seletiva de dupla reversão de sobreposição

Autora:ChaoZhang, Data: 2023-10-26 16:56:56
Tags:

img

Resumo

A estratégia seletiva de dupla sobreposição de reversão combina estratégias de reversão de negociação com filtros de sobrecompra e sobrevenda para alcançar a alocação de ativos e a negociação de tempo.

Estratégia lógica

A estratégia consiste em duas sub-estratégias que se sobrepõem:

  1. 123 Estratégia de reversão

Esta estratégia usa sinais de reversão baseados em dois dias consecutivos de reversão do preço de fechamento. Especificamente, ele vai longo se os preços de fechamento subir nos últimos dois dias e o estocástico lento de 9 dias estiver abaixo de 50, e vai curto se os preços de fechamento cair nos últimos dois dias e o estocástico rápido de 9 dias estiver acima de 50. Esta estratégia de reversão visa capturar reversões de tendência de curto prazo.

  1. Estratégia do oscilador DSS

Esta estratégia usa o oscilador DSS para análise de sobrecompra e sobrevenda. Vai longo se o MA de 5 dias estiver abaixo do MA de 10 dias e do nível de sobrevenda de 20, e vai curto se o MA de 5 dias estiver acima do MA de 10 dias e do nível de sobrecompra de 80. Esta estratégia de sobrecompra e sobrevenda ajuda a evitar negociações desnecessárias em zonas irracionais.

O sinal final só é gerado quando ambas as estratégias concordam, o que melhora a rentabilidade, combinando os pontos fortes dos dois tipos de estratégia.

Análise das vantagens

  1. Combina as vantagens das estratégias de reversão e sobrecompra-supervenda - capturando reversões de curto prazo, evitando negociações em zonas irracionais.

  2. A lógica simples e poucos parâmetros tornam a reversão 123 fácil de implementar.

  3. A combinação melhora a confiabilidade do sinal, reduzindo os falsos sinais.

  4. O ajustamento flexível dos parâmetros adapta a estratégia aos diferentes mercados.

Análise de riscos

  1. Estratégias de reversão têm picking up pennies risco e whipsaw em mercados variados.

  2. A otimização do DSS é difícil e sensível aos parâmetros.

  3. Os sinais divergentes podem perder oportunidades comerciais.

  4. Indicadores simples de preços limitam a rentabilidade.

Soluções:

  1. Redução dos períodos de retenção para reduzir o risco de serrada.

  2. Ajuste cuidadoso dos parâmetros com base em exemplos de sucesso.

  3. Adicionar filtros para melhorar a estratégia.

  4. Otimizar o tempo de entrada ou o dimensionamento da posição.

Orientações para a melhoria

  1. Ensaiar outros indicadores de inversão para melhorar a precisão do sinal.

  2. Explore indicadores alternativos de sobrecompra e sobrevenda, como o RSI.

  3. Adicione stop loss para bloquear lucros e limitar perdas.

  4. Otimizar os parâmetros para diferentes mercados.

  5. Considere o ajuste de parâmetros dinâmicos.

  6. Construir modelos de aprendizagem de máquina para gerar sinais.

Conclusão

A estratégia seletiva de sobreposição de reversão dupla fornece funcionalidade de alocação de ativos e de negociação de tempo, combinando estratégias de reversão e sobrecompra. Tem vantagens como parâmetros flexíveis, lógica simples e implementação fácil, filtrando efetivamente as negociações de ruído em zonas irracionais. Mas existem limitações como riscos de reversão e dificuldades de otimização de parâmetros. Melhorias futuras podem vir da adição de stop loss, otimização de parâmetros, incorporação de aprendizado de máquina, etc. No geral, fornece uma solução de negociação quantitativa robusta.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/03/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
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// 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

DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold) =>
    pos = 0
    xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
    xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
    xTrigger = ema(xDSS, TriggerLen)
    pos := iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	         iff(xTrigger > xDSS and xTrigger > Overbought, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & DSS Bressert", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
PDS = input(10, minval=1)
EMAlen = input(9, minval=1)
TriggerLen = input(5, minval=1)
Overbought = input(80, minval=1)
Oversold = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDSS = DSSB(PDS, EMAlen,TriggerLen,Overbought,Oversold)
pos = iff(posReversal123 == 1 and posDSS == 1 , 1,
	   iff(posReversal123 == -1 and posDSS == -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.