
Aperçu
La stratégie est basée sur le point de fin d’année où le cours d’une action dépasse la moyenne mobile à 200 jours pour capturer la direction tendancielle du cours de l’action.
Principe de stratégie
- Utilisation d’une moyenne mobile simple de 200 jours dma200 comme indicateur de la tendance des prix
- Détermine si le prix de clôture du dernier jour de chaque mois est supérieur ou égal à 200 dma
- Si le cours de clôture dépasse la moyenne des 200 jours, une position de plus sur la position complète est créée à l’ouverture du jour de négociation suivant.
- Si le cours de clôture tombe en dessous de la moyenne de 200 jours, la liquidation est ouverte le jour de la transaction suivante.
- Cela permet d’obtenir l’effet de suivi de la tendance, de placer des positions lorsque le prix des actions est dans une tendance à la hausse et d’éviter une tendance à la baisse
Analyse des avantages
- L’avantage de la stratégie est qu’elle est simple, efficace, facile à comprendre et à mettre en œuvre.
- L’utilisation de la période de fin d’année pour construire des positions peut réduire la fréquence des transactions, réduire les coûts de transaction et réduire les effets des points de glissement.
- La courbe de 200 jours est un indicateur de tendance à moyen et à long terme très courant et valable pour la plupart des actions.
- Les retraits stratégiques et les pertes maximales sont faibles et les risques sont maîtrisés.
Analyse des risques
- La moyenne quotidienne de 200 jours peut ne pas être suffisamment sensible à certaines actions pour capter les fluctuations de prix à temps.
- Il n’y a qu’un seul point de vente à la fin du mois et il risque de rater une occasion de baisse à mi-parcours
- La stratégie peut ne pas être appropriée lorsque la tendance globale du marché est incertaine.
- Il faut combiner ces risques avec d’autres critères.
Direction d’optimisation
- Vous pouvez envisager d’augmenter le nombre de points de construction au début ou au milieu du mois pour augmenter la fréquence des stratégies.
- L’augmentation des indices tels que les courbes de Brent pour évaluer les fluctuations des prix et éviter les erreurs de trading
- Évaluer l’effet de convergence de différents paramètres de la ligne de parité sur différents titres et rechercher la meilleure combinaison de paramètres
- Il est possible d’établir un mécanisme de gestion dynamique des positions, qui arrête activement les pertes en cas de retrait excessif.
Résumer
La stratégie est globalement simple et pratique, capte efficacement les tendances de prix à moyen et long terme des actions, les retraits et les risques sont moindres, grâce à la rupture de la ligne moyenne de 200 jours à la fin du mois. La stabilité et le rendement de la stratégie peuvent être encore améliorés en combinant plus de jugements d’indicateurs et d’optimisation dynamique.
Code source de la stratégie
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
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/
// © muscleriot
//200 dma
//2000-2016 backtested
//1 signal per month only at end of month
//If > 200DMA enter long
//If < 200DMA goto cash
//results: 318% drawdown 17% vs 125% with 55% drawdown for buy and hold
//@version=5
strategy("200DMA last DOM - ajh", overlay =true,default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Use 100% of equity always
dma200 = ta.sma(close, 200)
plot(dma200, color=color.red, linewidth = 2)
//e =dayofmonth(time)
// backtesting date range
from_day = input.int(defval=1, title="From Day", minval=1, maxval=31)
from_month = input.int(defval=1, title="From Month", minval=1, maxval=12)
from_year = input.int(defval=2018, title="From Year", minval=1900)
to_day = input.int(defval=1, title="To Day", minval=1, maxval=31)
to_month = input.int(defval=1, title="To Month", minval=1, maxval=12)
to_year = input.int(defval=9999, title="To Year", minval=1900)
time_cond = time > timestamp(from_year, from_month, from_day, 00, 00) and
time < timestamp(to_year, to_month, to_day, 23, 59)
xLong = dayofmonth(time) == 30 and (close > dma200) ? true : na
xSell = dayofmonth(time) == 30 and (close < dma200) ? true : na
plotchar(xLong, "long","L", color=color.green)
plotchar(xSell, "Sell","S", color=color.red)
if (xLong == true) and time_cond
strategy.entry("long", strategy.long)
if (xSell == true) and time_cond
strategy.close("long")