新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 690

 
晚上好.
 if(count==0)comment+="No symbols for trading!";
      Comment(comment);
      MqlTick tick;
      tick.ask=SymbolInfoDouble(structPairs.name,SYMBOL_ASK);
      tick.bid=SymbolInfoDouble(structPairs.name,SYMBOL_BID);
      tick.time=TimeCurrent();
      Trade(false,structPairs, tick, Orders, inputs);
这段代码是怎么说的?它何时出现?列表中的所有配对都在那里,所有的历史都被加载。
 
Darirunu:
晚上好.这段代码是怎么说的?它何时出现?所有的配对都在列表中,所有的历史都被加载。

投资者密码?

 
Darirunu:
晚上好,这段代码是怎么说的?它何时出现?列表中的所有配对都在那里,所有的历史都被加载。
如果某个计数器为0(我猜是之前运行的结果),那么就会在注释中加入一行内容
No symbols for trading!

其余的是照常工作...

 
Taras Slobodyanik:

谢谢你

检查第二条杠上是否有任何物体

         for(int jj=i;jj<obj_total;jj++)
           {
            nameARs=ObjectName(jj);
            if(ObjectType(nameARs)!=OBJ_RECTANGLE) continue;
            if(StringFind(nameARs,"QUADRO",0)!=-1)
              {

               time_ars=ObjectGetInteger(0,nameARs,OBJPROP_TIME);//break;

              }
           }
         //===---===
         if(time_ars!=Time[i+2])
           {
           //....
           }
我如何检查十条杠上是否有物体?
 

指标。

对于每个柱状图,计算看涨柱状图的尺寸之和和看跌柱状图的尺寸之和

在缓冲区中写下这些和的差值。

这里有什么问题吗?

int counted_bars=IndicatorCounted(),
       limit;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   double up_sum=0, down_sum=0;
   for(int i=0;i<limit;i++)
   {
      for(int f = 0; f < Period; f++){
         if(close[f] - open[f] > 0) up_sum += close[f] - open[f];
         if(close[f] - open[f] < 0) down_sum += MathAbs(close[f] - open[f]);
      }
      PVTBuffer[i]=up_sum-down_sum;
   }
 
Roman Sharanov:

指标。

对于每个柱状图,计算看涨柱状图的尺寸之和和看跌柱状图的尺寸之和

在缓冲区中写下这些和的差值。

这里有什么问题吗?

转移

double up_sum=0, down_sum=0;

在第一个周期内,在宣布第二个周期之前。

 
Roman Sharanov:

指标。

对于每个柱状图,计算看涨柱状图的尺寸之和和看跌柱状图的尺寸之和

在缓冲区中写下这些和的差值。

这里有什么问题吗?

尝试重置变量up_sum=0,down_sum=0

在第二个内部循环之前。

int counted_bars=IndicatorCounted(),
       limit;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   double up_sum, down_sum;
   for(int i=0;i<limit;i++)
   {
    up_sum=0; 
    down_sum=0;
      for(int f = 0; f < Period; f++){
         if(close[f] - open[f] > 0) up_sum += close[f] - open[f];
         if(close[f] - open[f] < 0) down_sum += MathAbs(close[f] - open[f]);
      }
      PVTBuffer[i]=up_sum-down_sum;
   }

像这样

 
Alekseu Fedotov:

试着重新设置up_sum=0,down_sum=0

在第二个内部循环之前。

像这样

这样做了,是的,这很有意义,但现在它根本就不再显示了

 
Ghabo:

谢谢你

检查第二条杠上是否有任何物体

我如何检查十条杠上是否有物体?

如果你知道如何创建一个对象的确切名称,那么就没有必要去看图表上的所有对象。
通过这些(假定的)名字就足够了。

for(int i=0;i<10;i++)
   {
   if (ObjectFind(0,"QUADRO"+Time[i])<0)
      Print("Нет объекта на баре № ",IntegerToString(i));
   else
      Print("Найден oбъект на баре № ",IntegerToString(i));
   }
 
Roman Sharanov:

我做了,是的,这很有意义,但现在它根本就不再显示了

是的,也是这样的,修复它。

在内循环中

for(int f = 0+i; f < Period+i; f++)