Estratégia de Bressert estocástica duplamente suavizada

Autora:ChaoZhang, Data: 2024-02-05
Tags:

img

Resumo

A estratégia de Bressert estocástica dupla suavizada foi projetada por William Blau.

A estratégia gera sinais de negociação através do cálculo de uma série de índices estocásticos duplos suavizados. Especificamente, primeiro calcula o índice estocástico suavizado de preços e, em seguida, aplica uma média suave a esse índice estocástico novamente para obter o índice estocástico duplo suavizado. Quando a linha de gatilho atravessa o índice estocástico duplo suavizado, são gerados sinais de compra ou venda.

Princípio

  1. Calcular o índice estocástico suavizado xPreCalc dos preços do período PDS
  2. Aplicar uma média móvel exponencial EMAlen para xPreCalc para obter xDSS, ou seja, o índice estocástico suavizado duplo
  3. Calcule a linha de gatilho xTrigger, que é outra linha EMA de xDSS
  4. Gerar sinais comerciais:
    • Vá longo quando o xTrigger estiver abaixo do xDSS e abaixo da linha de sobrevenda
    • Vá curto quando o xTrigger estiver acima do xDSS e acima da linha de sobrecompra
  5. Traçar as curvas do índice estocástico duplo suavizado xDSS e linha de gatilho xTrigger

Vantagens

A estratégia combina a capacidade de seguir a tendência das médias móveis e a capacidade de identificação de sobrecompra/supervenda dos índices estocásticos.

  1. A dupla suavização filtra os falsos sinais e melhora a estabilidade
  2. A linha de gatilho gera sinais de negociação e evita negociações frequentes
  3. Parâmetros personalizáveis adaptados às diferentes condições do mercado
  4. Gráficos intuitivos para facilitar a compreensão e validação da estratégia

Riscos

A Estratégia Estocástica Bressert Dual Smoothed também tem alguns riscos:

  1. Mais sinais falsos do indicador de Bressert em mercados de baixa volatilidade
  2. A dupla suavização pode causar atraso no sinal, falta de pontos de virada dos preços
  3. Configurações incorretas de parâmetros podem não identificar oscilações de preços
  4. O risco comercial continua a existir

Contramedidas:

  1. Otimizar parâmetros para melhorar a precisão
  2. Sinais de filtro com outros indicadores
  3. Utilização do dimensionamento das posições para cobrir riscos

Optimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  1. Ajustar os parâmetros do ciclo do índice duplo suavizado para otimizar o efeito de suavização
  2. Adicionar mecanismos de stop loss para controlar perdas individuais
  3. Adicionar indicadores de avaliação da tendência para evitar a operação reversa
  4. Usar o dimensionamento de posições para maximizar o espaço de lucro

Conclusão

A Estratégia Bressert Estocástica Dual suavizada combina as vantagens das médias móveis e dos índices estocásticos para identificar pontos de sobrecompra/supervenda e seguir tendências.


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/04/2017
// Double Smoothed Stochastics (DSS) is designed by William Blaw. 
// It attempts to combine moving average methods with oscillator principles. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DSS Bressert (Double Smoothed Stochastic)", shorttitle="DSS Bressert")
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")
hline(Overbought, color=green, linestyle=line)
hline(Oversold, color=red, linestyle=line)
xPreCalc = ema(stoch(close, high, low, PDS), EMAlen)
xDSS = ema(stoch(xPreCalc, xPreCalc, xPreCalc, PDS), EMAlen)
//xDSS = stoch(xPreCalc, xPreCalc, xPreCalc, PDS)
xTrigger = ema(xDSS, TriggerLen)
pos = iff(xTrigger < xDSS and xTrigger < Oversold, -1,
	     iff(xTrigger > xDSS and xTrigger > Overbought, 1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xDSS, color=blue, title="DSS")
plot(xTrigger, color=red, title="Trigger")

Mais.