Stratégie de trading quantitative basée sur le croisement des moyennes mobiles


Date de création: 2024-01-23 11:05:50 Dernière modification: 2024-01-23 11:05:50
Copier: 0 Nombre de clics: 505
1
Suivre
1617
Abonnés

Stratégie de trading quantitative basée sur le croisement des moyennes mobiles

Aperçu

Cette stratégie est construite en utilisant le principe de la fourchette dorée de la moyenne mobile simple (SMA). La stratégie utilise la fourchette dorée de la ligne 3 et la ligne 5 comme signal d’entrée, et l’arrêt ou l’arrêt comme signal de sortie.

Principe de stratégie

La stratégie est basée principalement sur deux SMA, la ligne 3 et la ligne 5. La ligne 3 représente la tendance à court terme et la ligne 5 représente la tendance à long terme. Lorsque la ligne 3 traverse la ligne 5 à la hausse rapide à court terme, cela signifie que la position est actuellement à la hausse.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. La logique de la stratégie est simple et claire, facile à comprendre et à mettre en œuvre.
  2. Les stratégies de croisement de la moyenne sont plus précises dans la détermination des grandes tendances du marché et ont une plus grande probabilité d’entrée.
  3. En choisissant la moyenne de deux périodes différentes, vous pouvez mieux comprendre les changements du marché.
  4. La mise en œuvre d’un mécanisme de stop-loss a permis de contrôler efficacement les pertes.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. L’utilisation d’une courte période moyenne, susceptible d’être influencée par les fluctuations à court terme du marché, peut augmenter la probabilité d’un arrêt de perte.
  2. Les stratégies sont mécanisées et ne peuvent pas être adaptées à des situations spécifiques du marché.
  3. Le fait de ne pas prendre en compte les tendances du grand cycle peut entraîner des pertes importantes pour la stratégie lors d’une baisse de marché à long terme.

Pour réduire le risque, on peut envisager d’optimiser la sélection des moyennes d’entrée ou d’ajouter des jugements auxiliaires pour les moyennes de longue période. En même temps, on peut également ajuster le point de stop-loss pour le rendre plus adapté à la situation réelle du marché.

Direction d’optimisation

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

  1. L’augmentation de la moyenne des cycles, la formation de filtres à plusieurs niveaux et la stabilité de la stratégie.
  2. L’ajout d’autres indicateurs techniques, tels que le MACD, l’indicateur de force ou de faiblesse, aide à l’admission.
  3. L’ajout d’un jugement sur les tendances du grand cycle évite de faire plus d’investissement dans une situation de baisse à long terme.
  4. L’optimisation des points de stop loss pour mieux s’adapter aux fluctuations réelles du marché.
  5. Le test a un cycle de retour plus long pour évaluer la stabilité des paramètres.

Résumer

Cette stratégie est basée sur le principe de la croisée des lignes, adopte une logique stratégique d’entrée en bourse, d’arrêt et d’arrêt de la perte, est simple à mettre en œuvre et la performance de la rétroaction est relativement stable. La stabilité et le niveau de rentabilité de la stratégie peuvent être encore améliorés par l’ajout d’autres indicateurs techniques auxiliaires, des paramètres d’optimisation et l’élargissement de la portée de la rétroaction.

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

//@version=3
strategy(title="Revolut v1.0", overlay=true)

// === GENERAL INPUTS ===
ATR = atr(3)
ema3 = ema(close, 3)
ema5 = ema(close, 5)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true// create function "within window of time"


// === PLOTTING ===
plot(ema3, title="Ema 3", color = white, linewidth = 2, transp=0)
plot(ema5, title="Ema 5", color = aqua, linewidth = 2, transp=0)



// === ENTRY POSITION LOGIC ===
entryCondition = crossover(ema(close, 3), ema(close, 5))
if (entryCondition)
    strategy.entry("ENTRY", strategy.long, when=window())
    

// === EXIT POSTION LOGIC ===
//strategy.exit("Take Profit", "ENTRY", profit=6, loss=5, when=window())
strategy.exit("Take Profi Or STOP", "ENTRY", profit = 6, loss = 5, when=window())
  

// #####################################
// We can start to incorperate this into the script later
// We can program a emergency exit price
//strategy.close_all()

// You can use this if you want another exit
//strategy.exit("2nd Exit", "ENTRY", profit=1500, stop=500, when=window())