Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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 ?
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]
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 ;
}
}
}
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 ;
}
}
}
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
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 DEnsuite 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 ?