错误、漏洞、问题 - 页 1233

 
在4号线上问了很久,但除了嘲讽之外,从未得到过答案))

StringToTime 错误时,返回TimeGMT();例如,当StringToTime("0")--参数未被解析时。

而当参数被解析时,它返回正常的时间,例如当StringToTime(" 24.10.2014") - D'2014.10.24 00:00:00'

这是否正常?为什么特别是TimeGMT()?这是我在MT4和电脑上的当前时间 的-2小时。

 
关于错误4806的问题 "为什么函数CopyBuffer放在一个自定义指标 中会导致错误4806?

而EA代码中相同参数的相同函数却能正常工作?"

我的代码在调试器中可以工作,但在正常模式下却不能工作(或者说,它有时可以工作,但我无法建立一个简单的模式来解释为什么可以工作和为什么不工作)。

如果不能正常使用,我们为什么还需要iXXX这样的指标?

 
tyn:
关于错误4806的问题 "为什么函数CopyBuffer放在一个自定义指标 中会导致错误4806?

而EA代码中相同参数的相同函数却能正常工作?"

我的代码在调试器下可以工作,但在正常模式下却不能工作(实际上,它有时可以工作,但我无法建立简单的模式,为什么它可以工作,为什么它不可以?)

如果不能正常使用,我们为什么还需要iXXX型指标?

下午。CopyBuffer的数据是从你的指标运行的同一个TF中提取的?

你是否尝试使用BarsCalculated() 函数来解决这个问题?

 
marketeer:
在MQL OOP中,你如何检查一个指针是否是某个类的成员--如JavaScript中的instanceof或C++中的typeid?
CObject *ob;
datetime t;

typename(ob); // CObject
typename(t);  // datetime
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Шаблоны функций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
我可以为价格标签 设置我自己的价值(显示),而不是它的价格吗? 如果可以,如何设置?
 
Tapochun:

下午好。CopyBuffer的数据是否取自你的指标运行的同一个TF?

你是否尝试使用BarsCalculated() 函数来解决这个问题?

谢谢你的问题。我从iATR中获取了D1的数据,主指标在较小的时间段内运行,BarsCalculated()也返回-1,并且有同样的错误。正如我所猜测的,有一个函数但没有指标(在运行时)。如果我在同一工具的另一个窗口中创建一个指标,一切都能正常工作。在调试模式下,它也能工作。但我的问题是,这是一个错误还是我不明白的地方?
 

下午好。

来自系统dll的函数调用 问题。任务是在MQL5中编写一个简单的TCP服务器,它运行在某个端口,只是接收消息。

从ws2_32.dll导入函数WSAStartup(), WSAClenup(), socket(), bind(), accept(), listen(), recv()。在你试图停止服务器之前,一切都完全正常。当我试图停止服务器并正确地终止脚本时,终端只是踢出了。

从那时起,recv()函数就被当作科学方法使用。

在所附文件中,有一行(171)。

  int bytesCnt = recv(clientSocket, rcvBuffer, RCVBUFFSIZE, 0);

如果它被配置成这个样子。

  int bytesCnt = 10; //recv(clientSocket, rcvBuffer, RCVBUFFSIZE, 0);

则服务器停止,没有任何错误。我在MSDN上看了使用网络功能的例子,并以此类推,做了一切。

有没有人知道如何解决这个问题?

附加的文件:
 
tyn:
谢谢你的询问。我从iATR中获取了D1的数据,主指标在较小的时间段内工作,BarsCalculated()也返回-1和同样的错误。正如我所猜测的,有一个函数但没有指标(在运行时)。如果我在同一工具的另一个窗口中创建一个指标,一切都能正常工作。在调试模式下,它也能工作。但我的问题是,这是一个错误还是我不明白的地方?

最近我自己也在为这个问题而挣扎。我解决了这个问题,我不知道这是否是最佳方案,但我解决了这个问题。只有数据取自iFractals,但这并不重要。我为什么要问TF的事?根据我的观察,发生了以下事情。例如,该指标在M15处工作。如果从M1到M15请求指标数据--一切正常,数据在被请求的那一刻就可以得到(如果不是第一次调用)。如果从M30请求数据(我重复,该指标在TF M15上运行),那么在请求的时刻,M30上没有新蜡烛 的数据(要么我们需要一个初步的请求,要么数据被延迟了)。我已经用以下方式解决了这个问题。我记得当前蜡烛上的BarsCalculated()的结果。只要下一次BarsCalculated()再返回值1(一个新的蜡烛已经出现),我们就会记住BarsCalculated()的 新值并复制数据但是这个时刻(当指标数据出现在较高的TF上时)并不与当前TF中新蜡烛的形成相吻合。

是的,BarsCalculated()在完全没有数据时返回-1,据我所知,它只在第一次运行时发生就是说,当你得到指标句柄并立即请求数据时。你也需要等待。

 

指标句柄被创建 后,由于数据还没有准备好,所以无法查询到。初始化和重新计算的过程很复杂,取决于许多因素。

正确的策略是在oninit中创建一个句柄,并在第一个tick到达时对数据进行操作。

 
Renat:

指标句柄被创建 后,由于数据还没有准备好,所以无法查询到。初始化和重新计算的过程很复杂,取决于许多因素。

正确的策略是在oninit中创建一个句柄,并在第一个tick到达时对数据进行操作。

那么这个问题。如果指标在M15上运行。一个新的蜡烛形成了。当要求提供M15和M30的数据时,它们是否应同时提供?
原因: