Stratégie basée sur la moyenne mobile suivant la tendance


Date de création: 2024-02-29 14:00:35 Dernière modification: 2024-02-29 14:00:35
Copier: 0 Nombre de clics: 599
1
Suivre
1617
Abonnés

Stratégie basée sur la moyenne mobile suivant la tendance

Aperçu

Cette stratégie consiste à calculer la courbe de convergence, à établir des positions en tête ou en blanc lorsque le prix franchit la courbe de convergence, et à suivre la tendance des cours des actions.

Principe de stratégie

La stratégie commence par calculer la moyenne des hauts du 20e jour pour la trajectoire ascendante du canal, la moyenne des bas du 20e jour pour la trajectoire descendante du canal, et la ligne médiane du canal. La ligne médiane du canal représente la tendance moyenne des prix à court terme.

Analyse des avantages

  • Les investisseurs doivent être en mesure de suivre les tendances des prix et d’éviter que les fonds ne soient bloqués sur le marché horizontal.
  • L’accès est facilement contrôlable grâce à des points d’achat et de vente déterminés par les voies d’accès et de descente.
  • La zone de passage filtre une partie du bruit, ce qui augmente la probabilité d’un profit.
  • Il est possible de configurer les paramètres de la chaîne et d’ajuster la sensibilité de la stratégie.

Analyse des risques

  • Il est possible que la ligne médiane du test de réajustement soit enfoncée après une grande percée dans le canal;
  • Les actions de type choc ne sont pas adaptées à cette stratégie et sont sujettes à un arbitrage fréquent.
  • Une mauvaise configuration des paramètres peut également affecter l’efficacité de la stratégie.

Direction d’optimisation

  • Optimiser les paramètres du cycle de la chaîne et tester l’impact des différents paramètres sur l’efficacité de la stratégie;
  • L’augmentation des stratégies de stop-loss et la maîtrise des pertes ponctuelles et totales;
  • Le nombre d’indicateurs de risque est considéré comme un facteur de risque, mais il n’y a pas d’indicateur de risque.
  • Construire un entrepôt par étapes afin de réduire la probabilité d’un coup de foudre sur la ligne médiane d’un test de réajustement de rupture;

Résumer

La stratégie est généralement simple et directe, elle est basée sur le suivi des tendances des cours des actions. Elle a pour avantage d’être facile à utiliser et d’exploiter les opportunités d’investissement offertes par les tendances des prix.

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

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)