Stratégies d'achat et de vente suivant les tendances


Date de création: 2023-10-17 12:59:59 Dernière modification: 2023-10-17 12:59:59
Copier: 0 Nombre de clics: 628
1
Suivre
1617
Abonnés

Stratégies d’achat et de vente suivant les tendances

Aperçu

La stratégie de suivi de tendance est une stratégie simple de suivi de tendance. L’idée de base de la stratégie est de déterminer la direction de la tendance en fonction de la moyenne mobile et de faire des achats et des ventes lors des fluctuations de la tendance.

Principe de stratégie

La stratégie utilise la moyenne mobile simple (SMA) pour déterminer la direction de la tendance. Dans une tendance haussière, lorsque la ligne K atteint un point bas (coup de rebond), la stratégie fait plus lorsque la ligne K atteint le point le plus élevé de la ligne K précédente; dans une tendance baissière, lorsque la ligne K atteint un point élevé (coup de rebond), la stratégie fait moins lorsque la ligne K atteint le point le plus bas de la ligne K précédente.

La stratégie utilise également les indices de Blanchflower %K et %D pour déterminer la tendance. La stratégie utilise également la courbe MACD et la courbe Signal comme conditions de filtrage et n’exécute des transactions que si la MACD et le Signal correspondent à la direction de la tendance.

La stratégie peut être simple, simple ou simultanée. La date de début peut être définie en fonction du mois et de l’année de début de la réévaluation. Tous les paramètres tels que la période de la moyenne mobile, la période K, la période D, le paramètre MACD, etc., peuvent être personnalisés.

Analyse des avantages

  • L’utilisation de moyennes mobiles pour déterminer la direction de la tendance permet de filtrer efficacement les fluctuations et d’éviter les erreurs de trading
  • L’application de l’indicateur Blanchflower permet de détecter un renversement de tendance en temps opportun afin de contrôler les risques
  • Les filtres MACD et Signal réduisent le bruit des transactions qui ne sont pas conformes à la tendance
  • Paramètres personnalisables pour s’adapter au comportement des prix de différentes variétés
  • Il est possible d’effectuer des transactions en plus, en négatif ou dans les deux sens, et d’être flexible pour s’adapter aux conditions du marché.

Analyse des risques

La stratégie présente principalement les risques suivants:

  • Le risque de perte importante en cas de rupture significative de la moyenne mobile est réduit par une augmentation appropriée de la moyenne mobile.
  • La fréquence des transactions dans une tendance à la secousse entraîne un surtrading. Il est possible d’augmenter la fréquence des transactions en augmentant le cycle %K.
  • Si les paramètres MACD et Signal ne sont pas correctement définis, le filtrage est invalide. Les paramètres doivent être optimisés en fonction de la variété.
  • Les positions en surplus dans les transactions bilatérales ont accumulé des pertes importantes. La taille des positions devrait être limitée.

Direction d’optimisation

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

  • Optimiser les cycles des moyennes mobiles, en essayant de filtrer les oscillations tout en conservant un jugement sur la tendance
  • Optimiser les paramètres %K,%D, réduire le whipsaw tout en maintenant le renversement de la tendance de capture
  • Optimisation des paramètres MACD pour une meilleure filtration et une réduction des transactions de bruit
  • Augmentation des contrôles de position, tels que le nombre fixe d’ouvertures de position, les positions flottantes, etc.
  • Ajout de stratégies de stop-loss, telles que le stop-move, le stop-time et le stop-ATR.

Résumer

La stratégie de suivi de tendance est simple et claire, elle détermine la direction de la tendance à l’aide de moyennes mobiles et utilise des filtres d’indicateurs pour localiser les opportunités de trading dans la tendance. La stratégie peut avoir de bons résultats grâce à l’optimisation des paramètres, mais elle nécessite toujours un emballage de code combiné pour réduire les risques d’optimisation et améliorer la stabilité.

Code source de la stratégie
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Higher High / Lower Low Strategy", overlay=true)

// Getting inputs
longOnly = input(true, title="Long or Short Only")
useMACD = input(true, title="Use MACD Filter")
useSignal = input(true, title="Use Signal Filter")
//Filter backtest month and year
startMonth = input(10, minval=1, maxval=12, title="Month")
startYear = input(2020, minval=2000, maxval=2100, title="Year")
//Filter funtion inputs
periodA = input(20, minval=1, title="Period SMA")
periodK = input(5, minval=1, title="Period %K")
fast_length = input(title="Period Fast", type=input.integer, defval=5)
slow_length = input(title="Period Slow", type=input.integer, defval=20)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 30)

//Calculations
smoothD = 3 //input(3, minval=1, title="Smooth %D")
smoothK = 2 //input(2, minval=1, title="Smooth %K")
ma50 = sma(close, periodA)
k = sma(stoch(close, high, low, periodK), smoothK) - 50
d = sma(k, smoothD)
macd = ema(close,fast_length) - ema(close,slow_length)
signal = ema(macd,signal_length)
hist = macd - signal

if (not na(k) and not na(d) and not na(macd) and not na(signal) and longOnly and month>=startMonth and year>=startYear)//	if(k > k[1] and k[2] >= k[1] and (ma50 > ma50[1]) and (not useK or k[1] <= -threshold_k) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1]) and (not useHHLL or close >= high[1]) and (not useD or d <= -threshold_d))
    if(high[2] >= high[1] and high > high[1] and (ma50 > ma50[1]) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1]))
		strategy.order("HH_LE", strategy.long, when=strategy.position_size == 0, comment="HH_LE")
    if (k < k[1])
		strategy.order("HH_SX", strategy.short, when=strategy.position_size != 0, comment="HH_SX")

if (not na(k) and not na(d) and not na(macd) and not na(signal) and not longOnly and month>=startMonth and year>=startYear)
    if(low[2] <= low[1] and low < low[1] and (ma50 < ma50[1]) and (not useMACD or macd < macd[1]) and (not useSignal or signal < signal[1]))
		strategy.order("HH_SE", strategy.short, when=strategy.position_size == 0, comment="HH_SE")
    if (k > k[1])
		strategy.order("HH_LX", strategy.long, when=strategy.position_size != 0, comment="HH_LX")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)