Stratégie de canal de prix de Noro v1.1

Auteur:ChaoZhang est là., Date: 2023-10-24 à 10h59
Les étiquettes:

img

Résumé

Noro's Price Channel Strategy v1.1 est une stratégie de trading de tendance basée sur les canaux de prix et les changements de direction des prix. Cette stratégie combine l'indicateur de canal de prix et l'indicateur RSI rapide pour identifier les signaux de rupture de prix du canal, ainsi que des signaux d'inversion de couleur de bougie rouge/vert consécutifs pour établir des positions longues/courtes.

La logique de la stratégie

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.

Les avantages

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é.

  1. Le canal de prix identifie clairement la direction et la force de la tendance.

  2. 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.

  3. La validation de la couleur de la bougie vérifie en outre la persistance de la tendance.

  4. 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.

  5. Le stop loss moyen simple ferme les positions une fois que la couleur de la bougie change, minimisant ainsi efficacement les pertes.

Les risques

Il y a aussi quelques risques à prendre en compte pour cette stratégie:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Il ne peut pas s'adapter aux événements du cygne noir avec des impacts soudains sur le marché, entraînant d'énormes pertes.

Des possibilités d'amélioration

Parmi les grandes opportunités d'amélioration de la stratégie figurent:

  1. Ajustez dynamiquement les paramètres des canaux de prix pour mieux s'adapter à la volatilité à travers différentes périodes et marchés.

  2. 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.

  3. 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.

  4. Améliorer l'identification de la force de rupture et des divergences baissières/boulies afin d'éviter de fausses ruptures.

  5. 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.

  6. Optimiser les modèles de dimensionnement des positions afin d'ajuster dynamiquement les allocations en fonction des conditions de risque.

Conclusion

Dans l'ensemble, la stratégie de canal de prix de Noro v1.1 est une stratégie simple et pratique de suivi des tendances. Elle intègre plusieurs indicateurs pour identifier les directions de tendance à moyen et long terme et établit des règles d'entrée relativement prudentes. Il y a place à une amélioration supplémentaire dans des domaines tels que les mécanismes de stop loss et le réglage dynamique des paramètres. Mais la logique globale est simple et claire, ce qui facilite la mise en œuvre pour le trading quantitatif, en particulier pour les débutants.


/*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()

Plus de