Harmonischer Handel - Seite 308

 

Danke poruchik. Hier ist der Code, der geändert werden muss. Ich werde versuchen, ihn zu ändern.

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<AB*max_DeltaGartley)

{

vNamePattern=vABCD; // AB-CD

}

sonst

{

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

{

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

{

vNamePattern=_ABCDtypetxt+"*AB=CD";

break;

}

}

}

 

Erledigt! Hier ist der geänderte Code. Jetzt prüft er AC < AB * Fib(1.0) für AB=CD & (x) * AB=CD Muster

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

}

sonst

{

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";

break;

}

}

}

 

Danke Bruder

Ich habe 133 mit deinem Code geändert

Gleicher Fehler?

Dateien:
 
poruchik:
danke Bruder

Ich modifiziere 133 mit deinem Code

Gleicher Fehler?

Gern geschehen, Poruchik,

und für Real AB=CD , sollten die Verhältnisse sein

AB=CD-Muster

[.382/2.240]

[.500/2.000]

[.618/1.618]

[.707/1.414]

[.786/1.270]

[AB=CD]

Dateien:
image038.jpg  45 kb
 

Geänderter Code zur Prüfung von Real AB=CD

Der neue Code prüft nun die Verhältnisse von retAC und retBD.

Mit dem neuen Code findet der Indikator weniger AB=CD-Muster, aber sie werden sehr genau sein

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);

if(

(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

}

}

sonst

{

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";

break;

}

}

}

 
grandaevus:
Geänderter Code zur Überprüfung von Real AB=CD

Der neue Code prüft jetzt die Verhältnisse retAC, retBD

Mit dem neuen Code findet der Indikator weniger AB=CD-Muster, aber sie werden sehr genau sein

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);

if(

(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

}

}

sonst

{

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";

break;

}

}

}

Einige Überarbeitungen vorgenommen( überflüssige Klammernentfernt ).

Endgültiger Code

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);

if(

(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

}

}

sonst

{

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";

break;

}

}

}

 
grandaevus:
poruchik , ich weiß, was "ExtDeltaGartley=0.09" ist. Soweit ich weiß, steuert dieser Parameter die maximale Abweichung von den idealen Fibos.

In zup130 gibt es auch ExtDeltaStrongGartley=0.07.

Was ist der Unterschied zwischen diesem Parameter und ExtDeltaGartley?

poruckic, ich weiß, ich habe schon einmal gefragt, aber um das Thema zu klären, möchte ich Sie noch einmal fragen.

Was ich verstanden habe, ist,

ExtDeltaGartley=0.09 ; prüft die Länge der Schenkel.

Ich meine, im Muster AB=CD sollte die Länge des Schenkels AB gleich der Länge des Schenkels CD sein.

Wenn wir prüfen wollen, ob die Längen der Schenkel innerhalb der Grenzen liegen, verwenden wir den Parameter ExtDeltaGartley

ExtDeltaStrongGartley prüft jedoch die Fibonacci-Retracement-Verhältnisse.

Wenn z.B. das AC-Retracement von AB 0,3820 ist, sollte das BD-Retracement von BC 2,240 sein.

ExtDeltaStrongGartley prüft hier die Fib-Verhältnisse innerhalb der Grenzen, nicht ExtDeltaGartley.

Liege ich richtig?

 

Ich addiere .886-1.13

.382-2.618 (nicht 2.24)

 

ExtDeltaStrongGartley - für starke Muster (exakte Muster), it=0,07 (7%)

varStrongPatterns - Optionen des Algorithmus für die Suche nach exakten Mustern |

// | = 0 Suche nach exakten Fünf-Punkte-Mustern im Algorithmus, |

// | vorhanden bis einschließlich 122 Versionen. Das Muster wurde als |

// | gefunden, wenn die Wiederholung von XD-XB-AC-BD an die Grenzen | // | gelangt.

// | | Zulassung. |

// | |

// | = 1 bei der Suche nach Mustern in den Grenzen der Zulassung müssen | //

| | | nur XB-AC-BD-Rückgabe erhalten. |

// | nimmt nur für die Berechnung der Grenze der Entwicklung des Punktes des Musters D teil

 
poruchik:
ExtDeltaStrongGartley - für starke Muster (exakte Muster), es=0,07 (7%)

varStrongPatterns - Optionen des Algorithmus für die Suche nach exakten Mustern |

// | = 0 Suche nach exakten Fünf-Punkte-Mustern im Algorithmus, |

// | vorhanden bis einschließlich 122 Versionen. Das Muster wurde als | //

// | gefunden, wenn die Wiederholung von XD-XB-AC-BD an die Grenzen | // | gelangt.

// | | Zulassung. |

// | |

// | = 1 bei der Suche nach Mustern in den Grenzen der Zulassung müssen | //

| | | nur XB-AC-BD-Rückgabe erhalten. |

| | | Retresment von XD in diesem Fall wird als spravochno, |

| wird nur zur Berechnung der Entwicklungsgrenze eines Punktes des D-Musters herangezogen

Dann ist ExtDeltaStrongGartley für 5 Punktmuster wie Fledermaus, Gartley, Butterfliege und Krabbe.

und ExtDeltaGartley ist für andere (AB=CD, Alternate AB=CD, etc)

Richtig?