Estratégia quantitativa de acompanhamento das tendências baseada em múltiplos indicadores técnicos

Autora:ChaoZhang, Data: 2024-01-22 10:40:01
Tags:

img

Resumo

Esta estratégia combina múltiplos indicadores técnicos, como Bandas de Bollinger, Oscilador Estocástico e Índice de Força Relativa, para definir sinais de compra e venda para operações de rastreamento de tendências de longo prazo em ativos criptográficos.

Princípio da estratégia

A estratégia primeiro define os parâmetros de cálculo para indicadores como Bollinger Bands, Stochastic Oscillator e RSI. O sinal de compra é definido como: fechar abaixo da Bollinger Lower Band, linha K abaixo de 20 e acima da linha D, RSI abaixo de 30. Quando todas as três condições são atendidas ao mesmo tempo, vá longo. O sinal de venda é parcialmente definido como: linha K acima de 70 e abaixo de 70 no período anterior (cruz morta do ouro), e há divergência RSI. Quando essas duas condições são atendidas, feche 50% da posição.

Análise das vantagens

Esta estratégia combina múltiplos indicadores para julgar a condição do mercado e evita erros de julgamento causados por um único indicador. Bandas de Bollinger para julgar se é sobrevendido, Oscilador Estocástico para julgar se é sobrevendido e RSI para julgar se é sobrevendido. Os efeitos combinados de múltiplos indicadores podem identificar efetivamente os fundos do mercado para compras precisas. Além disso, a estratégia também usa a divergência do RSI para julgar reversões potenciais da tendência para evitar perdas de parada tardia.

Análise de riscos

Esta estratégia baseia-se na otimização de parâmetros. Se os parâmetros forem definidos incorretamente, não conseguirá identificar corretamente os piques e os fundos. Além disso, pode haver combinações incorretas entre os indicadores. Por exemplo, as Bandas de Bollinger identificam sobrevenda, mas outros indicadores não atingem as condições correspondentes. Todas essas situações podem levar a perdas desnecessárias. Por fim, a estratégia não considera o drawdown máximo e a gestão de posição, que também precisa de otimização.

Orientações de otimização

  1. Teste e otimize os parâmetros do indicador para encontrar a melhor combinação de parâmetros.

  2. Adicionar o controlo de retirada máxima para pausar a negociação ao atingir o limiar.

  3. Adicionar um módulo de gestão de posições para ajustar dinamicamente as posições com base nas condições de mercado.

  4. Quando a direção do mercado for determinada incorretamente, defina um ponto de stop loss razoável para controlar a perda única.

Resumo

A ideia geral desta estratégia é clara. Através do julgamento de múltiplos indicadores, ela tem uma forte capacidade de capturar piores e piores. Mas alguns parâmetros e módulos ainda têm espaço para otimização. Com ajustes adequados, ela pode se tornar uma estratégia quantitativa de lucro estável.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Stratégie d'Entrée et de Sortie Longue", overlay=true)

// Paramètres des indicateurs
longueurBollinger = 20
stdDevBollinger = 2
longueurStochastic = 14
smoothK = 3
smoothD = 3
longueurRSI = 14

// Bollinger Bands
basis = ta.sma(close, longueurBollinger)
dev = ta.stdev(close, longueurBollinger)
lowerBand = basis - stdDevBollinger * dev

// Stochastic Oscillator
k = ta.sma(ta.stoch(close, high, low, longueurStochastic), smoothK)
d = ta.sma(k, smoothD)

// RSI
rsi = ta.rsi(close, longueurRSI)

// Logique des autres indicateurs (à compléter)

// Conditions d'entrée (à définir)
conditionBollinger = close < lowerBand
conditionStochastic = k < 20 and k > d
conditionRSI = rsi < 30
// Autres conditions (Braid Filter, VolumeBIS, Price Density...)

conditionEntree = conditionBollinger and conditionStochastic and conditionRSI // et autres conditions

// Exécution du trade (entrée)
if (conditionEntree)
    strategy.entry("Long Position", strategy.long)

// Conditions de sortie
stochCrossOver70 = k > 70 and k[1] <= 70

// Simplification de la détection de divergence baissière
// (Cette méthode est basique et devrait être raffinée pour une analyse précise)
highsRising = high > high[1]
lowsRising = low > low[1]
rsiFalling = rsi < rsi[1]
divergenceBearish = highsRising and lowsRising and rsiFalling

// Clôturer la moitié de la position
if (stochCrossOver70 and divergenceBearish)
    strategy.close("Long Position", qty_percent = 50)


Mais.