查找最近的日期 - 页 3

 
dr.house7:

对不起,但你说的 "这些条件 "是什么意思?

缺少时间。

顺便说一下,我决定花时间测试一下,这里有一个解决方案。

   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp)
        {
         highest=i;
         temp=touchedline[i];
        }
     }
   temp=0;
   for(int i=0;i<10;i++)
     {
      if(touchedline[i]>temp && i!=highest)
        {
         previoushighest=i;
         temp=touchedline[i];
        }
     }
   Print("act_highest :",highest);
   Print("prv_highest :",previoushighest);
 
angevoyageur:

缺少时间。

顺便说一下,我决定花时间测试一下,这里有一个解决方案。


我确实测试了一段时间,似乎工作正常。

你节省了我的时间,我绝对是欠你一个人情......非常感谢你!

祝你有一个愉快的一天。

更正

对不起,但它不能正常工作,很多时候实际值完全错误,如冻结,有时以前的值变成实际值:(

 
dr.house7:


我确实测试了一段时间,似乎工作正常。

你节省了我的时间,我绝对是欠你的......非常感谢你

祝你有一个愉快的一天。

更正

对不起,但它不能正常工作,很多时候实际值是完全错误的,如冻结,有时以前的值变成实际值:(


我提供的最后一段代码应该可以工作。你能不能把你的代码贴出来。

 
angevoyageur:


我提供的最后一段代码应该可以工作。能否请你公布你的代码。

当在同一分钟栏中涉及不同的触线时,问题就来了。

 
例如,当你回测 2014年1月10日16:30的欧元兑美元时,在每个tick模式M1上的表现是很明显的。
 

这很难吗?

OMG

 

有什么简单的解决方案吗?

我应该用arraymaximum 代替吗?

谢谢;)

 

亲爱的阿兰。

我决定选择一个新的方法,我删除了循环,并试图在正确的之前得到一些东西。

现在touchx(实际触摸)是正确的,每个刻度的变化都是正确的......而previoustouchx(前一个触摸)在第二个刻度后变得错误(因为它取的是与当前相同的值)。

我应该怎么做呢?

谢谢,祝你有个愉快的夜晚

文档

int highest,touchx,previoustouchx;

if(ema1[1] > ema2[1] && ema1[0]< ema2[0]) 
          {
           if(TouchTime1 != emacross1_TouchTime) 
           {
           drawArrow1(TouchTime1,ema1[0],"Wingdings 3",ArrowSize,"p",ArrowColor); 
           emacross1_TouchTime= TouchTime1;
           highest=emacross1_TouchTime;
           previoustouchx=touchx;
           touchx=1;
           }        
          }
附加的文件:
mecca.mq5  14 kb
 
dr.house7:

亲爱的阿兰。

我决定选择一个新的方法,我删除了循环,并试图在正确的之前得到一些东西。

现在touchx(实际触摸)是正确的,每个刻度的变化都是正确的......而previoustouchx(前一个触摸)在第二个刻度后变得错误(因为它取的是与当前相同的值)。

我应该怎么做呢?

谢谢,祝你有个愉快的夜晚

文档

你好,医生。

这取决于你的目标,对不起,我不清楚。你在检测两个货币的交叉,但你想在什么时候检测这个交叉,在每个柱子上?

当然,按照现在的代码,它是在每个tick上检测的。

 
angevoyageur:

你好,医生。

这取决于你的目标,对不起,我不清楚。你在检测两个货币的交叉,但你想在什么时候检测这个交叉,在每个柱子上?

当然,按照现在的代码,它是在每个tick上检测的。

晚上好,阿兰。

EA应该检查 每个tick(就像它做的那样),但只有在信号改变时才改变两个整数(touchx和previoustouchx)...像这样。

比如说。

第一个刻度线

touchx =3; previoustouchx=-1 (-1是因为没有以前的数据)

第2个刻度线

touchx =5; previoustouchx=3

第3次打勾

touchx =5; previoustouchx=3

等等