和谐贸易 - 页 314

 

我没有看到你的最后一个帖子

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

让我们重新开始吧

如果我们使用Dragon,4PointPattern, 5-0,ABCD,则选择模式=8

如果我们使用1,2,3或所有27种模式,选择模式=7

附加的文件:
 

现在应该可以了

zup_v134rev02.mq4

附加的文件:
 
poruchik:
我没有看到你的最后一个帖子

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

让我们重新开始

选择模式=8 如果我们使用龙,4PointPattern, 5-0,ABCD

如果我们使用1,2,3,选择模式=7 - 或所有27个模式

对不起,我忘记说了。现在你不能在这个修改的版本中使用选择模式。相反,你可以使用

第3节 Gartley

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

extern bool SearchSharkPatterns = true;

extern bool SearchCypherPatterns = true;

外部的bool Search5_0Patterns = true;

extern bool SearchABCDPatterns = true;

为了使它对用户友好,我不得不从头开始重写 void _Gartley(string _Depth, int Depth)函数

这是执行模式搜索的函数。

 

好的,明天见

 

明天下午7点 ,(gmt+2)我将展示如何将你的模式添加到代码中。

 

明斯克现在22.43

 

这是原始代码中的几行(void _Gartley函数)。

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

如果(CustomPattern<2)

{

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

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

{

vBullBear = vBull。

}

否则,如果(zz[aXABCD[C]]<zz[aXABCD[D]] &&(zz[aXABCD]+(aXABCD-aXABCD[D])*tangensXB)<zz[aXABCD[D]]

{

vBullBear = vBear。

}

如果(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) 。

如果((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) 。

否则retXD = (zz[aXABCD[C]] - zz[aXABCD[D]]) / (zz[aXABCD[C]] - zz[aXABCD[X]] + vDelta0) 。

而这是我修改后的代码

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=(dotA - dotC) / (dotA - dotX + vDelta0); //密码模式

AB=MathAbs(dotA-dotB);

CD=MathAbs(dotC-dotD);

AC=MathAbs(dotA-dotC);

BD=MathAbs(dotB-dotD)。

如果(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 > dotB))searchClassicalPatterns=true。

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

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

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

//搜索经典的Gartley模式

如果(searchClassicalPatterns==true)

{

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

{

vBullBear="看涨"。

}

如果(dotA < dotX && dotB dotA && dotC dotA && dotD > dotB)

{

vBullBear="看跌"。

}

// Gartley搜索开始

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

如果(vBullBear=="看涨")

{

如果(MathMax(PriceD_XD,PriceD_BD)==PriceD_XD)

{

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

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

}

否则如果(MathMax(PriceD_XD,PriceD_BD)==PriceD_BD)

{

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

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

}

}

如果(vBullBear=="看跌")

{

如果(MathMin(PriceD_XD,PriceD_BD)==PriceD_XD)

{

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

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

}

否则如果(MathMin(PriceD_XD,PriceD_BD)==PriceD_BD)

{

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

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

}

}

}// Gartley搜索结束

 
poruchik:
明斯克现在22.43

21.:47这里

 

dotX=zz[aXABCD[X]]。

dotA=zz[aXABCD[A]]。

dotB=zz[aXABCD];

dotC=zz[aXABCD[C]]。

dotD=zz[aXABCD[D]]。

是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是纤维回调。