Comércio harmônico - página 314

 

Eu não vi seu último posto

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

vamos fazer um novo começo

selecionar padrão =8 se usarmos Dragon,4PointPattern, 5-0,ABCD

selecionar padrão =7 se usarmos 1,2,3 - ou todos os 27 padrões

Arquivos anexados:
 

Deve estar tudo bem agora

zup_v134rev02.mq4

Arquivos anexados:
 
poruchik:
Eu não vi seu último post

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

vamos fazer um novo começo

selecionar padrão =8 se usarmos Dragon,4PointPattern, 5-0,ABCD

selecionar padrão =7 se usarmos 1,2,3 - ou todos os 27 padrões

Desculpe, esqueci de dizer. Agora você não pode usar o padrão selecionado nesta versão modificada . Em vez disso, você pode usar

seção 3 gartley

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

Busca externa de bool SearchSharkPatterns = true;

Busca de bool externoCypherPatterns = true;

pesquisa de balão externo5_0Patterns = verdadeiro;

Busca de farrapos externosABCDPatterns = true;

A fim de torná-lo fácil de usar tive que reescrever a função void _Gartley(string _Depth, int Depth) desde o início.

Esta é a função que realiza a busca de padrões.

 

ok ver amanhã

 

Amanhã, às 19h , (gmt+2 ) mostrarei como adicionar seus padrões ao código.

 

Minsk agora 22,43

 

Este é um par de linhas do código original ( função nula _Gartley)

enquanto (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;

}

senão se (zz[aXABCD[C]]<zz[aXABCD[D]] && (zz[aXABCD]+(aXABCD-aXABCD[D])*tangensXB)<zz[aXABCD[D]])

{

vBullBear = vBear;

}

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

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

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

E este é meu código modificado

enquanto (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=(dotA - dotC) / (dotA - dotX + vDelta0); //Cypher Patterns

AB=MathAbs(dotA-dotB);

CD=MathAbs(dotC-dotD);

AC=MathAbs(dotA-dotC);

BD=MathAbs(dotB-dotD);

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

foundPatternDTime=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=verdadeiro;

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

senão se((dotA > dotX && dotB < dotX && dotB dotB && dotC > dotA && dotD > dotB)|| (dotA dotX && dotB > dotA && dotC < dotB && dotC < dotA &&& dotD < dotB))search5_0Patterns=verdadeiro;

senão se((dotB dotB dotB && dotC < dotA &&& dotD dotA && dotC dotA && dotD > dotB))searchABCDPatterns=verdadeiro;

//ESQUISA DE PADRÕES CLÁSSICOS DE GARTLEY

if(searchClassicalPatterns==verdadeiro)

{

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

{

vBullBear="Bullish";

}

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

{

vBullBear="Bearish";

}

// Gartley Search Start

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

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

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

if (vBullBear=="Bullish")

{

if(MathMax(PriceD_XD,PriceD_BD)==PriceD_XD)

{

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

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

}

senão se(MathMax(PriceD_XD,PriceD_BD)==PriceD_BD)

{

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

LevelForDmax = dotC-1.618*max_DeltaGartley*(dotC-dotB);

}

}

se (vBullBear=="Bearish")

{

if(MathMin(PriceD_XD,PriceD_BD)==PriceD_XD)

{

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

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

}

senão se(MathMin(PriceD_XD,PriceD_BD)==PriceD_BD)

{

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

LevelForDmax = dotC-1.618*max_DeltaGartley*(dotC-dotB);

}

}

}// Gartley Search End

 
poruchik:
Minsk agora 22,43

21.:47 aqui

 

dotX=zz[aXABCD[X]];

dotA=zz[aXABCD[A]];

dotB=zz[aXABCD];

dotC=zz[aXABCD[C]]; dotC=zz[aXABCD[C]];

dotD=zz[aXABCD[D]];

são pontos X, A, B, C & 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 são retrações de fibras

Razão: