Stratégie de cassure oscillante


Date de création: 2023-10-20 16:37:28 Dernière modification: 2023-10-20 16:37:28
Copier: 0 Nombre de clics: 943
1
Suivre
1617
Abonnés

Stratégie de cassure oscillante

Aperçu

La stratégie utilise les indices ZigZag pour tracer les lignes de support et de résistance et pour effectuer des opérations de sur- ou de déficit correspondantes lorsque le prix franchit les lignes de support ou de résistance.

Principe de stratégie

La stratégie consiste à dessiner d’abord une ligne en forme de Z avec l’indicateur ZigZag pour un paramètre spécifique. Ensuite, dessinez une ligne de support verte lorsque l’indicateur ZigZag apparaît en bas et une ligne de résistance rouge lorsque l’indicateur ZigZag apparaît en haut.

Plus précisément, la logique centrale de cette stratégie est la suivante:

  1. Une moyenne mobile indexée à trois reprises sur le prix de clôture est obtenue en utilisant l’ema pour lisser la courbe.

  2. Pour déterminer si la courbe de lissage est en hausse, si elle est en hausse et que la ligne K précédente n’est pas en hausse, notez la valeur la plus basse de cette ligne K. Si elle est en baisse et que la ligne K précédente est en hausse, notez la valeur la plus haute de cette ligne K. Sinon, NaN.

  3. En répétant ce processus, on obtient un zigzag zigzag.

  4. Lorsque le zigzag est en hausse, il est noté comme le point de sommet actuel; lorsqu’il est en baisse, il est noté comme le point de fond actuel.

  5. Lorsque le point est en hausse, le support est dessiné en vert uplevel; lorsque le point est en baisse, le résistance est dessinée en rouge dnlevel。

  6. Les prix sont plus élevés quand ils sont au-dessus de la ligne verte et plus bas quand ils sont au-dessous de la ligne rouge.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’indicateur ZigZag est utilisé pour identifier les points de résistance de soutien clés, qui sont souvent importants.

  2. ZigZag efface une partie du bruit du marché et rend les signaux de transaction plus clairs.

  3. L’introduction est faite de manière inédite, permettant de saisir en temps opportun le tournant de la tendance.

  4. Le dessin des lignes de résistance est simple et efficace.

  5. La logique de la stratégie est claire et compréhensible, les paramètres ont beaucoup de place pour l’optimisation.

  6. Il offre une flexibilité dans le choix des variétés et des périodes de négociation, et une grande adaptabilité.

Analyse des risques

Cette stratégie comporte aussi des risques:

  1. Une mauvaise configuration des paramètres de l’indicateur ZigZag peut entraîner des opportunités de trading manquées.

  2. Une fois que le niveau de résistance de support est franchi, il peut y avoir un test de réévaluation. Le stop-loss doit être réglé pour contrôler le risque.

  3. Les signaux de rupture sont susceptibles d’être trompeurs et doivent être vérifiés en fonction de la tendance et de la forme.

  4. Les marchés peuvent être en perpétuelle oscillation horizontale, ce qui peut entraîner une surabondance de transactions inefficaces.

  5. Il faut tenir compte de l’impact sur les coûts des transactions et éviter les transactions trop fréquentes.

Les mesures suivantes ont été prises:

  1. Optimiser les paramètres ZigZag pour trouver la meilleure combinaison de paramètres

  2. Il est nécessaire de mettre en place un arrêt de perte en temps opportun après la percée, afin de contrôler les pertes individuelles.

  3. Les signaux de filtrage, combinés à des indicateurs de tendance, améliorent la précision.

  4. Les conditions d’adhésion pour identifier la liquidation de la bourse sont de ne pas négocier pendant cette période.

  5. La réduction de la marge de rupture est appropriée pour réduire les transactions invalides.

Direction d’optimisation

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

  1. Optimiser les paramètres ZigZag pour trouver la meilleure combinaison de paramètres. Les meilleurs paramètres peuvent être trouvés en effectuant un retour en arrière.

  2. Envisager la possibilité de tester à nouveau le point de résistance de soutien après la percée de l’entrée, définir la logique de sortie du test à nouveau.

  3. Les signaux de trading à faible probabilité sont filtrés en combinant des indicateurs de tendance tels que la MA.

  4. L’augmentation de l’indicateur d’énergie est utilisée pour confirmer les signaux de rupture et éviter les signaux erronés.

  5. La mise en place de l’approche dual mentionnée par Lachenbruch (faire plus de blanchiment en même temps) permet de filtrer les signaux erronés et de réaliser des profits.

  6. Envisager d’utiliser des algorithmes tels que l’apprentissage automatique pour optimiser dynamiquement les paramètres.

  7. Introduisez une stratégie de stop loss et définissez un point de stop loss pour contrôler le risque.

Résumer

La stratégie est généralement une stratégie de rupture de choc simple et pratique. Elle utilise l’indicateur ZigZag pour tracer des lignes de support et de résistance et agit lorsque le prix franchit ces lignes. La stratégie a une forte adaptabilité, mais il existe également un certain risque.

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

//Noro
//2018

//@version=3
// strategy(title = "Noro's ZZ-2 Strategy", shorttitle = "Noro's ZZ-2 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, %")
length = input(4, title = "ZigZag length")
Extreme = input(4, title = "ZigZag extreme")
src = input(close, title = "Source")
showzz = input(false, defval = false, title = "Show ZigZag")
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")

//ZigZag
f_zz(_length, _detection)=>
    _hls = ema(ema(ema(src, _length), round(_length*0.66)), round(_length*0.33))
    _isRising = _hls >= _hls[1]
    _zigzag = _isRising and not _isRising[1] ? lowest(_detection) :  not _isRising and _isRising[1] ? highest(_detection) : na
zigzag = f_zz(length, Extreme)
zzcol = showzz ? black : na
plot(zigzag, color = zzcol, linewidth = 2)

//Levels
dot = 0.0
dot := zigzag > 0 ? zigzag : dot[1]
uplevel = 0.0
uplevel := dot > dot[1] ? zigzag : uplevel[1]
dnlevel = 0.0
dnlevel := dot < dot[1] ? zigzag : dnlevel[1]
upcol = na
upcol := dot > dot[1] ? na : lime
plot(uplevel, color = upcol, linewidth = 2)
dncol = na
dncol := dot < dot[1] ? na : red
plot(dnlevel, color = dncol, linewidth = 2)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if dot > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = uplevel)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnlevel)