Stratégie de suivi des tendances à moyenne mobile et à différences multiples


Date de création: 2024-01-04 17:43:17 Dernière modification: 2024-01-04 17:43:17
Copier: 0 Nombre de clics: 630
1
Suivre
1619
Abonnés

Stratégie de suivi des tendances à moyenne mobile et à différences multiples

Aperçu

Cette stratégie est basée sur une divergence de plusieurs périodes de la ligne moyenne, suit la tendance de la ligne moyenne longue, adopte le modèle de suivi de la position de différence de niveau, pour réaliser une croissance indicielle du capital. Le plus grand avantage de la stratégie est de pouvoir saisir la tendance de la ligne moyenne longue, effectuer un suivi par lots, ce qui permet d’obtenir des gains supplémentaires.

Principe de stratégie

  1. Construction d’un cadre temporel multiple basé sur une moyenne de 9 jours, une moyenne de 100 jours et une moyenne de 200 jours
  2. Un signal d’achat est généré lorsque la courte moyenne périodique franchit la moyenne à long terme de bas en haut.
  3. Le mode de suivi des positions de 7 degrés de différence permet de déterminer si la position précédente est pleine à chaque fois qu’une nouvelle position est ouverte, et de ne plus ajouter de position si 6 positions sont déjà disponibles.
  4. Chaque position est réglée sur un point de stop-loss fixe de 3%, avec un contrôle du risque.

C’est la logique de base de cette stratégie.

Avantages stratégiques

  1. Les échanges de devises et de devises en ligne sont devenus de plus en plus populaires, et les échanges de devises et de devises en ligne sont devenus de plus en plus populaires.
  2. Le différentiel de niveau est effectué en utilisant une ligne moyenne à plusieurs périodes de temps, ce qui permet d’éviter efficacement les interférences avec le bruit du marché des lignes courtes.
  3. Il existe des points d’arrêt et de perte fixes pour contrôler efficacement le risque de chaque position.
  4. L’adoption d’un modèle de suivi des écarts de niveaux, la construction de stock en lots, permettant de saisir les opportunités de tendance et d’obtenir des revenus supplémentaires.

Risques stratégiques et solutions

  1. Il y a un risque de résiliation. Si la tendance se déplace et que l’on ne peut pas arrêter la perte de sortie à temps, il est possible de faire face à des pertes énormes. La solution est de raccourcir le cycle de la moyenne et d’accélérer la perte de perte.
  2. Il existe un risque de position. Si un événement soudain entraîne des pertes supérieures à la portée, il y a un risque de garantie supplémentaire ou de rupture de position. La solution consiste à réduire le pourcentage de position initiale de manière appropriée.
  3. Il y a un risque de pertes excessives. Si le marché baisse fortement, la différence de niveau peut être inversée à la baisse, ce qui peut entraîner des pertes allant jusqu’à 700% ou plus. La solution consiste à augmenter le taux de stop fixe et à accélérer la vitesse de stop.

Orientation de l’optimisation de la stratégie

  1. On peut tester des combinaisons linéaires moyennes de différents paramètres pour trouver les meilleurs.
  2. Le nombre de positions pouvant être optimisées pour la construction d’un entrepôt. Tester différents nombres de positions de différence de classement pour trouver la meilleure solution.
  3. Il est possible de tester les réglages de l’arrêt de perte fixe. Augmentez la portée de l’arrêt de manière appropriée pour obtenir un rendement plus élevé.

Résumer

Cette stratégie est généralement très adaptée pour capturer la tendance à long terme de la situation, en utilisant une méthode de suivi par lots et par étapes, permettant d’obtenir un rendement excessif par rapport au rendement du risque. Il existe également un certain risque opérationnel, qui doit être contrôlé par des méthodes telles que l’ajustement des paramètres, afin de trouver un équilibre entre le rendement et le risque.

Code source de la stratégie
/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © Coinrule
    
//@version=3
strategy(shorttitle='Pyramiding Entry On Early Trends',title='Pyramiding Entry On Early Trends (by Coinrule)', overlay=false, pyramiding= 7, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.1)
    
    
//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       
    
showDate  = input(defval = true, title = "Show Date Range")
    
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"
    
    
//MA inputs and calculations
inSignal=input(9, title='MAfast')
inlong1=input(100, title='MAslow')
inlong2=input(200, title='MAlong')
    
MAfast= sma(close, inSignal)
MAslow= sma(close, inlong1)
MAlong= sma(close, inlong2)
    
    
Bullish = crossover(close, MAfast) 
    
longsignal = (Bullish and MAfast > MAslow and MAslow < MAlong and window())
    
//set take profit
    
ProfitTarget_Percent = input(3)
Profit_Ticks = (close * (ProfitTarget_Percent / 100)) / syminfo.mintick
    
//set take profit
    
LossTarget_Percent = input(3)
Loss_Ticks = (close * (LossTarget_Percent / 100)) / syminfo.mintick
    
    
//Order Placing
    
strategy.entry("Entry 1", strategy.long, when = (strategy.opentrades == 0) and longsignal)
    
strategy.entry("Entry 2", strategy.long, when = (strategy.opentrades == 1) and longsignal)
        
strategy.entry("Entry 3", strategy.long, when = (strategy.opentrades == 2) and longsignal)
    
strategy.entry("Entry 4", strategy.long, when = (strategy.opentrades == 3) and longsignal)
    
strategy.entry("Entry 5", strategy.long, when = (strategy.opentrades == 4) and longsignal)
        
strategy.entry("Entry 6", strategy.long, when = (strategy.opentrades == 5) and longsignal)
        
strategy.entry("Entry 7", strategy.long, when = (strategy.opentrades == 6) and longsignal)
    
    
    
if (strategy.position_size > 0)
    strategy.exit(id="Exit 1", from_entry = "Entry 1", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry = "Entry 2", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry = "Entry 3", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry = "Entry 4", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry = "Entry 5", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry = "Entry 6", profit = Profit_Ticks, loss = Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry = "Entry 7", profit = Profit_Ticks, loss = Loss_Ticks)