首页 > 解决方案 > 检查指标是否在较短的时间范围内可见?

问题描述

有人可以指出我的逻辑有什么问题吗?

我正在尝试做的事情:

我正在尝试根据这些条件制作指标绘制箭头:

如果存在看涨蜡烛,则检查箭头指示器是否在当前时间帧蜡烛的间隔期间在较低时间帧上显示箭头

如果它连接到 h1 并且最后一个关闭的蜡烛是 H1 上的看涨蜡烛,那么它检查最后 2 个关闭的蜡烛上 m30 上是否有箭头

如果它连接到 m5 并且最后一个关闭的蜡烛是看涨蜡烛,那么它会检查在最后 5 个蜡烛期间 m1 上是否有箭头?看跌蜡烛反之亦然。

我尝试在图表上运行它,它没有显示任何箭头,所以我的逻辑一定有问题,有人可以帮忙指出我做错了什么吗?

我的代码:

int cnt;
int tf;
if(Period() == 5)   {   tf= 1;cnt=5;    }
  
if(Period() == 15)  {   tf= 5;cnt=3;    }
  
if(Period() == 30)  {   tf= 15;cnt=2;   }
  
if(Period() == 60)  {   tf= 30;cnt=2;   }
      
if(Period() == 240) {   tf= 60;cnt=4;   }

if(Period() == 1440)    {   tf= 240;cnt=6;  }

   for(int i = 0; i <= 100000; i++)
     {
      open1 = Open [1+i];close1= Close[1+i];datetime ytime= Time[i];
      if(open1 > close1 )
      {
      for(int j=1;j<=cnt;j++)
        {
         if(iCustom(Symbol(),tf,"ArrowInd",1,j)!= EMPTY_VALUE && Time[j]>= ytime)
           { 
              {
                  Buffer1[1+i] = Low[1+i]- iATR(NULL,PERIOD_CURRENT,1,1+i); break;
              }  
           }
           else
                 {
                  Buffer1[1+i] = EMPTY_VALUE;
                 }
        }
      }
        if ( open1 < close1 )
        {
        for(int k=0;k<=cnt;k++)
          {
           if(iCustom(Symbol(),tf,"ArrowInd",0,k)!= EMPTY_VALUE && Time[j]>= ytime)
             {
                    {
                        Buffer2[1+i] = High[1+i]- iATR(NULL,PERIOD_CURRENT,1,1+i); break;
                    }
                    
             }
              else
                       {
                        Buffer2[1+i] = EMPTY_VALUE;
                       }
          }
        }
     } 

**谢谢

此致**

标签: mql4metatrader4mql5

解决方案


推荐阅读