初学者的问题 MQL4 MT4 MetaTrader 4 - 页 212

 
Aleksei Stepanenko:

做一个结构甚至更好

在你开始使用这些元素之前,别忘了将它们归零。

然后在需要时增加计数

然后比较

现在你已经在每根新的蜡烛 上围绕着之前的10根蜡烛做了一个循环。这是不理性的。你应该始终通过记住前面数值的计算结果来摆脱不必要的循环。在你的案例中,当一个新的蜡烛 到来时,只要在条件满足时增加计数,如果条件不满足,就减去它。 并检查是否有多余的部分。你的10个元素的循环是不需要的,只需要主要的一个。

阿列克谢,试着做了,但还是不对。

不加一到计数。

 for(int i=1;i<=10;i++)              
     {    
     count.up=0;
     count.dn=0;
     double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i);                                     
     if (hig10>iClose(Symbol(),CP,i))
     {
     count.up++;
     }
    else
    {
    count.dn++;
    }
    }
    
    
    if (count.up>=8)
    {
    Comment("dsdsD");
    }
 

你需要从循环中删除

count.up=0;
count.dn=0;

因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前。

 
Aleksei Stepanenko:

你需要从循环中删除

因为在每一次迭代中,你都要把以前的值清零。把它写在循环之前

非常感谢,现在可以工作了!

然而,这很奇怪,我在做同样的事情,没有结构,但只是用正常的值,如

  for(int i=1;i<=10;i++)              
     {    
     double hig10 = iMA (NULL,CP,WPER, 0, MODE_SMA, PRICE_CLOSE, i);                                     
     if (hig10>iClose(Symbol(),CP,i))
     {
     J=J+1;
    else
    {
    J=0;
    }
    }
    
    
    if (J>=8)
    {
    Comment("dfdf");

它就会开始对每一个刻度 进行加法运算))

 

该结构也将是滴答作响。要想只在一个新的蜡烛 开始时工作,必须跟踪该蜡烛的时间

datetime LastTime;

if(LastTime!=Time[0])
   {
   LastTime=Time[0];
   //Здесь ваш код
   }
 
你能告诉我吗?我在单独的文件.mqh中设置了自定义函数,通过#include将它们规定下来,我在启动时按顺序调用它们,当启动到一个函数时,然后根据行动,程序需要访问另一个文件.mqh(例如,获得订单量的值),这不会发生。如果我把所有东西都写在一张纸上,它就能工作,或者如果我把计算批量的公式直接写在订单开立参数中,它就能工作。我翻阅了MQL4课程并阅读了程序文件,但没有发现任何东西。我不太明白为什么一个.mqh函数不能在计算中与另一个.mqh函数互动。或者,我们应该让程序返回到开始,如果我们面临这样的需要--它将返回结果到开始,然后用这个计算开始将回到打开一个.mqh订单的函数?这是一些垃圾...或者,也许我们应该以某种方式声明所有现有的函数,让它们一起互动?谢谢
 
下午好!
什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式?
TimeToStr(TimeCurrent(),TIME_DATE|TIME_MINUTES);
 
Nauris Zukas:
下午好! 什么是最简单的方法来摆脱行中的年份(2020)和分钟?TimeToStr还没有其他输出格式?

tm=(string)Hour();
 
Vitaly Muzichenko:

谢谢你!

 
Denis Diakonov:
你能给我一个提示吗?我在不同的.mqh文件中设置了用户定义的函数,我通过#include来编写它们。 我在启动时调用它们,当启动到一个函数时,程序需要调用另一个.mqh文件(例如,得到一个订单量的值),但这并没有发生。如果我把所有的东西都写在一张表上,它就能工作,或者如果我把计算批量的公式直接写在开单参数中,它就能工作。我翻阅了MQL4课程并阅读了程序文件,但没有发现任何东西。我不太明白为什么一个.mqh函数不能在计算中与另一个.mqh函数互动。或者,我们应该让程序返回到开始,如果我们面临这样的需要--它将返回结果到开始,然后用这个计算开始将返回到打开.mqh订单的函数?这是一些垃圾...或者,也许我们应该以某种方式声明所有现有的函数,让它们一起互动?谢谢

如果你通过内联进行了连接,那么从函数中引用函数而不是文件。当然,如果我对你的理解正确的话。

 
我试图改写别人的 "lyakish_fractals_01",以适应我的想法,我的是基于威廉姆斯的绿条。我有一个错误的想法,我有一个错误的MQL4,它不在图表上看。如果有人有线索,请帮助我,如果不花钱的话)。
附加的文件:
18wbguVOL.mq4  13 kb