Harmonischer Handel - Seite 314

 

Ich habe Ihren letzten Beitrag nicht gesehen

=======================

Lassen Sie uns einen neuen Anfang machen

Wählen Sie Muster =8, wenn wir Dragon,4PointPattern, 5-0,ABCD verwenden

Wählen Sie Muster =7, wenn wir 1,2,3 - oder alle 27 Muster verwenden

Dateien:
 

Jetzt sollte es klappen

zup_v134rev02.mq4

Dateien:
 
poruchik:
Ich habe Ihren letzten Beitrag nicht gesehen

=======================

Lassen Sie uns einen neuen Anfang machen

select pattern =8 wenn wir Dragon,4PointPattern, 5-0,ABCD verwenden

select pattern =7 wenn wir 1,2,3 verwenden - oder alle 27 Muster

Entschuldigung, ich habe vergessen zu sagen. In dieser geänderten Version können Sie select pattern nicht mehr verwenden. Stattdessen können Sie verwenden

Abschnitt 3 gartley

----------------------

extern bool SearchSharkPatterns = true;

extern bool SearchCypherPatterns = true;

extern bool Search5_0Patterns = true;

extern bool SearchABCDPatterns = true;

Um es benutzerfreundlich zu machen, musste ich die Funktion void _Gartley(string _Depth, int Depth) von Anfang an neu schreiben.

Dies ist die Funktion, die die Mustersuche durchführt.

 

ok bis morgen

 

Morgen um 19 Uhr (gmt+2) werde ich zeigen, wie Sie Ihre Muster in den Code einfügen können.

 

Minsk jetzt 22,43

 

Hier ein paar Zeilen aus dem ursprünglichen Code (void _Gartley-Funktion)

while (k < maxPeak-5 && (aXABCD[D] < bartoD+2 || patternInfluence==2))

{

aXABCD[X] = aNumBarPeak[k + 4];

aXABCD[A] = aNumBarPeak[k + 3];

aXABCD = aNumBarPeak[k + 2];

aXABCD[C] = aNumBarPeak[k + 1];

aXABCD[D] = aNumBarPeak[k];

vBullBear = "";

vNamePattern = "";

if (CustomPattern<2)

{

tangensXB=(zz[aXABCD]-zz[aXABCD[X]])/(aXABCD[X]-aXABCD);

if (zz[aXABCD[C]]>zz[aXABCD[D]] && (zz[aXABCD]+(aXABCD-aXABCD[D])*tangensXB)>zz[aXABCD[D]])

{

vBullBear = vBull;

}

else if (zz[aXABCD[C]]<zz[aXABCD[D]] && (zz[aXABCD]+(aXABCD-aXABCD[D])*tangensXB)<zz[aXABCD[D]])

{

vBullBear = vBear;

}

if (StringLen(vBullBear)>0)

{

// îïðåäåëÿåì ðåòðåñìåíòû

retXB = (zz[aXABCD[A]] - zz[aXABCD]) / (zz[aXABCD[A]] - zz[aXABCD[X]] + vDelta0);

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

wenn ((zz[aXABCD[A]]>zz[aXABCD[C]] && vBullBear == vBull) || (zz[aXABCD[A]]<zz[aXABCD[C]] && vBullBear == vBear)) retXD = (zz[aXABCD[A]] - zz[aXABCD[D]]) / (zz[aXABCD[A]] - zz[aXABCD[X]] + vDelta0);

sonst retXD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD[X]] + vDelta0);

Und dies ist mein geänderter Code

while (k < maxPeak-5 && (aXABCD[D] < bartoD+2 || patternInfluence==2))

{

aXABCD[X] = aNumBarPeak[k + 4];

aXABCD[A] = aNumBarPeak[k + 3];

aXABCD = aNumBarPeak[k + 2];

aXABCD[C] = aNumBarPeak[k + 1];

aXABCD[D] = aNumBarPeak[k];

vBullBear = "";

vNamePattern = "";

dotX=zz[aXABCD[X]];

dotA=zz[aXABCD[A]];

dotB=zz[aXABCD];

dotC=zz[aXABCD[C]];

dotD=zz[aXABCD[D]];

retXB=(dotA - dotB) / (dotA - dotX + vDelta0);

retAC=(dotC - dotB) / (dotA - dotB + vDelta0);

retBD=(dotC - dotD) / (dotC - dotB + vDelta0);

retXD=(dotA - dotD) / (dotA - dotX + vDelta0);

retXC=(PunktA - PunktC) / (PunktA - PunktX + vDelta0); //Chiffre-Muster

AB=MathAbs(PunktA-PunktB);

CD=MathAbs(PunktC-PunktD);

AC=MathAbs(PunktA-PunktC);

BD=MathAbs(PunktB-PunktD);

if(currentDTime==0) currentDTime=Time[aXABCD[D]];

foundPatternDTTime=Time[aXABCD[D]];

patternDotC=dotC;

searchClassicalPatterns=false;

searchSharkPatterns=false;

searchCypherPatterns=false;

search5_0Patterns=false;

searchABCDPatterns=false;

if((dotA > dotX && dotB > dotX && dotB dotB && dotC < dotA && dotD < dotB)|| (dotA < dotX && dotB dotA && dotC dotA && dotD > dotB))searchClassicalPatterns=true;

else if((dotA > dotX && dotB > dotX && dotB dotB && dotC > dotA && dotD < dotB)|| (dotA < dotX && dotB dotA && dotC < dotB && dotC dotB)){searchSharkPatterns=true; searchCypherPatterns=true;}

else if((dotA > dotX && dotB < dotX && dotB dotB && dotC > dotA && dotD > dotB)|| (dotA dotX && dotB > dotA && dotC < dotB && dotC < dotA && dotD < dotB))search5_0Patterns=true;

else if((dotB dotB && dotC < dotA && dotD dotA && dotC dotA && dotD > dotB))searchABCDPatterns=true;

//SUCHEN SIE NACH KLASSISCHEN GARTLEY-MUSTERN

if(searchClassicalPatterns==true)

{

if(dotA > dotX && dotB > dotX && dotB dotB && dotC < dotA && dotD < dotB)

{

vBullBear="Bullish";

}

if(dotA < dotX && dotB dotA && dotC dotA && dotD > dotB)

{

vBullBear="Bärisch";

}

// Start der Gartley-Suche

if (retAC >= 0,382*min_DeltaGartley && retAC <= 0,886*max_DeltaGartley && retXD < 1,000 && retXD = 1,270*min_DeltaGartley && retBD =0,618*min_DeltaGartley && retXB <= 0,618*max_DeltaGartley)

{

vNamePattern="Gartley";

PreisD_XD=dotA-0.786*(dotA-dotX);

PreisD_BD=dotC-1.618*(dotC-dotB);

if (vBullBear=="Bullish")

{

if(MathMax(KursD_XD,KursD_BD)==KursD_XD)

{

LevelForDmin = dotA-0.786*min_DeltaGartley*(dotA-dotX);

LevelForDmax = dotA-0.786*max_DeltaGartley*(dotA-dotX);

}

else if(MathMax(KursD_XD,KursD_BD)==KursD_BD)

{

LevelForDmin = PunktC-1,618*min_DeltaGartley*(PunktC-PunktB);

LevelForDmax = PunktC-1,618*max_DeltaGartley*(PunktC-PunktB);

}

}

if (vBullBear=="Bearish")

{

if(MathMin(PreisD_XD,PreisD_BD)==PreisD_XD)

{

LevelForDmin = dotA-0.786*min_DeltaGartley*(dotA-dotX);

LevelForDmax = dotA-0.786*max_DeltaGartley*(dotA-dotX);

}

else if(MathMin(PreisD_XD,PreisD_BD)==PreisD_BD)

{

LevelForDmin = dotC-1.618*min_DeltaGartley*(dotC-dotB);

LevelForDmax = PunktC-1,618*max_DeltaGartley*(PunktC-PunktB);

}

}

}// Gartley-Suche Ende

 
poruchik:
Minsk jetzt 22.43

21.:47 hier

 

dotX=zz[aXABCD[X]];

dotA=zz[aXABCD[A]];

dotB=zz[aXABCD];

dotC=zz[aXABCD[C]];

dotD=zz[aXABCD[D]];

sind die Punkte X, A, B, C und D

 

retXB=(dotA - dotB) / (dotA - dotX + vDelta0);

retAC=(dotC - dotB) / (dotA - dotB + vDelta0);

retBD=(dotC - dotD) / (dotC - dotB + vDelta0);

retXD=(dotA - dotD) / (dotA - dotX + vDelta0);

retXB, retAC, retBD, retXD sind Fib-Retracements