Stratégie de négociation quantitative basée sur le canal SuperTrend

Auteur:ChaoZhang est là., Date: 2024-02-05 13:57:28 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie génère des signaux d'entrées et de sorties basés sur l'indicateur du canal SuperTrend pour réaliser un trading quantique automatisé.

Principe de stratégie

Cette stratégie utilise ATR et Donchian Channel pour calculer deux lignes de stop-loss pour les positions longues et courtes. Plus précisément, elle calcule la valeur ATR en utilisant la période ATR et les paramètres du multiplicateur, puis l'additionne et la soustrait de la moyenne du plus haut et du plus bas pour obtenir les lignes de stop-loss longues et courtes. Lorsque le prix de clôture dépasse la ligne de stop-loss longue vers le haut, un signal long est généré. Lorsque le prix de clôture dépasse la ligne de stop-loss court vers le bas, un signal court est déclenché.

Après avoir pris des positions longues ou courtes, les lignes de stop-loss sont mises à jour dynamiquement pour verrouiller les profits. La nouvelle ligne de stop-loss ne sera ni plus basse ni plus élevée que la précédente, évitant ainsi la pénétration de stop-loss.

Analyse des avantages

Le principal avantage de cette stratégie est que l'indicateur de canal SuperTrend peut identifier clairement la direction de la tendance et les niveaux de support/résistance clés.

Plus précisément, les deux lignes de stop-loss dans l'indicateur de canal SuperTrend représentent la base de coût de la position et le dernier support/résistance. Elles offrent une orientation très claire pour les entrées et sorties. Pendant ce temps, la ligne de stop-loss s'actualise dynamiquement pour verrouiller les bénéfices et empêcher la pénétration de stop-loss.

En général, cette stratégie entre en vigueur au moment où la tendance est déterminée, contrôle le risque via un stop-loss dynamique, ce qui en fait une stratégie de trading quantitative relativement robuste.

Analyse des risques

Le risque majeur de cette stratégie réside dans la possibilité d'une pénétration de stop-loss. Lorsque le prix fluctue violemment, la nouvelle ligne stop-loss peut devenir inférieure ou supérieure à la précédente, provoquant une pénétration de stop-loss et une augmentation des pertes.

En outre, les signaux d'entrées générés par l'indicateur de canal SuperTrend ne fonctionnent pas bien sur les marchés à tendance variable, ce qui conduit parfois à des transactions erronées.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimisez la période ATR et les paramètres du multiplicateur pour trouver la meilleure combinaison en testant en arrière diverses valeurs et en analysant des mesures telles que le rendement et le rapport Sharpe.

  2. Ajouter d'autres indicateurs pour la filtration des signaux pour éviter les entrées erronées dans les marchés de gamme.

  3. Incorporer des indicateurs de volume pour affiner la position stop-loss. Les lignes de stop-loss peuvent être ajustées en fonction des augmentations de volume pour bloquer davantage les bénéfices.

  4. Introduire des modèles d'apprentissage automatique pour l'optimisation adaptative des paramètres.

Conclusion

Cette stratégie provient de l'indicateur de canal SuperTrend avec un jugement clair de la direction de la tendance et un taux de gain relativement élevé. Elle applique également un stop-loss de suivi dynamique ATR pour contrôler la perte d'une seule transaction. La performance peut être encore améliorée grâce à l'optimisation des paramètres, l'optimisation des indicateurs, etc. En général, c'est une stratégie robuste adaptée au trading quantique automatisé.


/*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=4
//EU ESCREVI ISSO TUDO, PARA FICAR BEM CLARO

strategy("SuperTrend Strategy", overlay=true)


//AQUI OS INPUTS PARA A SUPERTREND
length = input(title="ATR Period", type=input.integer, defval=7)
mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=7)
showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true)

//AQUI O CALCULO DO ATR STOPS
atr = mult * atr(length)



//AQUI A TRANSFORMAÇÃO DO ATR STOPS EM SUPERTREND
//-
//A LÓGICA PARA LONGSTOP
longStop = hl2 - atr
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

//A LÓGICA PARA SELLSTOP
shortStop = hl2 + atr
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop


//DIREÇÃO DO INDICADOR
dir = 1
dir := nz(dir[1], dir)
dir := dir == -1 and close > shortStopPrev ? 1 : 
   dir == 1 and close < longStopPrev ? -1 : dir


//DEFININDO AS CORES DAS LINHAS DA SUPERTREND
longColor = color.lime
shortColor = color.red


//PLOTANDO NO GRÁFICO A SUPERTREND E A ESTRATÉGIA
plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=3, color=longColor)
buySignal = dir == 1 and dir[1] == -1
plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=3, color=shortColor)
sellSignal = dir == -1 and dir[1] == 1

//DEFININDO AS FUNÇÕES DE COMPRA E VENDA
strategy.entry("long", strategy.long, when = buySignal)
strategy.entry("short", strategy.short, when = sellSignal)




Plus de