Stratégie de suivi des tendances basée sur la moyenne mobile et la moyenne réelle

Auteur:ChaoZhang est là., Date: 2024-01-12 11:14:01 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie utilise la moyenne mobile et la plage moyenne vraie pour déterminer la direction de la tendance du marché pour le suivi des tendances.

Principaux

Cette stratégie utilise pour déterminer l'évolution du marché la moyenne mobile des périodes et deux fois la moyenne réelle des intervalles des périodes.

Lorsque le plus bas est supérieur à la moyenne mobile plus la plage moyenne réelle (bas > ma + atr), il est jugé comme une tendance à la hausse. Lorsque le maximum est inférieur à la moyenne mobile moins la plage moyenne réelle (high < ma - atr), il est jugé comme une tendance à la baisse.

Dans les autres cas, l'arrêt précédent est maintenu.

Quand une tendance à la hausse est déterminée, allez long à un certain pourcentage quand vous êtes autorisé à aller long. Quand une tendance à la baisse est déterminée, achetez à court à un certain pourcentage si vous êtes autorisé à le faire.

La condition de clôture est d'atteindre la date de fin de négociation spécifiée.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Utilisez la moyenne mobile pour déterminer l'orientation générale de la tendance et éviter d'être induit en erreur par les fluctuations à court terme du marché.
  2. Utiliser la plage moyenne vraie pour définir un stop loss dynamique, ce qui favorise le contrôle des risques.
  3. Peut saisir les opportunités de tendance en temps opportun en suivant la tendance, avec un potentiel de profit élevé.
  4. Des règles simples et faciles à utiliser.

Analyse des risques

Les principaux risques auxquels cette stratégie est confrontée sont les suivants:

  1. Elle est sujette à de multiples pertes dans un marché fortement fluctuant.
  2. En l'absence de possibilité de déterminer efficacement les points d'inversion de tendance, il y a un risque de poursuivre les hauts et de tuer les bas.
  3. Les paramètres de la plage réelle moyenne ne sont pas réglés correctement et peuvent entraîner des points de sortie trop lâches ou trop stricts.

Les solutions:

  1. Ajustez les paramètres de la moyenne mobile de manière appropriée pour utiliser des paramètres plus stables.
  2. Confirmez les signaux avec d'autres indicateurs pour éviter de courir après les hauts et de tuer les bas.
  3. Optimiser et tester les paramètres de la plage moyenne réelle pour définir les paramètres appropriés.

Directions d'optimisation

La stratégie peut être optimisée par les aspects suivants:

  1. Testez différents systèmes de moyennes mobiles pour trouver des combinaisons de paramètres plus stables.
  2. Ajouter d'autres indicateurs auxiliaires pour évaluer la fiabilité des signaux.
  3. Testez les paramètres moyens de la plage réelle pour trouver les paramètres optimaux.
  4. Optimiser l'utilisation du capital par le biais d'un effet de levier pour augmenter le rendement du capital.
  5. Combiner l'apprentissage automatique et d'autres méthodes pour obtenir une optimisation dynamique des paramètres.

Résumé

L'idée générale de cette stratégie est claire et facile à comprendre. Elle utilise des moyennes mobiles pour déterminer la direction de la tendance et utilise une plage moyenne vraie pour définir des arrêts. Elle peut effectivement suivre les tendances. Mais il existe certains risques, et une optimisation supplémentaire des paramètres et l'ajout d'autres indicateurs de jugement sont nécessaires. En général, cette stratégie fournit une approche viable pour le suivi des tendances.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()

Plus de