Cette stratégie utilise des moyennes mobiles pour générer des signaux de négociation et fixe un pourcentage fixe de stop loss et des niveaux de profit basés sur le prix d'entrée pour contrôler le risque et la rentabilité de chaque transaction.
La stratégie utilise d'abord la moyenne mobile exponentielle à 5 jours (EMA) et l'EMA à 32 jours pour déterminer la direction de la tendance.
Après avoir entré dans une transaction, la stratégie définit dynamiquement le stop loss et le profit pour chaque transaction en fonction du pourcentage de stop loss et du pourcentage de profit défini par l'utilisateur. Plus précisément, pour les transactions longues, le stop loss est fixé au prix d'entrée × (1 - pourcentage de stop loss) et le profit est fixé au prix d'entrée × (1 + pourcentage de profit). Pour les transactions courtes, il est inversé - stop loss au prix d'entrée × (1 + pourcentage de stop loss) et profit au prix d'entrée × (1 - pourcentage de profit).
Cela permet d'assurer un ratio risque/rendement fixe pour chaque transaction et de contrôler le risque et le profit.
Cette façon de définir le stop loss et le take profit présente plusieurs avantages importants:
Il peut limiter la perte maximale par transaction et contrôler efficacement le risque de transaction.
Il peut bloquer le taux de profit fixe par transaction et assurer le rendement.
Les points stop loss et take profit varient avec le prix d'entrée réel au lieu d'utiliser des valeurs fixes.
Les utilisateurs peuvent déterminer leur aptitude au risque en ajustant les paramètres d'entrée.
Une stratégie logique simple et intuitive, facile à comprendre et à vérifier.
Cette stratégie comporte également certains risques:
Les moyennes mobiles peuvent générer des signaux invalides excessifs, avec une forte probabilité d'être arrêtés après leur entrée.
Un taux de profit trop élevé peut entraîner une rentabilité insuffisante, un taux trop bas peut entraîner un manque de profit.
L'arrêt de perte trop proche peut augmenter les chances d'être arrêté et devrait donner un certain tampon.
Le choix des produits et des délais de négociation peut avoir une incidence sur l'efficacité.
Solution correspondante:
Optimiser les paramètres de la moyenne mobile pour réduire les faux signaux.
Testez différents ratios de profit pour trouver l'optimum.
Ajustez la distance stop loss en fonction de la volatilité du marché.
Évaluer le rendement de la stratégie sur différents produits et délais.
La stratégie peut être améliorée dans les domaines suivants:
Ajouter d'autres indicateurs pour la validation de tendance afin d'éviter des signaux faux excessifs provenant des moyennes mobiles.
Optimiser le stop loss et prendre des pourcentages de profit basés sur les données de backtest pour trouver les paramètres optimaux.
Changez le stop-loss pour un stop de trailing afin d'obtenir plus de bénéfices.
Ajouter des règles de dimensionnement des positions avec pyramide et stop loss pour gérer le risque commercial.
Évaluer les écarts de performance entre les différents instruments de négociation et les délais.
Cette stratégie identifie la direction de la tendance avec des moyennes mobiles, et fixe un pourcentage fixe de stop loss et de take profit basé sur le prix d'entrée pour contrôler le risque et la récompense d'une seule transaction.
/*backtest start: 2022-12-11 00:00:00 end: 2023-12-17 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © theCrypster 2020 //@version=4 strategy("Fixed Percent Stop Loss & Take Profit %", overlay=true) // Moving Averages to get some example trades generated eg1 = ema(close, 5) eg2 = ema(close, 32) long = crossover(eg1, eg2) short = crossunder(eg1, eg2) strategy.entry("LONG", strategy.long, when=long) strategy.entry("SHORT", strategy.short, when=short) // // The Fixed Percent Stop Loss Code // User Options to Change Inputs (%) stopPer = input(5.0, title='Stop Loss %', type=input.float) / 100 takePer = input(10.0, title='Take Profit %', type=input.float) / 100 // Determine where you've entered and in what direction longStop = strategy.position_avg_price * (1 - stopPer) shortStop = strategy.position_avg_price * (1 + stopPer) shortTake = strategy.position_avg_price * (1 - takePer) longTake = strategy.position_avg_price * (1 + takePer) if strategy.position_size > 0 strategy.exit(id="Close Long", stop=longStop, limit=longTake) if strategy.position_size < 0 strategy.exit(id="Close Short", stop=shortStop, limit=shortTake) //PLOT FIXED SLTP LINE plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL") plot(strategy.position_size < 0 ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL") plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit") plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit") //