Stratégie Renko pour la moyenne mobile à long terme

Auteur:ChaoZhang est là., Date: 24 janvier 2024 à 10 h 55 min 57 s
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de croisement de moyennes mobiles basée sur les graphiques Renko. Elle utilise l'indicateur TEMA pour construire des signaux de croisement et combine des moyennes mobiles à long terme pour le filtrage, visant à identifier les tendances sur les graphiques Renko et générer des signaux d'achat et de vente.

La logique de la stratégie

La principale source de signal de cette stratégie provient de la croix d'or et de la croix de la mort de l'indicateur TEMA à court terme et de l'indicateur SMA.

Lorsque le TEMA à court terme dépasse la SMA à court terme, passez long; lorsque le TEMA à court terme dépasse la SMA à court terme, fermez les positions.

En outre, la stratégie définit également deux paramètres optionnels avg_protection et gain_protection pour ajuster la logique d'entrée et de stop loss:

  • Lorsque avg_protection>0, acheter uniquement lorsque le prix de clôture est inférieur au prix moyen de détention courant, ce qui peut réduire la base de coûts;

  • Lorsque gain_protection>0, ne vendez que lorsque le prix de clôture dépasse le prix d'entrée d'un certain pourcentage pour verrouiller les bénéfices.

Enfin, la stratégie utilise également un indicateur SMMA à long terme comme filtre de tendance.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Basé sur les graphiques Renko, il peut filtrer efficacement le bruit et identifier les tendances;
  2. Utiliser l'indicateur TEMA pour construire des signaux à haute sensibilité et capacité de suivi;
  3. Les paramètres réglables sont riches pour contrôler la stratégie d'entrée;
  4. La combinaison des moyennes mobiles à long terme et à court terme peut saisir les opportunités des tendances.

Analyse des risques

Cette stratégie comporte également des risques:

  1. Renko lui-même a une chronologie inégale qui ne peut pas contrôler les temps d'intervalle;
  2. La sensibilité élevée du TEMA conduit également à un plus grand nombre de faux signaux;
  3. Des paramètres mal réglés peuvent entraîner des transactions manquantes.

Pour atténuer ces risques, il est possible d'adopter un réglage approprié des paramètres, le réglage des pertes stop, etc.

Directions d'optimisation

Les principales orientations d'optimisation de cette stratégie sont les suivantes:

  1. Test de différentes combinaisons de paramètres pour trouver les paramètres optimaux;
  2. ajouter des stratégies de stop loss telles que le stop loss de trailing, le stop loss de range, etc. pour réduire le DD;
  3. Combiner d'autres indicateurs de filtrage des signaux pour réduire les faux signaux;
  4. Efficacité des paramètres d'essai pour différents produits.

Conclusion

En général, il s'agit d'une stratégie de croisement de moyenne mobile de base, simple mais très pratique. Elle repose principalement sur l'excellent effet de réduction du bruit des barres Renko et la grande sensibilité de l'indicateur TEMA pour générer des signaux. Pendant ce temps, la collaboration entre les moyennes mobiles à long terme et à court terme améliore également sa capacité de suivi de tendance.


/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

Plus de