Stratégie de moyenne mobile à retraite à deux ans

Auteur:ChaoZhang est là., Date: 2024-01-26 14:49:28 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie est basée sur le calcul unique du nouveau prix élevé de deux ans et de la moyenne mobile des actions. Elle génère un signal d'achat lorsque le prix de l'action retombe à la moyenne mobile exponentielle de 13 jours après avoir atteint un sommet de deux ans.

Principe de stratégie

La logique de base de cette stratégie repose sur les calculs uniques suivants:

  1. Lorsque le cours des actions atteint un nouveau sommet au cours des deux dernières années, il forme un pic à court terme.

  2. Lorsque le prix se retire de ce nouveau sommet et revient à la moyenne mobile exponentielle de 13 jours, il présente une bonne opportunité d'achat.

  3. En outre, lorsque le signal d'achat est déclenché, le prix de l'action doit être dans la fourchette de 10% du plus haut de deux ans, pas trop loin.

  4. En ce qui concerne les positions ouvertes, si le prix dépasse de 5% la ligne MA à 21 jours ou diminue de 20% par rapport au niveau le plus élevé en deux ans, la position sera arrêtée pour obtenir des bénéfices.

Les avantages de la stratégie

C' est une stratégie de rupture à long terme avec ces avantages:

  1. Le prix élevé unique de deux ans permet d'identifier efficacement les opportunités potentielles d'inversion de tendance.

  2. La ligne EMA de 13 jours sert de filtre d'entrée pour éviter les coups de fouet et déterminer une dynamique plus forte.

  3. Les calculs uniques génèrent des signaux basés sur l'action des prix, en évitant les interférences subjectives.

  4. Un stop-loss raisonnable permet de verrouiller la plupart des bénéfices.

Risques et solutions

Il existe également certains risques principalement les suivants:

  1. Les marchés peuvent connaître de profondes baisses, incapables de s'arrêter à temps. Il faut évaluer l'environnement général pour décider de réduire résolument les pertes.

  2. Les grands écarts du jour au lendemain peuvent empêcher un stop-loss parfait.

  3. La ligne de 13 jours peut ne pas filtrer bien les consolidations, générant des faux signaux excessifs.

  4. Les nouveaux prix élevés peuvent ne pas être efficaces pour déterminer les changements de tendance.

Suggestions d'optimisation de la stratégie

Il est possible d'optimiser davantage:

  1. Incorporer d'autres outils pour évaluer les conditions générales du marché, en évitant les positions inutiles.

  2. Ajoutez des indicateurs d'élan pour mieux éviter les plages de scie.

  3. Optimiser les paramètres de la moyenne mobile pour mieux capturer les tendances des prix.

  4. Utiliser l'apprentissage automatique pour optimiser dynamiquement le paramètre de deux ans pour plus de flexibilité.

Conclusion

En résumé, il s'agit d'une stratégie unique de rupture à long terme, la clé étant le niveau élevé de prix de deux ans et la ligne EMA de 13 jours servant de filtre d'entrée.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © Part Timer

//This script accepts from and to date parameter for backtesting. 
//This script generates white arrow for each buying signal

//@version=4
strategy("AMRS_LongOnly_PartTimer", overlay = true)

//i_endTime = input(defval = timestamp("02 Jun 2021 15:30 +0000"), title = "End Time", type=input.time)

StartYear=input(defval = 2000, title ="Start Year", type=input.integer)
StartMonth=input(defval = 01, title ="Start Month", type=input.integer)
StartDate=input(defval = 01, title ="Start Date", type=input.integer)

endYear=input(defval = 2021, title ="End Year", type=input.integer)
endMonth=input(defval = 06, title ="End Month", type=input.integer)
endDate=input(defval = 03, title ="End Date", type=input.integer)

ema11=ema(close,11)
ema13=ema(close,13)
ema21=ema(close,21)

afterStartDate = true
//g=bar_index==1
//ath()=>
    //a=0.0
    //a:=g ? high : high>a[1] ? high:a[1]
    
//a = security(syminfo.tickerid, 'M', ath(),lookahead=barmerge.lookahead_on)

newHigh = (high > highest(high,504)[1])
//plot down arrows whenever it's a new high
plotshape(newHigh, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.tiny)
b=highest(high,504)[1]
VarChk=((b-ema13)/b)*100
TrigLow = (low <= ema13) and (low >= ema21) and (VarChk <= 10)
plotshape(TrigLow, style=shape.triangleup, location=location.belowbar, color=color.white, size=size.tiny)
ExitPrice=(ema21 - (ema21*0.05))
DrawPrice=(b - (b*0.20))
stopprice=0.0
if (close <= ExitPrice)
    stopprice := ExitPrice
if (close <= DrawPrice)
    stopprice := DrawPrice

if (TrigLow and afterStartDate)
    strategy.entry("Long", strategy.long)

strategy.exit("exit","Long", stop=stopprice)
//beforeEndDate = (time < i_endTime)
beforeEndDate = (time >= timestamp(syminfo.timezone,endYear, endMonth, endDate, 0, 0))
if (beforeEndDate)
    strategy.close_all()

Plus de