Stratégie de croisement de moyennes mobiles

SMA MA
Date de création: 2024-06-14 15:48:32 Dernière modification: 2024-06-14 15:48:32
Copier: 3 Nombre de clics: 621
1
Suivre
1617
Abonnés

Stratégie de croisement de moyennes mobiles

Aperçu

Cette stratégie est une stratégie de trading quantitative basée sur le croisement des moyennes mobiles. Elle génère un signal d’achat lorsque la ligne rapide traverse la ligne lente de bas en haut et un signal de vente lorsque la ligne rapide traverse la ligne lente de haut en bas en calculant des moyennes mobiles de deux périodes différentes (la ligne rapide et la ligne lente). La stratégie introduit également le concept de gestion de position dynamique, qui modifie dynamiquement la taille de la position de chaque transaction en fonction de la perte du compte, pour contrôler le risque.

Principe de stratégie

  1. Calculer une moyenne mobile simple (SMA) de deux périodes différentes, les périodes 9 et 21 respectivement.
  2. Un signal d’achat est généré lorsque la ligne rapide (cycle 9) traverse la ligne lente (cycle 21) de bas en haut; un signal de vente est généré lorsque la ligne rapide traverse la ligne lente de haut en bas.
  3. Le montant du risque pour chaque transaction est calculé sur la base de 1% du solde du compte, puis le nombre d’actions à acheter est calculé sur la base du montant du risque et de la fourchette de prix actuelle (le prix le plus élevé - le prix le plus bas).
  4. Si la stratégie actuelle est rentable, la position de la transaction suivante est augmentée de 10%; si elle est perdante, la position de la transaction suivante est réduite de 10%.
  5. Exécuter l’opération d’achat lorsque le signal d’achat apparaît et l’opération de vente lorsque le signal de vente apparaît.

Avantages stratégiques

  1. Simple et compréhensible: la stratégie est basée sur le principe classique de la croisée des moyennes mobiles, sa logique est claire, facile à comprendre et à mettre en œuvre.
  2. Suivi de la tendance: les moyennes mobiles de deux périodes différentes permettent de capturer efficacement les tendances à moyen et long terme des prix, ce qui convient aux transactions de suivi de la tendance.
  3. Gestion dynamique des positions: Ajustez dynamiquement la taille des positions en fonction des gains et des pertes, augmentez les positions de manière appropriée en cas de profit et réduisez les positions de manière appropriée en cas de perte, ce qui aide à contrôler les risques et à améliorer les gains.
  4. La stratégie peut être appliquée à une grande variété de marchés financiers et de types de transactions, tels que les actions, les futures, les devises, etc.

Risque stratégique

  1. Commerce fréquent: La stratégie étant basée sur des signaux croisés de moyenne mobile à court terme, elle peut entraîner des transactions fréquentes, augmentant les coûts de transaction et le risque de glissement.
  2. Faibles performances dans les marchés volatiles: dans les marchés volatiles et non tendanciels, la stratégie peut produire plus de faux signaux et entraîner des pertes.
  3. Risque d’optimisation des paramètres: la performance d’une stratégie dépend de la sélection périodique des moyennes mobiles, différents paramètres peuvent entraîner des résultats différents, il existe un risque de suradaptation de l’optimisation des paramètres.

Orientation de l’optimisation de la stratégie

  1. Introduction d’indicateurs de confirmation de tendance: sur la base du signal de croisement de la moyenne mobile, d’autres indicateurs de confirmation de tendance, tels que MACD, ADX, etc., sont introduits pour filtrer certains signaux faux et améliorer la qualité du signal.
  2. Optimisation des règles de gestion des positions: les règles de gestion des positions existantes sont relativement simples. Des algorithmes de gestion des positions plus complexes, tels que la formule de Kelly, la gestion des fonds à taux fixe, etc., peuvent être envisagés pour améliorer encore les rendements ajustés au risque.
  3. Ajout d’un mécanisme de stop-loss: ajout d’une règle de stop-loss et d’un stop-loss dans la stratégie, pour contrôler la perte maximale et le profit maximal d’une seule transaction, pour améliorer le rapport risque/bénéfice de la stratégie.
  4. Optimisation des paramètres d’adaptation: introduction d’un mécanisme d’optimisation des paramètres d’adaptation qui ajuste automatiquement les paramètres de la stratégie en fonction des changements de l’état du marché, améliorant la stabilité et l’adaptabilité de la stratégie.

Résumer

La stratégie de croisement des moyennes mobiles est une stratégie de négociation quantitative simple et pratique qui permet de capturer les tendances des prix en utilisant des signaux croisés de moyennes mobiles de deux périodes différentes, tout en introduisant des règles de gestion de position dynamiques pour contrôler les risques. La logique de la stratégie est claire, facile à mettre en œuvre et a un large éventail d’applications.

Code source de la stratégie
/*backtest
start: 2024-06-06 00:00:00
end: 2024-06-13 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © okolienicholas

//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)

// Input parameters
fast_length = input(9, title="Fast MA Length")
slow_length = input(21, title="Slow MA Length")
source = close
account_balance = input(100, title="Account Balance") // Add your account balance here

// Calculate moving averages
fast_ma = ta.sma(source, fast_length)
slow_ma = ta.sma(source, slow_length)

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Generate buy/sell signals
buy_signal = ta.crossover(fast_ma, slow_ma)
sell_signal = ta.crossunder(fast_ma, slow_ma)

// Plot buy/sell signals
plotshape(buy_signal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(sell_signal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Calculate the risk per trade
risk_per_trade = account_balance * 0.01

// Calculate the number of shares to buy
shares_to_buy = risk_per_trade / (high - low)

// Calculate the profit or loss
profit_or_loss = strategy.netprofit

// Adjust the position size based on the profit or loss
if (profit_or_loss > 0)
    shares_to_buy = shares_to_buy * 1.1 // Increase the position size by 10% when in profit
else
    shares_to_buy = shares_to_buy * 0.9 // Decrease the position size by 10% when in loss

// Execute orders
if (buy_signal)
    strategy.entry("Buy", strategy.long, qty=shares_to_buy)
    
if (sell_signal)
    strategy.entry("Sell", strategy.short, qty=shares_to_buy)