Tendance à la suite de la stratégie

Auteur:ChaoZhang est là., Date: le 25 septembre 2023 à 17h50
Les étiquettes:

Résumé

La stratégie de suivi de tendance de Noro est une stratégie de trading de tendance simple basée sur le canal de prix, le RSI et le filtre corporel.

La logique de la stratégie

Les principaux aspects sont les suivants:

  1. Le canal de prix détermine la tendance globale.

  2. L'indice de volatilité indique le surachat/survente pour la période d'entrée.

  3. Le filtre du corps fournit le signal final. Les échanges se font uniquement si le corps de la bougie dépasse un seuil pour éviter le bruit.

  4. Entrées basées sur la combinaison de tendance, signal RSI et filtre corporel. Entrées longues en tendance haussière sur les signaux haussiers, entrées courtes en tendance baissière sur les signaux baissiers.

  5. Les couleurs de fond en option permettent de visualiser clairement la tendance.

  6. Des délais de négociation personnalisables pour négocier de manière sélective.

Plusieurs indicateurs s'alignent pour créer une tendance relativement stable suivant le système.

Les avantages

Les principaux avantages sont les suivants:

  1. Le canal de prix identifie intuitivement la direction générale de la tendance.

  2. Le RSI détecte efficacement les niveaux de surachat/survente pour l'entrée en heure.

  3. Le filtre corporel améliore la qualité du signal et évite les faux signaux.

  4. La confirmation multi-indicateurs améliore la précision.

  5. Des indicateurs simples réduisent les risques d'ajustement des courbes.

  6. Les délais de négociation personnalisables ajoutent de la flexibilité.

  7. Facile à utiliser avec des paramètres minimes.

  8. Les couleurs de fond assurent une clarté visuelle.

Les risques

Quelques risques à prendre en considération:

  1. Risque d'identification erronée de la tendance du canal de prix.

  2. Risques de signaux RSI inexacts.

  3. Filtre du corps éliminant les signaux valides.

  4. Risque de baisse pendant les corrections de tendance.

  5. Risque d'optimisation dû à un mauvais réglage des paramètres.

  6. Résultats de l'analyse de risque

  7. Risque de sélection d'instruments s'il est appliqué à des actifs non en évolution.

  8. Les risques liés aux délais de négociation s'ils sont mal configurés.

Des possibilités d'amélioration

Quelques possibilités d'amélioration:

  1. Ajouter une stratégie de stop loss pour contrôler les pertes par transaction.

  2. Optimiser les paramètres en fonction du comportement de l'instrument.

  3. Incorporer des règles de dimensionnement des positions basées sur la force de la tendance.

  4. Mettre en place des limites de tirage pour contenir les pertes.

  5. Ajouter une analyse des prix en volume pour la vérification du signal.

  6. Introduire l'apprentissage automatique pour optimiser les paramètres.

  7. Paramètres spécialisés basés sur la classe d'actifs.

  8. Améliorer la logique des délais de négociation pour plus de flexibilité.

Conclusion

La stratégie de suivi de tendance de Noro intègre le canal de prix, le RSI et le filtre corporel dans un système de trading de tendance simple et pratique.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", 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")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
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")

//PriceChannel 1
lasthigh = highest(close, len)
lastlow = lowest(close, len)
center = (lasthigh + lastlow) / 2

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Plus de