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

Stratégie optimisée pour le rapport risque-rendement basée sur le croisement des moyennes mobiles

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

img

Résumé

Cette stratégie est un système de trading automatisé basé sur des signaux de croisement de moyenne mobile, optimisé grâce à un ratio risque-rendement fixe.

Principe de stratégie

La logique de base repose sur des signaux croisés générés par deux moyennes mobiles (10 périodes et 30 périodes). Le système génère des signaux longs lorsque le MA rapide traverse au-dessus du MA lent, et des signaux courts lorsque le MA rapide traverse en dessous. Après chaque entrée, le système calcule automatiquement les niveaux de stop-loss en fonction d'un pourcentage de perte prédéfini de 2% et fixe des objectifs de prise de profit selon un rapport risque-rendement de 2,5. Cette approche garantit que chaque transaction a des caractéristiques de risque-rendement cohérentes.

Les avantages de la stratégie

  1. Gestion systématique des risques: réalisation d'une gestion standardisée des capitaux grâce à des pourcentages fixes de stop-loss et à des ratios risque-rendement
  2. Mécanisme de négociation objectif: système de signalisation basé sur des croisements de MA élimine les biais de jugement subjectifs
  3. Une forte adaptabilité des paramètres: les principaux paramètres tels que le pourcentage de stop-loss et le ratio risque/rendement peuvent être ajustés de manière flexible
  4. Haut niveau d'automatisation: les processus automatisés de la génération de signaux à la gestion de la position réduisent les erreurs humaines

Risques stratégiques

  1. Risque de rupture de marché: les signaux croisés MA peuvent générer des fausses ruptures fréquentes sur des marchés variés
  2. Risque de glissement: les prix d'exécution réels peuvent s'écarter sensiblement des prix de signaux sur les marchés en évolution rapide.
  3. Résultats de l'évaluation de la valeur ajoutée
  4. Coûts de la Commission: les échanges fréquents peuvent entraîner des coûts de transaction élevés

Directions d'optimisation de la stratégie

  1. Mettre en œuvre des filtres de tendance: ajouter des moyennes mobiles à plus longue période ou d'autres indicateurs de tendance pour filtrer les faux signaux
  2. Mécanisme dynamique d'arrêt des pertes: pour une meilleure adaptabilité, ajuster les pourcentages d'arrêt des pertes en fonction de la volatilité du marché
  3. Confirmation du volume: intégrer des indicateurs de volume pour vérifier la validité de la rupture
  4. Optimisation du temps d'entrée: attendre les retraits après les croisements MA avant d'entrer dans les positions

Résumé

Cette stratégie combine des méthodes d'analyse technique classiques avec des concepts de gestion des risques modernes pour construire un système de trading complet. Bien qu'elle ait certaines limitations, l'optimisation et l'amélioration continues permettent à la stratégie de maintenir une performance stable dans différentes conditions de marché.


/*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=5
strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1)

//---------------------------------------------------
// User Inputs
//---------------------------------------------------
// sym = input.symbol("swap", "Symbol")
timeframe = input.timeframe("15", "Timeframe")

fastLength  = input.int(10, "Fast MA Length")
slowLength  = input.int(30, "Slow MA Length")

stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate
RR           = input.float(2.5, "Risk to Reward Ratio", step=0.1)

//---------------------------------------------------
// Data Sources
//---------------------------------------------------
price = request.security("swap", timeframe, close)

// Compute moving averages
fastMA = ta.sma(price, fastLength)
slowMA = ta.sma(price, slowLength)

// Entry Conditions
longCondition  = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

//---------------------------------------------------
// Stop Loss and Take Profit Calculation
//---------------------------------------------------
var entryPrice = 0.0

if (strategy.position_size == 0) // not in a position
    if longCondition
        // Long entry
        entryPrice := price
        strategy.entry("Long", strategy.long)

    if shortCondition
        // Short entry
        entryPrice := price
        strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    // We are in a long position
    if strategy.position_avg_price > 0 and strategy.position_size > 0
        longStop  = strategy.position_avg_price * (1 - stopLossPerc/100)
        longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR)
        strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)

if strategy.position_size < 0
    // We are in a short position
    if strategy.position_avg_price > 0 and strategy.position_size < 0
        shortStop  = strategy.position_avg_price * (1 + stopLossPerc/100)
        shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR)
        strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)

//---------------------------------------------------
// Plotting
//---------------------------------------------------
plot(fastMA, color=color.new(color.teal, 0), title="Fast MA")
plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")


Relationnée

Plus de