Tendance à suivre la stratégie avec stop loss

Auteur:ChaoZhang est là., Date: 2024-01-12 14:55:40 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie identifie les tendances des prix en calculant l'indicateur Supertrend et établit des positions longues ou courtes lorsque les tendances changent.

Principes de stratégie

Cette stratégie utilise la fonction ta.supertrend() pour calculer l'indicateur Supertrend. La Supertrend combine la plage moyenne réelle et le prix moyen pour déterminer si les prix sont en tendance haussière ou en tendance baissière. Lorsque les prix changent d'une tendance baissière à une tendance haussière, la stratégie détecte le changement de direction en utilisant ta.change() et établit une position longue. Lorsque les prix passent d'une tendance haussière à une tendance baissière, une position courte est prise.

Le niveau stop loss stop_loss et le niveau take profit profit sont définis pour placer des ordres stop loss et des ordres take profit après avoir entré dans des positions afin de contrôler les risques.

Plus précisément, la stratégie est mise en œuvre à travers les étapes suivantes:

  1. Calculer la direction de l'indicateur Supertrend
  2. Vérifiez si les prix sont passés d'une tendance à la baisse à une tendance à la hausse et établissez une position longue si oui
  3. Vérifiez si les prix sont passés d'une tendance haussière à une tendance baissière et prenez une position courte si oui
  4. Définir le prix stop-loss et le prix take profit pour la position longue après son établissement
  5. Définir le prix stop-loss et le prix take profit pour la position courte après son établissement

Les étapes ci-dessus peuvent capturer efficacement les changements de tendance et prendre des positions aux moments appropriés.

Analyse des avantages

L'indicateur Supertrend a un effet de filtrage sur les fluctuations des prix et peut identifier efficacement les tendances, évitant ainsi de prendre des positions excessives sur des marchés variables.

En outre, les niveaux prédéfinis de stop-loss et de take profit permettent un stop-loss et une profit-taking automatiques, plafonnant efficacement les pertes d'une seule transaction et bloquant les gains.

Comparée aux stratégies simples de moyenne mobile, cette stratégie a des capacités supérieures en matière d'identification des tendances et est plus adaptée aux marchés en tendance.

Analyse des risques

Le plus grand risque de cette stratégie provient d'un réglage inapproprié des paramètres de l'indicateur Supertrend. Si les paramètres ne sont pas définis de manière appropriée, l'efficacité de l'indicateur pour détecter les changements de tendance en souffrira. Une période ATR trop longue ou un facteur trop petit peuvent tous deux retarder la réaction du Supertrend aux mouvements de prix, causant des opportunités d'entrée manquées.

En outre, les niveaux de stop loss et de take profit ont un impact significatif sur la performance de la stratégie. Un stop loss trop serré pourrait facilement être arrêté prématurément. Un take profit trop large peut manquer les points de sortie idéaux. Une optimisation approfondie est nécessaire pour trouver les valeurs optimales des paramètres pour différentes conditions de marché et instruments de trading.

Enfin, comme toutes les stratégies de suivi de tendance, les renversements soudains de tendance et les échecs peuvent encore causer des pertes qui doivent être contrôlées par une bonne gestion de l'argent.

Des possibilités d'amélioration

Les aspects suivants de la stratégie peuvent être améliorés:

  1. Optimiser les paramètres de l'indicateur Supertrend, y compris la période et le facteur ATR par le biais de backtesting.

  2. Incorporer des règles de dimensionnement des positions basées sur des indicateurs de performance tels que le rendement et les retraits.

  3. Augmentation avec des modèles d'apprentissage automatique pour aider à identifier les tendances.

  4. Ajouter des filtres basés sur d'autres indicateurs tels que les moyennes mobiles et les mesures de volatilité pour éviter de faux signaux.

  5. Optimiser dynamiquement les niveaux de stop loss et de profit en fonction de la volatilité du marché et de la taille des positions.

Les améliorations susmentionnées peuvent améliorer la rentabilité, la stabilité et la gestion des risques de la stratégie.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de suivi de tendance très pratique. Elle suit automatiquement les changements de tendance et utilise le stop loss et le profit pour contrôler les risques. Par rapport aux stratégies de moyenne mobile simples, elle a une capacité d'identification de tendance supérieure et est plus adaptée aux marchés en tendance. Avec une certaine optimisation des paramètres et une augmentation de l'apprentissage automatique, cette stratégie peut atteindre une stabilité et des bénéfices encore meilleurs. Elle mérite d'autres recherches et applications.


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

//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity)

// Stop loss and profit amount
stop_loss = input(300, title="Stop Loss Amount")
profit = input (800, title="Profit Amount")

atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

[_, direction] = ta.supertrend(factor, atrPeriod)

long_condition = ta.change(direction) <0
short_condition = ta.change(direction) >0
long_condition_1= (long_condition)?1:0
short_condition_2 = (short_condition)?1:0

stop_price_long = ta.valuewhen(long_condition, low[0]-stop_loss,0)
profit_price_long = ta.valuewhen(long_condition, high[0]+profit,0)
stop_price_short = ta.valuewhen(short_condition, high[0]+stop_loss,0)
profit_price_short = ta.valuewhen(short_condition, low[0]-profit,0)

if (long_condition)
    strategy.entry("Michael3 Long Entry Id", strategy.long)

if (short_condition)
    strategy.entry("Michael3 Short Entry Id", strategy.short)


if (strategy.position_size>0)
    strategy.exit("exit_long",from_entry="Michael3 Long Entry Id",limit=profit_price_long,stop=stop_price_long)

if (strategy.position_size<0)
    strategy.exit("exit_short",from_entry="Michael3 Short Entry Id",limit=profit_price_short,stop=stop_price_short)    
    


//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Plus de