Stratégie d'arrêt des pertes et de prise de bénéfices à pourcentage fixe basée sur des moyennes mobiles

Auteur:ChaoZhang est là., Date: 2023-12-18 11h30 et 39 min
Les étiquettes:

img

Résumé

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 logique de la stratégie

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.

Analyse des avantages

Cette façon de définir le stop loss et le take profit présente plusieurs avantages importants:

  1. Il peut limiter la perte maximale par transaction et contrôler efficacement le risque de transaction.

  2. Il peut bloquer le taux de profit fixe par transaction et assurer le rendement.

  3. Les points stop loss et take profit varient avec le prix d'entrée réel au lieu d'utiliser des valeurs fixes.

  4. Les utilisateurs peuvent déterminer leur aptitude au risque en ajustant les paramètres d'entrée.

  5. Une stratégie logique simple et intuitive, facile à comprendre et à vérifier.

Analyse des risques

Cette stratégie comporte également certains risques:

  1. 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.

  2. Un taux de profit trop élevé peut entraîner une rentabilité insuffisante, un taux trop bas peut entraîner un manque de profit.

  3. L'arrêt de perte trop proche peut augmenter les chances d'être arrêté et devrait donner un certain tampon.

  4. Le choix des produits et des délais de négociation peut avoir une incidence sur l'efficacité.

Solution correspondante:

  1. Optimiser les paramètres de la moyenne mobile pour réduire les faux signaux.

  2. Testez différents ratios de profit pour trouver l'optimum.

  3. Ajustez la distance stop loss en fonction de la volatilité du marché.

  4. Évaluer le rendement de la stratégie sur différents produits et délais.

Directions d'optimisation

La stratégie peut être améliorée dans les domaines suivants:

  1. Ajouter d'autres indicateurs pour la validation de tendance afin d'éviter des signaux faux excessifs provenant des moyennes mobiles.

  2. Optimiser le stop loss et prendre des pourcentages de profit basés sur les données de backtest pour trouver les paramètres optimaux.

  3. Changez le stop-loss pour un stop de trailing afin d'obtenir plus de bénéfices.

  4. Ajouter des règles de dimensionnement des positions avec pyramide et stop loss pour gérer le risque commercial.

  5. Évaluer les écarts de performance entre les différents instruments de négociation et les délais.

Résumé

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")

//




Plus de