Harmonic Trading - page 308

 

Merci poruchik. Voici le code à modifier. Je vais essayer de le modifier.

if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)

{

vBullBear = "" ;

vNamePattern = "" ;

AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]) ;

CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]) ;

si (CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley)

{

vNamePattern=vABCD ; // AB-CD

}

sinon

{

for (int iABCD=0;iABCD<_ABCDsize;iABCD++)

{

if (CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley)

{

vNamePattern=_ABCDtypetxt+"*AB=CD" ;

pause ;

}

}

}

 

C'est fait ! Voici le code modifié. Maintenant il vérifie AC < AB * Fib(1.0) pour les motifs AB=CD & (x) * AB=CD

if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)

{

vBullBear = "" ;

vNamePattern = "" ;

AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]) ;

CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]) ;

if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=vABCD ; // AB-CD

}

else

{

for (int iABCD=0;iABCD<_ABCDsize;iABCD++)

{

if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=_ABCDtypetxt+"*AB=CD" ;

pause ;

}

}

}

 

merci mon frère

J'ai modéré 133 avec votre code

même bug ?

Dossiers :
 
poruchik:
merci mon frère

Je mod 133 avec votre code

même bug ?

Vous êtes bienvenu poruchik,

et pour Real AB=CD , les ratios devraient être les suivants

Modèle AB=CD

[.382/2.240]

[.500/2.000]

[.618/1.618]

[.707/1.414]

[.786/1.270]

[AB=CD]

Dossiers :
image038.jpg  45 kb
 

Code modifié pour la vérification du réel AB=CD

Le nouveau code vérifie maintenant les ratios retAC, retBD.

Avec ce nouveau code, l'indicateur trouve moins de modèles AB=CD mais ils seront très précis.

if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)

{

vBullBear = "" ;

vNamePattern = "" ;

AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]) ;

CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]) ;

retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0) ;

retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0) ;

si(

(retAC>=0.382*min_DeltaGartley) && (retAC=2.240*min_DeltaGartley) && (retBD<=2.240*max_DeltaGartley)

||

(retAC>=0,500*min_DeltaGartley) && (retAC=2,000*min_DeltaGartley) && (retBD<=2,000*max_DeltaGartley)

||

(retAC>=0,618*min_DeltaGartley) && (retAC=1,618*min_DeltaGartley) && (retBD<=1,618*max_DeltaGartley)

||

(retAC>=0,707*min_DeltaGartley) && (retAC=1,414*min_DeltaGartley) && (retBD<=1,414*max_DeltaGartley)

||

(retAC>=0,786*min_DeltaGartley) && (retAC=1,270*min_DeltaGartley) && (retBD<=1,270*max_DeltaGartley)

)

{

if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=vABCD ; // AB-CD

}

}

else

{

for (int iABCD=0;iABCD<_ABCDsize;iABCD++)

{

if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=_ABCDtypetxt+"*AB=CD" ;

pause ;

}

}

}

 
grandaevus:
Code modifié pour la vérification du réel AB=CD

Le nouveau code vérifie maintenant les ratios retAC , retBD .

Avec ce nouveau code, l'indicateur trouve moins de modèles AB=CD mais ils seront très précis.

if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)

{

vBullBear = "" ;

vNamePattern = "" ;

AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]) ;

CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]) ;

retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0) ;

retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0) ;

si(

(retAC>=0.382*min_DeltaGartley) && (retAC=2.240*min_DeltaGartley) && (retBD<=2.240*max_DeltaGartley)

||

(retAC>=0,500*min_DeltaGartley) && (retAC=2,000*min_DeltaGartley) && (retBD<=2,000*max_DeltaGartley)

||

(retAC>=0.618*min_DeltaGartley) && (retAC=1.618*min_DeltaGartley) && (retBD<=1.618*max_DeltaGartley)

||

(retAC>=0,707*min_DeltaGartley) && (retAC=1,414*min_DeltaGartley) && (retBD<=1,414*max_DeltaGartley)

||

(retAC>=0,786*min_DeltaGartley) && (retAC=1,270*min_DeltaGartley) && (retBD<=1,270*max_DeltaGartley)

)

{

if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=vABCD ; // AB-CD

}

}

else

{

for (int iABCD=0;iABCD<_ABCDsize;iABCD++)

{

if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=_ABCDtypetxt+"*AB=CD" ;

pause ;

}

}

}

Quelques révisions(suppression des parenthèses inutiles).

Code final

if (ABCD && StringLen(vNamePattern)==0 && PotencialsLevels_retXD<2)

{

vBullBear = "" ;

vNamePattern = "" ;

AB=MathAbs(zz[aXABCD] - zz[aXABCD[A]]) ;

CD=MathAbs(zz[aXABCD[D]] - zz[aXABCD[C]]) ;

retAC = (zz[aXABCD[C]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD] + vDelta0) ;

retBD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD] + vDelta0) ;

si(

(retAC>=0.382*min_DeltaGartley && retAC=2.240*min_DeltaGartley && retBD<=2.240*max_DeltaGartley)

||

(retAC>=0.500*min_DeltaGartley && retAC=2.000*min_DeltaGartley && retBD<=2.000*max_DeltaGartley)

||

(retAC>=0.618*min_DeltaGartley && retAC=1.618*min_DeltaGartley && retBD<=1.618*max_DeltaGartley)

||

(retAC>=0.707*min_DeltaGartley && retAC=1.414*min_DeltaGartley && retBD<=1.414*max_DeltaGartley)

||

(retAC>=0.786*min_DeltaGartley && retAC=1.270*min_DeltaGartley && retBD<=1.270*max_DeltaGartley)

)

{

if ( (CD>AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>AB*min_DeltaGartley && CD<AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=vABCD ; // AB-CD

}

}

else

{

for (int iABCD=0;iABCD<_ABCDsize;iABCD++)

{

if ( (CD>_ABCDtype*AB*min_DeltaGartley && CD zz[aXABCD] && zz[aXABCD[A]] > zz[aXABCD[C]] && zz[aXABCD[C]] > zz[aXABCD])

||

(CD>_ABCDtype*AB*min_DeltaGartley && CD<_ABCDtype*AB*max_DeltaGartley && zz[aXABCD[A]] < zz[aXABCD] && zz[aXABCD[A]] < zz[aXABCD[C]] && zz[aXABCD[C]] < zz[aXABCD])

)

{

vNamePattern=_ABCDtypetxt+"*AB=CD" ;

pause ;

}

}

}

 
grandaevus:
poruchik , je sais ce qu'est "ExtDeltaGartley=0.09". Pour autant que je sache, ce paramètre contrôle l'écart maximal par rapport aux fibos idéaux.

Dans zup130 il y a aussi ExtDeltaStrongGartley=0.07.

Quelle est la différence entre ce paramètre et ExtDeltaGartley ?

poruckic, je sais, j'ai déjà posé la question auparavant mais afin de clarifier le sujet, laissez-moi vous le demander une fois de plus.

Ce que j'ai compris est,

ExtDeltaGartley=0.09 ; vérifie les longueurs des jambes.

Je veux dire que dans le modèle AB=CD, la longueur de la jambe AB doit être égale à la longueur de la jambe CD.

Si nous voulons vérifier si les longueurs des jambes sont dans les limites, nous utilisons le paramètre ExtDeltaGartley.

Cependant, ExtDeltaStrongGartley vérifie les ratios de retracement de Fibonacci.

Par exemple, si le retracement AC de AB est de 0,3820, le retracement Fibonacci de BC devrait être de 2,240.

ExtDeltaStrongGartley vérifie ici les ratios fib dans les limites et non ExtDeltaGartley.

Est-ce que j'ai raison ?

 

J'ajoute .886-1.13

.382-2.618 (pas 2.24)

 

ExtDeltaStrongGartley - pour les motifs forts (motifs exacts), il=0.07 (7%)

varStrongPatterns - options de l'algorithme de recherche de motifs exacts |

// | | = 0 recherche de motifs exacts à cinq points dans l'algorithme, | // | existant jusqu'à 122 versions incluses.

| // | existant jusqu'à 122 versions incluses. Le motif était considéré comme |

// | | trouvé si le retraitement de XD-XB-AC-BD atteignait les limites | // | de l'admission.

| | | | admission. |

// | |

| // | = 1 par la recherche de motifs dans les limites de l'admission doivent | // | pour obtenir uniquement le retraitement de XB-AC-BD.

// | | pour obtenir seulement le retraitement de XB-AC-BD. |

// | | Le retraitement de XD dans ce cas est considéré comme spravochno, |

// | | participe seulement au calcul de la frontière de développement d'un point du motif D

 
poruchik:
ExtDeltaStrongGartley - pour les motifs forts (motifs exacts), il=0.07 (7%)

varStrongPatterns - options de l'algorithme de recherche de motifs exacts |

// | | = 0 recherche de motifs exacts à cinq points dans l'algorithme, | // | existant jusqu'à 122 versions incluses.

| // | existant jusqu'à 122 versions incluses. Le motif est considéré comme |

// | | trouvé si le repérage de XD-XB-AC-BD atteignait les limites | // | de l'admission.

| | | | admission. |

// | |

| | | | = 1 par la recherche de motifs dans les limites de l'admission doivent | | | | pour obtenir uniquement le retraitement de XB-AC-BD.

// | | pour obtenir seulement le retraitement de XB-AC-BD. |

// | | Le retraitement de XD dans ce cas est considéré comme spravochno, |

// ne participe qu'au calcul de la frontière de développement d'un point du schéma D

Ensuite ExtDeltaStrongGartley est pour les motifs à 5 points comme Bat, Gartley, ButterFly & Crab.

et ExtDeltaGartley pour les autres (AB=CD, Alternate AB=CD, etc).

Pas vrai ?