O recurso está a ser carregado... Carregamento...

Estratégia de negociação de ruptura da força de volatilidade

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

img

Resumo

Esta estratégia utiliza a média móvel, ATR, Bollinger Bands para julgamento da tendência e negociação de breakout, combinado com índice de força para o tempo, pertence à estratégia de negociação de breakout.

Estratégia lógica

  1. Calcule as linhas média, superior e inferior das Bandas de Bollinger.

  2. Calcule ATR rápido e lento. ATR rápido tem período de 20, ATR lento tem período de 50.

  3. Calcule o índice de força XFORCE, que é acumulado do volume * (fechamento - fechamento anterior).

  4. Julgar o sinal longo: XFORCE rápido cruzar acima do XFORCE lento, e ATR rápido > ATR lento, e fechar > aberto.

  5. Julgar sinal curto: rápido XFORCE cruzar abaixo do lento XFORCE, e rápido ATR > lento ATR, e fechar < aberto.

  6. Vai longo quando o sinal longo é disparado, vai curto quando o sinal curto é disparado.

Análise das vantagens

  1. A média móvel fornece tendência, as Bandas de Bollinger fornecem pontos de ruptura.

  2. ATR avalia a volatilidade, implementa negociação de volatilidade.

  3. O índice de força determina a direcção da força, implementa a fuga da força.

  4. A combinação de múltiplos indicadores proporciona um julgamento abrangente.

  5. Regras claras e simples, fáceis de compreender e de aplicar.

  6. Bons resultados de backtest, lucro estável.

Análise de riscos

  1. As bandas de Bollinger podem gerar sinais errados se a largura não for adequada.

  2. Parâmetros ATR errados não conseguem captar a volatilidade do mercado.

  3. O índice de força tem um efeito limitado, não pode determinar a reversão real da tendência.

  4. Dificuldade de ajustar parâmetros e pesos para múltiplos indicadores.

  5. Os sinais de ruptura podem ser imprecisos, divergência pode acontecer.

  6. O drawdown pode ser grande, pode usar stop loss para controlá-lo.

Orientações de otimização

  1. Otimizar os parâmetros das bandas de Bollinger para diferentes períodos e instrumentos.

  2. Otimizar os parâmetros do ATR para melhor captar a volatilidade.

  3. Adicionar indicadores de tendência como MACD para validação de tendência.

  4. Adicione estratégias de stop loss como trailing stop para controlar o drawdown.

  5. Utilize algoritmos de IA para julgar sinais de inversão.

  6. Combine vários prazos para um julgamento abrangente e reduzir os falsos sinais.

Resumo

Esta estratégia integra média móvel, ATR, Bandas de Bollinger e índice de força para formar um sistema de negociação completo. Melhorias adicionais na otimização de parâmetros, adicionando filtro de tendência, estratégia de stop loss e algoritmos de IA podem melhorar a estabilidade e lucratividade.


/*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=2
strategy("yuthavithi volatility based force trade scalper strategy", overlay=true)

fast = input(3, minval= 1, title="Fast")
slow = input(20, minval = 1, title = "Slow")
atrFast = input(20, minval = 1, title = "ATR Fast")
atrSlow = input(50, minval = 1, title = "ATR Slow")

len = input(20, minval=1, title="Length")
multiplier = input(2, minval=1, title="multiplier")
src = input(close, title="Source")
bbMid = sma(src, len)
plot(bbMid, color=blue)

atrFastVal = atr(atrFast)
atrSlowVal = atr(atrSlow)
stdOut = stdev(close, len)
bbUpper = bbMid + stdOut * multiplier
bbLower = bbMid - stdOut * multiplier
plot(bbUpper, color = (atrFastVal > atrSlowVal ? red : silver))
plot(bbLower, color = (atrFastVal > atrSlowVal ? red : silver))


force = volume * (close -  nz(close[1]))
xforce = cum(force)
xforceFast = ema(xforce, fast)
xforceSlow = ema(xforce, slow)

bearish = ((xforceFast < xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] > xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close < open)
bullish = ((xforceFast > xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] < xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close > open)


if (bullish)
    strategy.entry("Buy", strategy.long)

if (bearish)
    strategy.entry("Sell", strategy.short)

Mais.