Stratégie de négociation quantitative croisée de l'EMA

Auteur:ChaoZhang est là., Date: 2024-01-29 15:56:56
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de négociation quantitative croisée EMA. Elle utilise deux EMA avec des périodes différentes comme signaux de négociation, en allant long lorsque l'EMA de la période plus courte traverse l'EMA de la période plus longue et en allant court lorsque l'EMA de la période plus courte traverse en dessous de l'EMA de la période plus longue.

La logique de la stratégie

Cette stratégie utilise la croix d'or et la croix de la mort des EMA comme signaux de trading. Plus précisément, elle calcule respectivement l'EMA à plus courte période et l'EMA à plus longue période. Lorsque l'EMA à plus courte période traverse l'EMA à plus longue période, elle génère un signal d'achat pour aller long. Lorsque l'EMA à plus courte période traverse en dessous de l'EMA à plus longue période, elle génère un signal de vente pour aller court. Ainsi, les tendances mobiles des EMA déterminent les directions de trading.

Après avoir entré des positions, la stratégie définit également un stop loss et un take profit simultanément. Le stop loss est un certain pourcentage du prix d'entrée en tant que ligne de stop loss. Si le prix touche la ligne de stop loss, il sortira de la position pour le stop loss. Le take profit est un certain pourcentage du prix d'entrée en tant que ligne de take profit. Si le prix touche la ligne de take profit, il sortira de la position pour le take profit.

Cette stratégie permet également de choisir uniquement le long, uniquement le court, le trading intraday ou le trading de position.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. Utilisation de l'indicateur EMA pour filtrer les bruits et détecter les tendances à moyen et long terme en douceur.

  2. Adoption des croisements EMA entre des périodes plus courtes et plus longues comme signaux de négociation pour éviter une sur- négociation.

  3. Mettre un stop-loss et un profit pour contrôler le rapport risque-rendement de chaque transaction, ce qui est bon pour la gestion de l'argent.

  4. Permettre uniquement les opérations longues, courtes, intraday et de position pour les différents types de traders.

  5. Prise en charge de plusieurs actifs de négociation tels que des actions, des devises, des crypto-monnaies, etc.

Analyse des risques

Cette stratégie comporte également des risques potentiels:

  1. L'indicateur EMA a un effet de retard et peut manquer certains tournants de tendance à court terme.

  2. Des choix inappropriés de périodes EMA plus courtes et plus longues peuvent provoquer des signaux de négociation désordonnés.

  3. La détention de positions trop longue peut entraîner des fluctuations plus importantes du marché.

  4. Le stop loss mécanique et le take profit peuvent permettre de quitter les positions trop tôt ou de réduire prématurément les bénéfices.

Les mesures de gestion des risques correspondantes:

  1. Optimiser les paramètres EMA pour trouver la meilleure combinaison de périodes.

  2. Ajouter d'autres indicateurs à titre de jugement auxiliaire.

  3. Ajustez dynamiquement le stop loss et le profit.

  4. Intervenir manuellement dans des conditions de marché inhabituelles.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimisation optimale des paramètres de l'EMA afin de trouver des combinaisons de périodes plus courtes et plus longues appropriées pour différents actifs négociés.

  2. Ajouter d'autres indicateurs comme MACD, KD pour une synergie multi-indicateur.

  3. Ajoutez des modèles d'apprentissage automatique pour générer un stop loss dynamique et un profit.

  4. Connectez des indicateurs RISK plus avancés pour l'ingénierie des caractéristiques.

  5. Ajouter des composants de trading adaptatifs pour l'auto-optimisation des paramètres.

Résumé

En résumé, il s'agit d'une excellente tendance suivant le modèle de stratégie. Sa force principale réside dans l'utilisation de l'indicateur EMA pour filtrer les bruits et réaliser des profits stables, tout en possédant une gestion complète du risque-rendement.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy by Vikrant Singh", overlay=true)


// Input for EMA Lengths
var bool runningPOS = false
var float stopLossLevel = na
var float targetLevel = na
shortLength = input(11, title="Short EMA Length")
longLength = input(21, title="Long EMA Length")

// Input for Stop-Loss and Target
stopLossPct = input(1, title="Stop-Loss (%)")
targetPct = input(3, title="Target (%)")
longOnly = input(true, title="Long Only")
intraDay = input(true, title="intraday?")


// Calculate EMAs
emaShort = ta.ema(close, shortLength)
emaLong = ta.ema(close, longLength)

// Calculate crossover conditions
crossoverCondition = ta.crossover(emaShort, emaLong)
crossunderCondition = ta.crossunder(emaShort, emaLong)

// Entry condition (long position just before crossover)
if crossoverCondition and not runningPOS and longOnly and (hour <= 15)
    strategy.entry("Long", strategy.long)
    runningPOS := true
    stopLossLevel := close * (1 - stopLossPct / 100)
    targetLevel := close * (1 + targetPct / 100)

//Entry condition (short position just before crossover)
if crossunderCondition and not runningPOS and not longOnly and (hour <= 15)
    strategy.entry("Short", strategy.short)
    runningPOS := true
    stopLossLevel := close * (1 + stopLossPct / 100)
    targetLevel := close * (1 - targetPct / 100)

// Exit conditions (square off on reverse crossover)
//Exit long
if (crossunderCondition or (low < stopLossLevel) or (high > targetLevel) ) and longOnly and runningPOS
    strategy.close("Long",comment = "Exit long")// ("Long", from_entry="Long",stop=stopLossLevel, limit=targetLevel)
    runningPOS := false

//Exit short
if (crossoverCondition or (high > stopLossLevel) or (low < targetLevel) ) and not longOnly and runningPOS
    strategy.close("Short", comment = "Exit Short")
    runningPOS := false

if intraDay and runningPOS
    if (hour >= 15)
        strategy.close_all(comment = "Intraday square off")
        //strategy.close("Long",comment = "intraday square off")
        runningPOS := false


// Plot EMAs
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")

Plus de