Noro
La stratégie calcule d'abord la moyenne des prix les plus élevés et les plus bas au cours d'une certaine période pour construire un canal de prix moyen. Lorsque le prix dépasse le canal par le bas, il est considéré comme un signal long. Lorsque le prix dépasse le canal par le haut, il est considéré comme un signal court.
En même temps, la stratégie intègre deux règles auxiliaires: RSI rapide et couleur de la bougie. Lorsque le RSI rapide est inférieur à 25%, cela indique un statut de survente et les prix peuvent rebondir. Avec une rupture au-dessus du canal, cela produit un signal long plus fort. En revanche, lorsque le RSI rapide est supérieur à 75%, cela indique un statut de surachat et les prix peuvent chuter. Avec une rupture au-dessous du canal, cela produit un signal court plus fort. De plus, la stratégie suit les changements de couleur de la bougie sur les deux dernières bougies. Deux bougies rouges consécutives améliorent le signal court, tandis que deux bougies vertes consécutives améliorent le signal long.
En combinant ces trois indicateurs de signal, la stratégie peut identifier efficacement les tendances à moyen et long terme et établir des positions en conséquence.
Le plus grand avantage de cette stratégie est l'intégration de multiples indicateurs pour déterminer l'orientation de la tendance et éviter le bruit des fluctuations à court terme du marché.
Le canal de prix identifie clairement la direction et la force de la tendance.
L'indicateur rapide des taux de change évalue les conditions de surachat/survente afin d'éviter de courir après les tendances à des moments cruciaux.
La validation de la couleur de la bougie vérifie en outre la persistance de la tendance.
La stratégie n'entre que sur deux bougies de même couleur consécutives brisant le canal, évitant de faux signaux d'oscillations à court terme.
Le stop loss moyen simple ferme les positions une fois que la couleur de la bougie change, minimisant ainsi efficacement les pertes.
Il y a aussi quelques risques à prendre en compte pour cette stratégie:
Un paramètre de canal de prix mal réglé peut entraîner des canaux trop larges ou trop étroits, des points de changement de tendance manquants ou des signaux erronés excessifs.
Les paramètres RSI rapides incorrects peuvent ne pas permettre d'identifier avec précision les conditions de surachat/survente, ce qui fait perdre des opportunités de renversement.
Le mécanisme simple de stop loss peut être trop sensible aux tendances agitées, provoquant une ouverture et une fermeture excessives de la position.
Il ne peut pas prédire la poursuite de la tendance réelle après la rupture du canal de prix, ce qui entraîne des pertes amplifiées.
Il ne peut pas s'adapter aux événements du cygne noir avec des impacts soudains sur le marché, entraînant d'énormes pertes.
Parmi les grandes opportunités d'amélioration de la stratégie figurent:
Ajustez dynamiquement les paramètres des canaux de prix pour mieux s'adapter à la volatilité à travers différentes périodes et marchés.
Incorporer des mesures de volatilité pour ajuster les paramètres de l'indice de volatilité, réduisant la sensibilité lors d'une volatilité élevée et augmentant la sensibilité lors d'une volatilité faible.
Ajouter des mécanismes d'arrêt de trailing avec des niveaux d'arrêt basés sur la volatilité de la tendance pour éviter des arrêt-arrêt trop sensibles.
Améliorer l'identification de la force de rupture et des divergences baissières/boulies afin d'éviter de fausses ruptures.
Incorporer des modèles de formation sur les données historiques pour aider à estimer les points de basculement des tendances à forte probabilité et améliorer la précision des entrées.
Optimiser les modèles de dimensionnement des positions afin d'ajuster dynamiquement les allocations en fonction des conditions de risque.
Dans l'ensemble, la stratégie de canal de prix de Noro
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", 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") usecol = input(true, defval = true, title = "Use color strategy") usersi = input(true, defval = true, title = "Use RSI strategy") lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel") showcl = input(true, defval = true, title = "Show center-line") 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") src = close //Price channel lasthigh = highest(src, pch) lastlow = lowest(src, pch) center = (lasthigh + lastlow) / 2 trend = low > center ? 1 : high < center ? -1 : trend[1] col = showcl ? blue : na plot(center, color = col, linewidth = 2) //Bars bar = close > open ? 1 : close < open ? -1 : 0 rbars = sma(bar, 2) == -1 gbars = sma(bar, 2) == 1 //Fast RSI fastup = rma(max(change(src), 0), 2) fastdown = rma(-min(change(src), 0), 2) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Signals body = abs(close - open) abody = sma(body, 10) up1 = rbars and close > center and usecol dn1 = gbars and close < center and usecol up2 = fastrsi < 25 and close > center and usersi dn2 = fastrsi > 75 and close < center and usersi exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2) lot = strategy.equity / close * lev //Trading if up1 or up2 if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn1 or dn2 if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()