[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 104

 
kilnart:

并建立一个买入头寸。

一切似乎都是正确的,但有一些不对劲。

那么代码到达哪里?评论 或打印告诉你什么?
 

只到这里为止。

if(Low1<Low2 && Open[2]>Close[2])  

没有下文了。

 
kilnart:

只到这里为止。

没有下文了。


那么,接下来什么条件没有得到满足?评论 或打印告诉你什么?
 
你需要写什么?
 
kilnart: 你需要写什么?

使用Print() 检查你的条件是否在历史数据上得到满足,像这样。

double Low1=Low[iLowest(NULL,0,MODE_LOW,3,0)],
              Low2=Low[iLowest(NULL,0,MODE_LOW,20,0)];
//Print("Low1 = ",Low1 ,"Low2 = ",Low2);
         
         if(Low1<Low2 && Open[2]>Close[2])    
          {
            Print("сработал первый if...");
            if(Open[1]<=Close[2] && Open[2]<Close[1])
             {
                 Print("сработал второй if...");
                 double sl=Low[iLowest(NULL,0,MODE_LOW,3,0)],
                        tp=Ask+(Open[2]-Low[2]);
                 OrderSend(Symbol(),OP_BUY,0.1,Ask,3,sl,tp);
                 return;
             }
          }
 

刚刚按你的要求做了,什么也没发生。

问题出在这个表达上

if( Low1<Low2 && Open[2]>Close[2])  

如果我删除Low1<Low2,那么 Open[2]>Close[2]将被执行,如果我删除Open[2]>Close[2], Low1<Low2 不被执行

 
kilnart:

低点1<低点2 不符合要求

你发现的Low1和Low2等于什么,发现的最低指数是否正确?
 
我用脚本检查过了,数字加起来了。 我想他们是对的。 我不知道,这不起作用。
 
kilnart:

我与脚本进行了核对,数字相加。

:)

我相信他们是正确的。

不要假设,你会看到的。

 
正确的。没有假设。