Stratégie de rupture de gamme ARGO

Auteur:ChaoZhang est là., Date: 2023-10-07 16h04 et 16h
Les étiquettes:

Résumé

La stratégie ARGO Range Breakout est un système de négociation de fourchette de 4 heures inspiré des principes de rupture de canal.

La logique de la stratégie

La stratégie calcule d'abord le plus haut haut (upBound) et le plus bas bas (downBound) sur une période définie pour former la plage de canal.

Plus précisément, la stratégie calcule le upBound et le downBound sur N périodes (défaut 47). Elle définit ensuite un point de rapport (défaut 1) et une tolérance tol (défaut 1000), pour calculer la limite supérieure BoundUp et la limite inférieure BoundDown du canal. Un signal d'achat est déclenché lorsque le prix dépasse la limite inférieure. Un signal de vente est déclenché lorsque le prix dépasse la limite supérieure.

En outre, les conditions de stop loss et de take profit sont configurées. Le stop loss pour les transactions longues est fixé près de la limite inférieure, tandis que pour les transactions courtes est proche de la limite supérieure. Le take profit est basé sur le ratio profit/perte cible d'entrée.

Analyse des avantages

  • Utilise les principes du canal de Bollinger pour s'adapter à la volatilité du marché
  • Le délai de quatre heures vise à capturer les fluctuations significatives des prix
  • La combinaison de la stratégie de rupture aide à détecter les renversements de tendance
  • Le risque/récompense par transaction est contrôlé par le système de stop-loss et de prise de bénéfices

Risques et solutions

  • Vulnérables aux fausses fuites et à être pris au piège
  • Des délais plus longs peuvent entraîner des pertes plus importantes
  • Un arrêt inapproprié peut entraîner des pertes inacceptables.
  • Les solutions:
    • Optimiser les paramètres du canal contre les fausses ruptures
    • Déterminer soigneusement la taille de la position et les niveaux de stop loss
    • Améliorer le stop loss/take profit pour un contrôle strict du risque

Directions d'optimisation

  • Optimiser les paramètres des canaux pour mieux s'adapter à la volatilité du marché
  • Ajustez dynamiquement le stop loss/take profit pour un meilleur risque/rendement
  • Ajoutez des filtres commerciaux pour éviter les pièges et la poursuite des hauts
  • Incorporer des facteurs supplémentaires pour éviter de faux signaux
  • Combiner les indicateurs de tendance et de volatilité pour de meilleures décisions
  • Optimiser la gestion des capitaux pour les différentes conditions du marché

Conclusion

L'ARGO Range Breakout Strategy est un système de négociation à moyen terme de 4 heures basé sur le canal de Bollinger et les principes de rupture. Par rapport au trading à court terme, il se concentre davantage sur la capture des renversements de tendance sur des délais à moyen terme. Avec une optimisation appropriée, il peut s'adapter à différents environnements de marché et réaliser des profits significatifs tout en contrôlant les risques. La stratégie équilibre le suivi de la tendance et la gestion des risques.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-06 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

// strategy("ARGO_BAND-STRATEGY", overlay=true,default_qty_value=10000,scale=true,initial_capital=100,currency=currency.USD)

// A 4hours Breakout Strategy work in progres..it's  a starting point, thanks to all tradingview community
//How to use: test it only on gbpjpy 240 min, wait the end of the candle to place next order, red and blue dots are short and long stop orders, Targets are Upper and lowerBands. Test it and enjoy but use at your own risk..
//2016 © F.Peluso


risk=input(title="Risk", defval=1)
length = input(title="Length",  minval=1, maxval=1000, defval=47)
stopBound=input(title="Previous",defval=10)
upBound = highest(high, length)
downBound = lowest(low, length)
point=1
tol=1000
stopT=input(title="Stop", defval=5,minval=1, maxval=5)
dev =input(title="Tolerance",defval=2,minval=1, maxval=5)
limitBoundUp=( highest(high, length))*(point-(dev/tol))
limitBoundDown=downBound/(point-(dev/tol))
plot(limitBoundUp[1],linewidth = 3,style = circles, color = navy,trackprice=true),transp=0
plot(limitBoundDown[1],linewidth = 3,style = circles, color = red,trackprice=true,transp=0)
mezzalinea=((upBound+downBound)/2)

// Color Bands

colo = ((close>limitBoundUp[1]) ? blue : (close<upBound[1]) ? white : na)
UpB = plot(upBound[1], title="Upper Bound", style=linebr, linewidth=1, color=colo)
DownB = plot(limitBoundUp[1] ,title="Lower Bound", style=linebr, linewidth=2, color=colo)
fill(UpB, DownB, color=colo, transp=90)

plot(limitBoundUp[2]/(point+(stopT/tol)),color=colo)

coloS = ((close<limitBoundDown[1]) ? red : (close>downBound[1]) ? white : na)
DB = plot(downBound[1], title="Upper Bound", style=linebr, linewidth=1, color=coloS)
DoB = plot(limitBoundDown[1] ,title="Lower Bound", style=linebr, linewidth=2, color=coloS)
fill(DB, DoB, color=coloS, transp=90)

plot(limitBoundDown[2]*(point+(stopT/tol)),color=coloS)

// Strategy

past=input(title="Past", defval=5)
buy=(crossover(close,limitBoundUp))
closebuy=cross(high[past],upBound[0])
stopbuy = limitBoundUp[2]/(point+(stopT/tol))

sell=crossunder(close,limitBoundDown)
closesell=cross(low[past],downBound[0])


if (not na(close[length]))
    if (buy)
        strategy.entry("ChBrkLE", strategy.long,stop=limitBoundUp - syminfo.mintick,comment="Long I")   

strategy.close("ChBrkLE",when=closebuy)

if (not na(close[length]))
    if (sell)
        strategy.entry("ChBrkSE", strategy.short,stop=limitBoundDown + syminfo.mintick,comment="Short I")   

strategy.close("ChBrkSE",when=closesell)

Target =input(0) * 10 
Stop = input(90) * 10 
Trailing = input(40) * 10
CQ = 100
TPP = (Target > 0) ? Target : na
SLP = (Stop > 0) ? Stop : na
TSP = (Trailing > 0) ? Trailing : na
strategy.exit("Out Short", "ChBrkSE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Out Long", "ChBrkLE", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de