Stratégie de cassure du canal de prix ZZ-4


Date de création: 2023-09-21 10:59:55 Dernière modification: 2023-09-21 10:59:55
Copier: 0 Nombre de clics: 647
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie est basée sur la négociation d’une chaîne de prix sur l’indicateur ZZ, utilisant des signaux de hausse de prix qui franchissent la limite supérieure de la chaîne ou de baisse de la limite inférieure de la chaîne pour établir des positions de plus ou de moins. Cette stratégie tente de capturer les éruptions de tendances en dehors de la zone de la chaîne de prix.

Principe de stratégie

  1. Calculer les limites supérieures et inférieures des canaux de prix
  2. Faire plus lorsque la hausse des prix dépasse le plafond
  3. Faire une pause lorsque la baisse de prix dépasse la limite inférieure
  4. Définition de l’heure de début et de fin de transaction
  5. La liquidation quotidienne avant la clôture du marché

Plus précisément, la stratégie utilise l’indicateur ZZ pour calculer la limite supérieure et inférieure de la chaîne de prix. Une entrée en bourse est effectuée lorsque le prix franchit la limite supérieure de la chaîne de prix; une entrée en bourse est effectuée lorsque le prix franchit la limite inférieure de la chaîne de prix.

Analyse des avantages

  1. Avoir une certaine capacité à identifier les tendances en utilisant les canaux de prix pour déterminer les points de rupture potentiels
  2. Les signaux de trading sont simples, intuitifs et faciles à juger.
  3. Paramètres de cycle de canal personnalisables pour différentes variétés et cycles
  4. La définition d’une plage de dates et d’un jour de liquidation aide à contrôler les risques
  5. La mise en place d’un ordre de stop-loss pour limiter les pertes individuelles

Analyse des risques

  1. Les fluctuations dans la fourchette de prix peuvent entraîner des arrêts multiples
  2. Ajustez les paramètres en temps opportun, sinon la portée du canal peut ne pas être précise
  3. Le risque d’une fausse percée, d’un piège
  4. Les bénéfices potentiels sont limités à la portée des canaux de prix
  5. La marge bénéficiaire non exploitée par les tendances

Il est possible de réduire ces risques en élargissant la fourchette des canaux, en optimisant les stratégies de stop loss et en évaluant la force de la tendance.

Direction d’optimisation

  1. Test de différents paramètres pour trouver la meilleure combinaison
  2. L’élargissement de la portée des prix pour capturer le plus grand marché
  3. Introduction d’indicateurs de tendance pour éviter les fausses ruptures
  4. Optimiser les stratégies de stop loss pour éviter les pièges
  5. Augmentation du ratio de détention pour maximiser les gains de rupture
  6. Évaluation des taux de rendement à différentes dates

Résumer

La stratégie est basée sur le point de rupture de la tendance de la chaîne de prix. Les avantages sont que les signaux de négociation sont simples, le stop loss est clair et facile à utiliser. Les inconvénients sont la présence de sauts fréquents et de tendances sous-exploitées.

Code source de la stratégie
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2019

//@version=4
strategy(title = "Noro's ZZ-4 Strategy", shorttitle = "Noro's ZZ-4 Strategy", 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")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(7, minval = 1, title = "Length")
showll = input(true, defval = true, title = "Show Levels")
showbg = input(false, defval = false, title = "Show Background")
showpc = input(false, defval = false, title = "Show Price Channel")
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")

//Price channel
h = highest(ohlc4, len)
l = lowest(ohlc4, len)
pccol = showpc ? color.blue : na
plot(h, color = pccol, transp = 0)
plot(l, color = pccol, transp = 0)

//Levels
ml = 0
ml := l > l[1] ? 1 : l < l[1] ? -1 : ml[1]
ll = 0.0
ll := ml == 1 and ml[1] == -1 ? l[1] : ll[1]
mh = 0
mh := h > h[1] ? 1 : h < h[1] ? -1 : mh[1]
hl = 0.0
hl := mh == -1 and mh[1] == 1 ? h[1] : hl[1]

//Lines
colorh = showll and hl == hl[1] ? color.lime : na
colorl = showll and ll == ll[1] ? color.red : na
plot(hl, color = colorh, linewidth = 2, transp = 0, title = "Long")
plot(ll, color = colorl, linewidth = 2, transp = 0, title = "Short")

//Background
size = strategy.position_size
trend = 0
trend := size > 0 ? 1 : size < 0 ? -1 : high >= hl ? 1 : low <= ll ? -1 : trend[1]
bgcol = showbg == false ? na : trend == 1 ? color.lime : trend == -1 ? color.red : na
bgcolor(bgcol, transp = 80)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ll > 0 and hl > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = hl, when=(truetime))
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = ll, when=(truetime))
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")