Stratégie basée sur le croisement des moyennes mobiles à court et à long terme


Date de création: 2024-02-22 15:36:49 Dernière modification: 2024-02-22 15:36:49
Copier: 0 Nombre de clics: 649
1
Suivre
1617
Abonnés

Stratégie basée sur le croisement des moyennes mobiles à court et à long terme

Aperçu

Cette stratégie est une stratégie de trading simple à travers les moyennes mobiles basée sur des croisements de moyennes mobiles à court et à long terme. Elle utilise des moyennes mobiles à 34 cycles et à 89 cycles et observe leur croisement comme un signal d’achat et de vente pendant la période de trading matinal. Elle génère un signal d’achat lorsque la moyenne mobile à court terme franchit la moyenne mobile à long terme par le bas et un signal de vente lorsqu’elle franchit par le haut.

Principe de stratégie

La logique centrale de la stratégie est basée sur la croisée des moyennes mobiles à court et à long terme comme signal de transaction. Plus précisément, la stratégie définit les moyennes mobiles simples à court et à long terme de 34 cycles et 89 cycles (SMA). Observez uniquement la croisée des deux SMA pendant la période de trading du matin (de 08:00 à 10:00).

Après avoir reçu un signal d’achat ou de vente, la stratégie entre dans la position et définit une condition de sortie de la position, à savoir une sortie de stop-loss active après l’entrée avec un nombre de lignes K de racine spécifié (par défaut 3 lignes). Cela permet de verrouiller une partie des bénéfices et d’éviter que les pertes ne s’étendent davantage.

Il convient de noter que la stratégie ne reconnaît les signaux de croisement que pendant les heures de pointe. Cela est dû au fait que pendant ces périodes, le volume des transactions est plus important et la fiabilité des signaux de conversion de tendance est plus élevée.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La méthode de croisement des moyennes mobiles est simple, universelle, facile à comprendre et adaptée aux débutants.

  2. Identifier les signaux uniquement dans les périodes de pointe où il y a beaucoup de signaux de haute qualité et filtrer les faux signaux dans les autres périodes

  3. La mise en place de conditions de stop-loss permettent de bloquer une partie des bénéfices et de réduire le risque de pertes

  4. Plus de paramètres personnalisables, adaptés au marché et au style personnel

  5. Facile à étendre, il est possible de concevoir des stratégies plus complexes basées sur ce cadre et associées à d’autres indicateurs

Analyse des risques

Cette stratégie comporte également des risques, principalement liés aux aspects suivants:

  1. Les moyennes mobiles sont elles-mêmes fortement retardées et risquent de manquer un revirement de prix à court terme.

  2. La dépendance à des indicateurs simples et la facilité à échouer dans des conditions de marché spécifiques (trend fluctuation, rangement, etc.)

  3. Une mauvaise position de stop-loss peut entraîner des pertes inutiles

  4. Une mauvaise configuration des paramètres (périodes de moyenne mobile, de tenue de position, etc.) peut également affecter la performance de la stratégie.

La réponse:

  1. Sensibilité accrue aux changements à court terme, combinée à d’autres indicateurs de pointe

  2. Augmentation des conditions de filtrage afin d’éviter les effets des signaux de congés sur les marchés oscillatoires et intermédiaires

  3. Optimisation de la logique de stop loss, en ajustant la portée de stop loss en fonction de la dynamique des fluctuations du marché

  4. Optimisation des paramètres de combinaison multiple pour trouver les paramètres les plus optimaux

Direction d’optimisation

La stratégie a également beaucoup de marge d’optimisation, principalement dans les domaines suivants:

  1. Ajout d’autres conditions de filtrage pour éviter l’impact des signaux de congé sur les marchés oscillants et intermédiaires

  2. Une stratégie combinée à des indicateurs dynamiques pour identifier des signaux de rupture plus puissants

  3. Optimiser les paramètres périodiques des moyennes mobiles pour trouver la meilleure combinaison de paramètres

  4. Optimisation automatique des arrêts en fonction des fluctuations du marché

  5. Une tentative d’optimisation automatique de l’ensemble de la stratégie basée sur l’apprentissage automatique

  6. Essayez de combiner avec d’autres stratégies pour concevoir des systèmes multistratégies plus complexes

Résumer

La stratégie est globalement simple et pratique, et convient aux débutants. Elle reflète le modèle typique des stratégies de type croisement des moyennes mobiles, qui permettent de contrôler le risque en mettant en place des arrêts de perte. Mais la stratégie peut être optimisée pour une meilleure efficacité et s’adapter à un plus grand nombre d’environnements de marché.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)