Les ressources ont été chargées... Je charge...

Tendance croisée de moyenne mobile dynamique suivant une stratégie avec gestion adaptative des risques

Auteur:ChaoZhang est là., Date: 2024-12-27 15h08h40
Les étiquettes:SMA- Je vous en prie.TPSL

img

Résumé

Cette stratégie est un système de suivi de tendance basé sur des signaux croisés de moyenne mobile double, incorporant un mécanisme dynamique de prise de profit et d'arrêt de perte. Elle utilise des moyennes mobiles simples (SMA) de 5 périodes et 12 périodes pour générer des signaux de trading, optimisant le rapport risque-rendement grâce à un ajustement dynamique des niveaux de prise de profit et d'arrêt de perte.

Principes de stratégie

La logique de base repose sur la relation croisée entre les moyennes mobiles rapides (5 périodes) et lentes (12-périodes). Un signal d'achat est généré lorsque le MA rapide traverse au-dessus du MA lent, tandis que les positions sont fermées lorsque le MA rapide traverse au-dessous du MA lent.

Les avantages de la stratégie

  1. Utilise une stratégie classique de croisement à double MA avec des signaux clairs, faciles à comprendre et à exécuter
  2. Un mécanisme dynamique de prise de profit/arrêt de perte protège efficacement les bénéfices réalisés et empêche les retraits
  3. Les paramètres de la stratégie peuvent être ajustés de manière flexible en fonction des différentes caractéristiques du marché
  4. Un mécanisme global de gestion des risques permet de contrôler efficacement le risque du commerce unique
  5. Une structure de code claire facilite la maintenance et l'optimisation

Risques stratégiques

  1. Peut générer de faux signaux sur différents marchés, conduisant à des transactions fréquentes
  2. Les retraits potentiellement importants dans les scénarios de renversement rapide
  3. Des paramètres incorrects peuvent affecter les performances de la stratégie
  4. Les émissions de liquidité de marché peuvent avoir une incidence sur l'exécution du stop-loss Recommandations en matière de gestion des risques:
  • Ajouter des filtres de tendance
  • Optimiser la sélection des paramètres
  • Surveiller la liquidité du marché en temps réel
  • Mettre en place un système complet de gestion de l'argent

Directions d'optimisation

  1. Introduction d'indicateurs de force de tendance pour filtrer les signaux de marché dans une fourchette
  2. Envisager d'intégrer des facteurs de volume pour améliorer la fiabilité du signal
  3. Optimiser les paramètres de prise de profit/arrêt de perte afin d'améliorer le rapport risque/rendement
  4. Ajouter un mécanisme d'adaptation à la volatilité du marché
  5. Améliorer le système de dimensionnement de la position

Résumé

Cette stratégie capte efficacement les tendances et contrôle dynamiquement le risque en combinant les signaux de croisement de moyenne mobile classique avec une gestion dynamique innovante du risque.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("My Moving Average Crossover Strategy with Take Profit and Stop Loss", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//risk_free_rate = float(request.security("IRUS", "D", close)/request.security("IRUS", "D", close[1]) - 1  ))




// MA periods
fastLength = input.int(5, title="Fast MA Length")
slowLength = input.int(12, title="Slow MA Length")




// Take Profit and Stop Loss
takeProfitLevel = input(10, title="Take Profit (пункты)") // Take profit % from the last price
stopLossLevel = input(5, title="Stop Loss (пункты)") // Stop loss  % from the last price
takeProfitLevel_dyn = input(20, title="Dynamic Take Profit (пункты)") // Move TP if current_price higher buy_px
stopLossLevel_dyn =  input(2.5, title="Dynamic Stop Loss (пункты)") // S Move SL if current_price higher buy_px


// Вычисление скользящих средних
fastMA = ta.sma(close, fastLength)
slowMA= ta.sma(close, slowLength)


// Conditions for Sell and Buy
longCondition = ta.crossover (fastMA, slowMA) // покупаем, если короткая MA персекает длинную снизу-вверх
shortCondition = ta.crossunder(fastMA, slowMA) // продаем, если короткая MA персекает длинную сверху-вниз




// Buy position condition
if (longCondition)
    strategy.entry("Buy", strategy.long)






// Dynamic TP SL leveles
takeProfitPrice = strategy.position_avg_price * (1+ takeProfitLevel / 100)
stopLossPrice = strategy.position_avg_price * (1-stopLossLevel / 100)


entryPrice = strategy.position_avg_price




if (strategy.position_size > 0) // если есть открытая позиция




    // takeProfitPrice := entryPrice * (1+ takeProfitLevel / 100)
    // stopLossPrice := entryPrice * (1-stopLossLevel / 100)


    // // Перемещение Stop Loss и Take Profit
    if (close > entryPrice)
   
        takeProfitPrice := close * (1+ takeProfitLevel_dyn / 100)
        stopLossPrice := close * (1- stopLossLevel_dyn/ 100)






if (shortCondition)
    strategy.close("Buy")




strategy.exit("Take Profit/Stop loss", "Buy", limit=takeProfitPrice, stop=stopLossPrice)


// Drawing MA lines
plot(fastMA, color=color.blue, title="Fast Moving Average")
plot(slowMA, color=color.orange, title="Slow Moving Average")




// Визуализация
plot(longCondition ? na : takeProfitPrice, title="Take Profit Level", color=color.green, linewidth=1, style=plot.style_line)
plot(longCondition ? na: stopLossPrice, title="Stop Loss Level", color=color.red, linewidth=1, style=plot.style_line)







Relationnée

Plus de