Stratégie de négociation croisée MA basée sur des croisements de moyennes mobiles à court et à long terme

Auteur:ChaoZhang est là., Date: 2024-02-22 15:36:49 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading simple basée sur des croisements de moyennes mobiles à court et à long terme. Elle utilise des moyennes mobiles de 34 périodes et de 89 périodes pour observer leurs croisements pendant la session du matin en tant que signaux d'achat et de vente.

La logique de la stratégie

La logique de base de cette stratégie est basée sur les croisements entre les moyennes mobiles à court et à long terme comme signaux de trading. Plus précisément, la stratégie définit des moyennes mobiles simples à court et à long terme (SMA) à 34 périodes et 89 périodes. Elle observe uniquement les croisements entre ces deux SMA pendant la session du matin (08:00 - 10:00). Lorsque la SMA à court terme traverse au-dessus de la SMA à long terme depuis le bas, le marché est considéré comme ayant une tendance à la hausse, générant ainsi un signal d'achat. Lorsque la SMA à court terme traverse au-dessous de la SMA à long terme depuis le haut, le marché est considéré comme ayant une tendance à la baisse, générant ainsi un signal de vente.

Lorsqu'il reçoit un signal d'achat ou de vente, la stratégie entre dans une position et définit une condition pour quitter la position, qui est de réaliser un profit après avoir détenu un nombre spécifié de bougies (par défaut, 3 bougies) depuis l'entrée.

Il convient de noter que la stratégie n'identifie que les signaux croisés pendant la session du matin. Cela est dû au fait que ce délai a des volumes de négociation plus élevés et que les signaux de changement de tendance sont plus fiables. D'autres délais ont de plus grandes fluctuations de prix et sont plus faciles à générer de faux signaux.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. Utilisation de règles simples et universelles de croisement des moyennes mobiles, faciles à comprendre, adaptées aux débutants

  2. Identifier uniquement les signaux pendant la séance matinale où les signaux de qualité sont abondants, ce qui filtre les faux signaux pendant les autres périodes

  3. A des conditions d'arrêt des pertes qui permettent un arrêt des pertes en temps opportun, le verrouillage des bénéfices partiels et la réduction du risque de perte

  4. De nombreux paramètres personnalisables pouvant être ajustés en fonction des conditions du marché et du style de trading personnel

  5. Facilement extensible pour être combinée avec d'autres indicateurs pour concevoir des stratégies plus complexes

Analyse des risques

La stratégie comporte également certains risques, principalement liés aux aspects suivants:

  1. Les moyennes mobiles elles-mêmes ont des attributs de retard plus importants, peuvent manquer des points d'inversion de prix à court terme

  2. S'appuie uniquement sur des indicateurs simples, susceptibles d'échouer dans certains environnements de marché (chocs de tendance, limite de gamme, etc.)

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

  4. Des paramètres incorrects (périodes de moyenne mobile, périodes de détention, etc.) peuvent également affecter les performances de la stratégie.

Solution correspondante:

  1. Incorporer d'autres indicateurs clés pour améliorer la sensibilité aux changements à court terme

  2. Ajouter des conditions de filtrage pour éviter d'être affecté par de faux signaux pendant les chocs et les marchés à fourchette

  3. Optimiser la logique de stop loss et ajuster dynamiquement la plage de stop loss en fonction de la volatilité du marché

  4. Optimisation multi-paramètres pour trouver les paramètres optimaux

Directions d'optimisation

La stratégie présente également un grand potentiel d'optimisation, principalement en ce qui concerne les aspects suivants:

  1. Ajouter d'autres conditions de filtrage pour éviter de faux signaux lors de chocs et de marchés à fourchette

  2. Incorporer des indicateurs de dynamique pour identifier les signaux de rupture les plus forts

  3. Optimiser les paramètres de la moyenne mobile pour trouver la meilleure combinaison de paramètres

  4. Optimiser automatiquement la plage de stop loss en fonction de la volatilité du marché

  5. Essayer d'optimiser automatiquement toute la stratégie basée sur des techniques d'apprentissage automatique

  6. tenter de combiner avec d'autres stratégies des systèmes multi-stratégies plus complexes

Conclusion

En général, cette stratégie est relativement simple et pratique, adaptée aux débutants. Elle incarne le modèle typique des stratégies de croisement de moyennes mobiles et utilise des arrêts pour contrôler les risques. Cependant, d'autres optimisations peuvent être apportées pour améliorer les performances pour plus de conditions de marché. Les investisseurs peuvent tirer parti de ce cadre de base pour concevoir des stratégies de trading quantitatives plus avancées.


/*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)


Plus de