Stratégie d'inversion des prix guidée par le canal des prix

Auteur:ChaoZhang est là., Date: 2023-11-27 11:40:36 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie d'inversion de prix guidée par le canal de prix calcule la ligne centrale du canal de prix pour déterminer la direction de tendance des fluctuations de prix. Elle génère des signaux longs et courts lorsque le prix s'approche de la ligne centrale du canal. Cette stratégie combine plusieurs conditions de filtre pour rechercher des opportunités de trading à haute probabilité.

La logique de la stratégie

L'indicateur principal de cette stratégie est la ligne centrale du canal de prix. Il est calculé comme la moyenne du prix le plus élevé et du prix le plus bas des 30 bougies les plus récentes. Lorsque le bas est supérieur à la ligne centrale, il est considéré comme une tendance haussière. Lorsque le haut est inférieur à la ligne centrale, il est considéré comme une tendance baissière.

La stratégie ne génère des signaux de trading que lorsque le fond de tendance change. C'est-à-dire que, dans un fond de tendance haussière, elle devient courte seulement lorsque le chandelier devient rouge. Dans un fond de tendance baissière, elle devient longue seulement lorsque le chandelier devient vert.

En outre, la stratégie définit également des conditions de double filtre: filtre du corps du chandelier et filtre des barres de canal de prix. Les signaux ne sont déclenchés que lorsque le volume du corps du chandelier est supérieur à 20% de la valeur moyenne, et il doit y avoir des signaux de tendance consécutifs dans le cycle du filtre pour ouvrir des positions.

Analyse des avantages

Cette stratégie combine tendance, zone de valeur et modèles de bougies, ce qui est une stratégie de trading d'inversion efficace.

  1. Utiliser le canal de prix pour déterminer la tendance majeure et éviter d'être induit en erreur par les marchés à fourchette.
  2. Sélectionner des niveaux de prix près de la ligne centrale du canal de prix, qui est la zone classique de faible achat-vente élevée.
  3. Les filtres du corps du chandelier et des barres de canaux augmentent la qualité du signal et réduisent les taux de faux signaux.
  4. Ouvrez des positions uniquement à des points de renversement évidents pour éviter de courir après des hauts et de vendre des bas.

Risques et solutions

Les principaux risques de cette stratégie résident dans le manque de points de renversement des prix et l'attente inutile de signaux.

  1. Adapter la rigueur des conditions de filtrage et réduire les normes de filtrage pour réduire les échanges manquants.
  2. Augmenter la taille de la position au début de l'inversion de tendance pour capturer les bénéfices de la tendance.
  3. Combinez d'autres indicateurs pour évaluer la force du signal et intervenez manuellement dans les filtres.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres tels que la période de canal de prix, le nombre de barres de canal, etc.
  2. Ajouter une stratégie de stop loss pour arrêter la perte lorsque la perte atteint un certain pourcentage.
  3. Combinez le volume de trading pour intervenir dans la force du filtre.
  4. Ajoutez un modèle d'apprentissage automatique pour juger de la probabilité d'inversion de tendance, en remplaçant les filtres simples.

Conclusion

La stratégie d'inversion de prix guidée par le canal de prix détermine les points d'inversion à travers les canaux de prix et définit des conditions de double filtre pour générer des signaux de haute qualité.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period")
pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars")
usecol = input(true, "Use color-filter")
usebod = input(true, "Use body-filter")
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")

src = close

//PriceChannel
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//Trend
ub = low > center ? 1 : 0
db = high < center ? 1 : 0
trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1]

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false)
dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false)

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

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

//Trading
if up
    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 dn
    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