La stratégie de suivi de tendance de Noro
Les principaux aspects sont les suivants:
Le canal de prix détermine la tendance globale.
L'indice de volatilité indique le surachat/survente pour la période d'entrée.
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.
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.
Les couleurs de fond en option permettent de visualiser clairement la tendance.
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 principaux avantages sont les suivants:
Le canal de prix identifie intuitivement la direction générale de la tendance.
Le RSI détecte efficacement les niveaux de surachat/survente pour l'entrée en heure.
Le filtre corporel améliore la qualité du signal et évite les faux signaux.
La confirmation multi-indicateurs améliore la précision.
Des indicateurs simples réduisent les risques d'ajustement des courbes.
Les délais de négociation personnalisables ajoutent de la flexibilité.
Facile à utiliser avec des paramètres minimes.
Les couleurs de fond assurent une clarté visuelle.
Quelques risques à prendre en considération:
Risque d'identification erronée de la tendance du canal de prix.
Risques de signaux RSI inexacts.
Filtre du corps éliminant les signaux valides.
Risque de baisse pendant les corrections de tendance.
Risque d'optimisation dû à un mauvais réglage des paramètres.
Résultats de l'analyse de risque
Risque de sélection d'instruments s'il est appliqué à des actifs non en évolution.
Les risques liés aux délais de négociation s'ils sont mal configurés.
Quelques possibilités d'amélioration:
Ajouter une stratégie de stop loss pour contrôler les pertes par transaction.
Optimiser les paramètres en fonction du comportement de l'instrument.
Incorporer des règles de dimensionnement des positions basées sur la force de la tendance.
Mettre en place des limites de tirage pour contenir les pertes.
Ajouter une analyse des prix en volume pour la vérification du signal.
Introduire l'apprentissage automatique pour optimiser les paramètres.
Paramètres spécialisés basés sur la classe d'actifs.
Améliorer la logique des délais de négociation pour plus de flexibilité.
La stratégie de suivi de tendance de Noro
/*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()