Supertrend e estratégia de scalping da CCI

Autora:ChaoZhang, Data: 2024-02-26 10:44:43
Tags:

img

Resumo

Esta estratégia baseia-se em dois indicadores de Super Tendência com configurações de parâmetros diferentes e no indicador CCI, com o objetivo de capturar flutuações de preços de curto prazo para negociações de alta frequência.

Estratégia lógica

  • Use 14 períodos ATR para calcular a Super Tendência rápida, com um fator definido como 3; use 14 períodos ATR para calcular a Super Tendência lenta, com um fator definido como 6. A Super Tendência rápida é mais sensível e pode capturar mudanças de curto prazo; a Super Tendência lenta determina a direção da tendência principal.

  • Quando a Super Tendência rápida cruza abaixo do preço, e a Super Tendência lenta ainda está acima do preço, é julgada como um possível sinal de reversão para ir longo; quando a Super Tendência rápida cruza acima do preço, e a Super Tendência lenta ainda está abaixo do preço, é julgada como um possível sinal de reversão para ir curto.

  • Ao mesmo tempo, use o CCI para julgar se o mercado está sobrecomprado ou sobrevendido. CCI acima de 100 indica um mercado sobrecomprado, enquanto abaixo de -100 significa um mercado sobrevendido.

  • A probabilidade de o indicador Super Trend emitir um sinal de reversão é maior quando o mercado está sobrecomprado ou sobrevendido.

Análise das vantagens

  • A combinação de Super Trend para determinar pontos de reversão da tendência e CCI para julgar condições de sobrecompra/supervenda pode filtrar efetivamente falsas rupturas e melhorar a qualidade do sinal.

  • Crossovers Super Trend rápidos e lentos formam sinais de negociação para alcançar entrada e saída de alta frequência.

  • Os parâmetros CCI e Super Trend podem ser ajustados de forma flexível para se adaptarem às diferentes condições do mercado.

  • A ideia de estratégia é clara e fácil de entender, e o ajuste de parâmetros também é relativamente simples.

Riscos e soluções

  • A própria Super Tendência tem efeito retardador, possivelmente perdendo a primeira oportunidade de reversão.

  • O CCI tem riscos de recompra, e as flutuações excessivas também podem causar negociações repetitivas.

  • A negociação de alta frequência tende a aumentar a frequência das transacções e os custos de negociação.

Orientações de otimização

  • A combinação de parâmetros pode ser percorrida e otimizada com base no drawdown máximo ou na relação lucro/perda para encontrar o parâmetro ideal.

  • Métodos de aprendizado de máquina como Random Forest podem ser usados para seleção de recursos em parâmetros para obter otimização automática de parâmetros.

  • Explorar a limitação do número máximo de posições abertas num determinado ciclo para controlar os riscos.

Conclusão

A estratégia faz pleno uso do indicador Super Trend para determinar pontos de reversão de tendência de curto prazo, complementado pelo indicador CCI para filtrar sinais. Quando as configurações de parâmetros são razoáveis, pode alcançar uma negociação eficiente de curto prazo. Mas também precisa ser cauteloso com os riscos decorrentes de negociação excessiva e melhorar continuamente o desempenho da estratégia através do ajuste de parâmetros e otimização de algoritmos.


/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Stochastic RSI Strategy", shorttitle="StochRSI", overlay=true)

rsiLength = input.int(14, title="RSI Length")
stochLength = input.int(14, title="Stochastic Length")
kSmooth = input.int(3, title="K Smooth")
dSmooth = input.int(3, title="D Smooth")
oversoldLevel = input(10, title="Oversold Level")
overboughtLevel = input(90, title="Overbought Level")

rsi = ta.rsi(close, rsiLength)
stochRsi = ta.stoch(rsi, rsi, rsi, stochLength)

longCondition = stochRsi < oversoldLevel
shortCondition = stochRsi > overboughtLevel

if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)

if (shortCondition)
    strategy.close("Long")
if (longCondition)
    strategy.close("Short")

plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)


Mais.