如何检测一个新酒吧 - 页 3

 
Stephen Njuki:
我用这个...

谢谢你,伙计

 
Stephen Njuki:
我使用这个...

我在使用时间作为变量时遇到了很多问题,我正在寻找一种使用变量的方法。


谢谢你,工作!


 
Mladen Rakic:

为什么不简单地使用这样的东西呢?

   static datetime prevTime=0;
          datetime lastTime[1];
          if (CopyTime(_Symbol,_Period,0,1,lastTime)==1 && prevTime!=lastTime[0])
          {
               prevTime=lastTime[0];
              
               // ...
          }
它应该在所有情况下都能工作(即使在CopyTime()出现错误的情况下,它也能避免陷阱的出现)

谢谢你,兄弟!

 
Mladen Rakic:

为什么不简单地使用像这样的东西呢?

   static datetime prevTime=0;
          datetime lastTime[1];
          if (CopyTime(_Symbol,_Period,0,1,lastTime)==1 && prevTime!=lastTime[0])
          {
               prevTime=lastTime[0];
              
               // ...
          }
它应该在所有情况下都能工作(即使在CopyTime()出现错误时,它也能避免出现陷阱)

完美。

我也在寻找同样的东西。


上帝保佑你

 

谢谢你,Leonard,真的很有帮助。

当直接使用iHigh、iLow和iClose 时,注意到了一些问题,所以在调用后添加了一个快速Sleep(10000)。

void OnTick()
   {
    if(isNewBar())
       {
       Sleep(10000);
       ...
       }
   }

bool isNewBar()
   {
   
    static datetime prevTime = 0;
    datetime lastTime[1];
    if(CopyTime(Symbol(), Period(), 0, 1, lastTime) == 1 && prevTime != lastTime[0])
       {
        prevTime = lastTime[0];
        return(true);
       }
    return(false);
   }
 

这个函数是我写的,我通常在优化心情下使用它,如果你想调用它一百万次,它可以带来真正的不同。我想这是你能得到的最快的新栏,而且它看起来很干净。

inline bool IsNewBar(ENUM_TIMEFRAMES timeframe = PERIOD_CURRENT)
{
   static datetime lastBar;
   return lastBar != (lastBar = iTime(_Symbol, timeframe, 0));
}
 
Null_Pointer:

这个函数是我写的,我通常在优化心情下使用它,如果你想调用它一百万次,它可以带来真正的不同。我想这是你能得到的最快的新栏,而且它看起来很干净。

谢谢!

问题,什么叫 "内联"?

 
fdesu: 问题,"内联 "是什么意思?

在 "C "和 "C++"中,"内联 "关键字会建议编译器使用内联扩展来进行优化。

然而,在MQL中,即使编译器接受它,并且在编译过程中不出现错误,也没有记录这种功能。它可能只是简单地被容忍,但没有任何影响。

 
fdesu:

谢谢!

问题,"Inline "是什么意思?

12.MQL5。在解析 代码时,增加了对inline、__inline和__forceinline指定器的支持。代码中的指定符的存在不会导致错误,也不会影响编译。目前,这个功能简化了将С++代码转移到MQL5的过程。
在MSDN中找到更多关于指定器的信息。

New MetaTrader 5 platform build 1930: Floating window charts and .Net libraries in MQL5
New MetaTrader 5 platform build 1930: Floating window charts and .Net libraries in MQL5
  • 2018.10.25
  • www.mql5.com
The updated version of the MetaTrader 5 platform will be released on October 26, 2018...
 
Alain Verleyen: 12. MQL5: Added support for the inline, __inline and __forceinline specifiers when parsing code. The presence of the specifiers in the code causes no errors and does not affect the compilation. At the moment, this feature simplifies transferring С++ code to MQL5. Find more information about specifiers in MSDN.
谢谢你提供的信息!遗憾的是,他们没有把这一点写入文档,因为我在在线版本和MetaEditor帮助文件中都没有提到这一点。