我如何在MQL5中获得Open,Low,High,Close参数? - 页 5

 
Igor Makanu:

你可以选择CNewbar 类,或者在论坛上搜索NewBar。


你的班级里有一个iTime电话。有人建议我忘掉这件事)。此外,哪里能保证它不是在做与CopyRates相同的工作?你在每一次打勾的时候都叫它。总之,我在每次打勾时都调用CopyRates,问题就解决了。

 
Artyom Trishkin:

是的,在每一次打勾 时,我们都会检查时间。

而总的来说。

只是跪着写--显示想法,而不是写作的准确性

如果计算本身涉及到CopyRates或其对应的计算,那么计算一个新的酒吧就没有意义。同样的费用将是。

我会在每一次打勾时都打电话。哎呀。

 
Igor Makanu:

你可以选择CNewbar 类,或者在论坛上搜索NewBar。

ZS:整篇文章!https://www.mql5.com/ru/articles/159



好了,老样子......哎呀,哎呀,哎呀......而且没有一行代码))))

我举这个例子是想说明,获得连续的OHLC数组并不总是方便的(也很少有必要)。 在实际问题中,你经常需要从不同的柱状图中获得OHLC值的选择(指标没有被考虑在内)。

好了,别生病了!

哦,来吧。胖人最多的是温暖。这就是为什么你也可以使用这些比较。谁在乎你是否需要OHLC...伊戈尔说你应该使用分形,那就使用吧......

 
Реter Konow:

你的班级里有iTime电话。有人建议我忘掉这件事)。此外,哪里能保证它反过来不做与CopyRates相同的工作?你在每一次打勾的时候都叫它。简而言之,我将在每一个刻度上调用CopyRates,问题就结束了。

这比在每个刻度 上调用CopyTime()或iTime()更长。

CopyRates()只有在你需要一次获得所有条形的值时才会被调用--在定义新条形的时刻。

 
Реter Konow:
如果计算本身涉及到CopyRates或其对应的计算,那么计算一个新的酒吧就没有意义。同样的费用将是。

我会在每一次打勾时都打电话。温泉。

答案是--你错了。

 
Artyom Trishkin:

这比在每个刻度 上调用CopyTime()或iTime()更长。

只有当你需要一次性获得所有条形值时才调用CopyRates()--在定义一个新条形的时刻。

好的。所以必须忘掉忘记iXXX功能的设置)。

 
Реter Konow:

好的。所以你必须忘记iXXX的功能))。

当然了。并非他们所说的所有东西都是有用的。而我可以说这样的垃圾:)))

但在这里--出于速度的考虑:当你需要同时 获得一个条形图的几个值时(你的情况),CopyRates()是有用的。它比CopyTime()或iTime()慢,但如果你调用CopyOpen()、CopyHigh()、CopyLow()和CopyClose()+(必要时调用 CopyTime()),那么它将比单一调用CopyRates()慢,后者将一次性返回所有需要的值。

结论:在每个tick上,我们用CopyTime()或iTime()来确定一个新的bar,在一个新bar出现的时刻,我们调用CopyRates()一次。

而且你不应该考虑宗教声明,这些声明除了信仰之外没有任何东西可以证实。你可以自己检查一下,对于你定义一个新酒吧的情况,哪种方法更快--CopyTime()或iTime()--最近在MQL5函数中实现,这有利于编写跨平台的代码(这是一个谎言--因为MQL4也包含CopyXXX函数,但在MQL5中移植MQL4代码更容易--你不需要重新做iXXX函数)。

 
Реter Konow:
否则,你怎么会知道当前酒吧的开盘时间已经改变?
//+------------------------------------------------------------------+
//|                                                       NewBar.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

MqlDateTime time;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{

   EventSetMillisecondTimer(100);
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();   
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{

   
}

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
{
   TimeGMT(time);   
   //TimeLocal(time);

   if(NewMinute())
   {
     Print("Я новая минута");
   }		
}

//####################################################################

//Получить новое время
int zero = 0;
bool NewMinute()
{
  int minute = time.min; //time.sec; time.hour;  time.day; 
  if(zero != minute)
  {    
    zero = minute;
    return(true);
  }
  else return(false); 
}
 
Реter Konow:

你的班级里有iTime电话。有人建议我忘掉这件事)。此外,哪里能保证它反过来不做与CopyRates相同的工作?你在每一次打勾的时候都叫它。简而言之,我将在每一个刻度上调用CopyRates,问题就结束了。

你总是只写不读吗? 我给了你一个链接,是关于新酒吧的一整篇文章!"。文章是经过检查的--由能力不同的人检查,而不是由那些经常在论坛上写作的人检查;)

ZS:如果你停止写作并开始阅读,例如我链接上的文章,你可以找到另一种方法(SERIES_LASTBAR_DATE )不使用iXXX() - 我告诉你不要使用它们 ))- 谁会报告bug和错误,开发人员发布了低劣的)))))。

 
Igor Makanu:

你总是只写不读吗? 我给了你一个链接,是关于新酒吧的一整篇文章!"。文章是经过检查的--由能力不同的人检查,而不是由那些经常在论坛上写作的人检查;)

ZS:如果你停止写作并开始阅读,例如我链接上的文章,你可以找到另一种方法(SERIES_LASTBAR_DATE )不使用iXXX() - 我告诉你不要使用它们 ))- 谁会告诉开发人员发布的缺陷和错误是偷工减料)))))

SERIES_LASTBAR_DATE出现了一些问题。很久以前在这里的某个地方讨论过这个问题。也许它被修复了。