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

 

是否可以创建一个模板并将其应用于多个功能?

template<typename T>
void Fun1(T &y)
{тело
}
void Fun1(T &r,T k)
{тело
}
int Fun1(T &r,T k)
{тело return(0);
}

如果使用相同类型的变量,了解是否有可能对几个函数使用一个模板将是非常有用的。

 
下午好,请您告诉我如何添加石油、指数和金属的报价?
 
vfrfhjybgjakjncmrb:
你好,请你告诉我如何添加石油、指数和金属的报价?

这首先取决于办公室是否对其进行广播。这也取决于你所工作的终端。如果办公室广播了它们,那么你需要知道在什么账户和什么条件下广播了这些报价,也许你只需要打开工具列表,这些工具就在那里。如果办公室在对你来说不可能的条件下广播它们,你必须用这些报价创建一个图表,并每次更新它们。你确定你的经纪公司会广播石油吗?

 
Seric29:

是否可以创建一个模板并将其应用于多个功能?

如果使用相同类型的变量,了解是否有可能对几个函数使用一个模板将是非常有用的。

不,必须分别对每项功能作出完整的描述。否则你以后将无法阅读自己的代码。

 
如何从所有图表中一次性删除某个指标?应用一个新的模板不起作用。脚本如何?
 
Ilya Prozumentov:

不,必须单独对每项功能进行全面描述。否则,一段时间后你将无法阅读自己的代码。

这是个遗憾。如果你不这样做,你在任何情况下都无法阅读自己的代码。我只是想写出紧凑的程序,因为你经常在函数中使用同一类型的变量,这就是我问的原因。我以为可以使用 "类",但我仍然不熟悉它们。这样我就知道我是否必须为许多功能制作模板。

 

谁能告诉我为什么这个条目不能用。我想访问存储数组的结构字段,并根据哪个条件的满足来旋转它。条件的执行取决于ArrayDimension 函数。

   struct SD1{
   int a[10];//int q[10][2];
};SD1 a1;

struct SD2{
   int a[10][2];
};SD2 a2;

template<typename T>//,typename W
void MoveArray(T & s){//,W&e
   //Alert(ArrayDimension(s.a));
     int r=0;r=ArrayDimension(s.a);Print("r-ранг: ",r);if(r==1)пишу условие что если ранг равен 1му 
      {for(int cn=0; cn<=8; cn++)                              то крутить этот цикл
     {                
      s.a[cn]=s.a[cn+1];
     }} else if (r==2)            если ранг равен 2ум
      {for(int cn=0; cn<=8; cn++) крутить этот цикл
     {                
      s.a[cn][0]=s.a[cn+1][0];
      s.a[cn][1]=s.a[cn+1][1];
     }}  
}

尽管这个条件if(r==1)是假的, 但它最终还是进入了第一个循环,如果等级是2um,它为什么会进入那里,尽管是假的,但它是如何进入执行东西的正文的。

   MoveArray(a2);в OnTick
   for(int i=0;i<10;i++){Print("q: ",i,": ",a2.a[i][0]);}
int yy=ArrayDimension(a2.a);Print("Ранг: ",yy," ");
 
Seric29:

遗憾的是。如果你不做或者不做的话,你无论如何也无法读懂你自己的代码。我只是想写出紧凑的程序,因为你经常在函数中使用同一类型的变量,这就是我问的原因。我以为可以使用 "类",但我仍然不熟悉它们。这样我就知道我是否必须为许多功能制作模板。

我无法掌握如何实现紧凑性的本质。在上面的例子中,它节省了2行。如果你想把它们节省下来,你可以写一个宏置换,并在函数前一行使用它

#define  templ(T) templeate<typename T>

templ(T1) void Funct(T1 a)
 
Ilya Prozumentov:
#define  templ(T) template<typename T>

templ(T1) void Funct(T1 a)

是否有必要在每个函数前面写上templ(T1), 它将接受一个变量或所需参数?为什么要声明templ(T)并 调用templ(T1), 我应该在每个函数前加一个数字(templ(T1)templ(T2)templ(T3))还是应该到处写templ(T1)而如果几个参数在template<typename T>中被打分,那么会是怎样,就像这样template<typename T,typename P,typename Q>-templ(T,P,Q)。

 
我有一个问题 !我想用另一个EA来拖动利润,但这个EA不让我拉动止损来获取利润!我想用另一个EA来拖动利润。谁能纠正它!?作者没有回答!
附加的文件:
cm-MA_Gread.mq4  18 kb