Stratégie de négociation de SAR en alternance de délais

Auteur:ChaoZhang est là., Date: 2024-01-16 14:18:20 Le président de la République
Les étiquettes:

img

Résumé

Cette stratégie est basée sur les opérations alternées de l'indicateur SAR à travers différents délais. La stratégie calcule l'indicateur SAR en délais de 15 minutes, quotidiens, hebdomadaires et mensuels, et négocie dans le délai hebdomadaire.

Principaux

Calcul de l'indicateur SAR

L'indicateur SAR parabolique (SAR) représente le SAR parabolique, qui juge la direction de la tendance en calculant la relation entre le prix actuel et les prix historiques.

Cette stratégie calcule les valeurs SAR dans des délais de 15 minutes, quotidiens, hebdomadaires et mensuels, respectivement.

SAR = Previous SAR + Acceleration Factor * (Highest Price - Previous SAR) # Uptrend 
SAR = Previous SAR + Acceleration Factor * (Lowest Price - Previous SAR) # Downtrend

Le facteur d'accélération initial est fixé à 0,02, et augmentera progressivement jusqu'à un maximum de 0,2 au fur et à mesure de l'extension de la tendance.

Stratégie commerciale

La stratégie génère des signaux de trading dans le délai hebdomadaire. Elle est longue lorsque le SAR hebdomadaire dépasse le prix le plus élevé, avec la valeur SAR comme stop loss. Elle est courte lorsque le SAR dépasse le prix le plus bas, avec le SAR comme stop loss.

En déterminant la tendance sur une période plus longue et en fixant un niveau de stop loss plus précis, la stratégie vise à réaliser des bénéfices plus efficaces.

Les avantages

  • L'indicateur SAR détermine avec précision les points de renversement de tendance pour l'entrée sur le marché.
  • Les échanges dans des délais plus longs suivent la tendance majeure
  • Le stop loss appliqué à la SAR permet de contrôler efficacement les risques

Risques et solutions

  • Le décalage SAR peut entraîner l'inversion de la tendance après avoir atteint le stop loss.
  • Le facteur d'accélération peut s'élargir de façon spectaculaire sur les tendances énormes, provoquant un stop loss à pénétrer.
  • Des périodes de retrait longues pendant de longs cycles sur des délais plus longs.

Les domaines d'amélioration

  • Optimiser les conditions d'entrée, par exemple en les combinant avec d'autres indicateurs
  • Améliorer les mécanismes d'arrêt des pertes, par exemple, arrêt des pertes en retard, arrêt des pertes en zone
  • Régles de dimensionnement des positions affinées, par exemple réglage fractionnel fixe, réglage dynamique
  • Opérer sur des délais encore plus longs, par exemple trimestriellement, annuellement
  • Optimiser dynamiquement les paramètres par apprentissage automatique

Conclusion

La stratégie a une logique claire de conduite des tendances sur des délais plus longs en utilisant l'indicateur SAR pour localiser les renversements et définir le stop loss. Les signaux d'entrée et la gestion des risques pourraient être encore améliorés. Avec des optimisations dans des domaines tels que les entrées, les arrêts et la taille des positions, il peut devenir plus stable et rentable.


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

//@version=2
strategy ("SAR alternating timeframe", overlay=true)

//resolution
res1=input("15", title="Resolution")
res2=input("D", title="Resolution")
res3=input("W", title="Resolution")
res4=input("M", title="Resolution")

//output functions
out = sar(0.02,0.02,0.2)

// request.security
SAR1 = request.security(syminfo.tickerid, res1, out)
SAR2 = request.security(syminfo.tickerid, res2, out)
SAR3 = request.security(syminfo.tickerid, res3, out)
SAR4 = request.security(syminfo.tickerid, res4, out)

//Plots
//plot(SAR1 , title="SAR 15", color = red, linewidth = 2)
//plot(SAR2 , title="SAR D", color = green, linewidth = 3)
plot(SAR3 , title="SAR W", color =blue, linewidth = 4)
//plot(SAR4 , title="SAR W", color =purple, linewidth = 5))


/////////////////////////////////////////////////////////////////////
//trade
if (SAR3 >= high)
    strategy.entry("ParLE", strategy.long, stop=SAR3, comment="ParLE")
else
    strategy.cancel("ParLE")

if (SAR3 <= low)
    strategy.entry("ParSE", strategy.short, stop=SAR3, comment="ParSE")
else
    strategy.cancel("ParSE")



Plus de