错误、漏洞、问题 - 页 661

 

字符串的长度(字符串类型)是否有内部限制,或者有多少可用的内存,可以塞进多少字符串?

// 这个问题与为OpenCL编写程序有关。

也请在文档中指明正确的答案,FAQ中没有说明。

 
MetaDriver:

字符串的长度(字符串类型)是否有内部限制,或者有多少可用的内存,可以塞进多少字符串?

// 这个问题与为OpenCL编写程序有关。

也请在文档中指明正确的答案,因为FAQ中没有说明。

如果没有换行符,"\r\n "比32768少一点,粗略说来,32000个字符会装在里面。

而用换行的方式直到内存足够,至少我已经把2 000 000塞进了绳子里,我的手已经厌倦了进一步铲除:)

 
Urain:

如果没有换行,它比32768少一点,大约是32000个字符。

但有了换行,我现在已经有了足够的内存,至少我已经把200万塞进了绳子里,我的手臂已经厌倦了塞进:)

非常感谢!一开始,两百万对我来说就足够了。

//只是不解:字符串翻译到底有什么关系?它只是一个符号,不比其他的差/好。

// 不,我相信你,只是我通常了解事情的运作方式,但在这里,它有点奇怪和令人惊讶......

// 你是用什么来测量的? 难道不是一个文件函数吗?

:)

 
MetaDriver:

谢谢你,我很高兴你这样做!两百万对我来说是第一次,足够了。

//只是不解:字符串翻译 到底有什么关系?它只是一个符号,不比其他的差/好。

// 不,我相信你,只是我通常了解事情的运作方式,但在这里,它有点奇怪和令人惊讶......

// 你用什么测量的? 不会是文件功能吧?

:)

最有可能的是它是字符串的内部表示;\r\n之后可能是分配一个新的(额外的)数组来存储信息。

我不太清楚,可以问MQ。

当然,SZY是为了控制转储到一个文件中,但首先是形成字符串,通过Len检查其长度,嗯,我现在不记得了,那是很久以前的事了,但一切都很有秩序。

ZZZI 而且我检查了从保存的字符串中读取的10个字符,没有翻译超过~32700就不写在变量中。

 
Urain:

这很可能是一个内部的字符串表示,\r\n后面可能是一个新的(额外的)数组用于存储信息。

我不知道具体的情况,请问MQ。

嗯,当然要控制重置到一个文件,但首先要形成字符串,通过Len检查其长度,嗯,我现在不记得了,那是很久以前的事了,但一切都很有秩序。

ZZZY又从保存的字符串中读出10个字符,没有翻译超过~32700就不写在变量中。

好的,谢谢你,尼古拉斯,顺便说一句,祝你生日快乐......!



--

斯特林格 同志有什么要说的?

 
最大的行长是 1073741816个字符,但在x86(32位)中没有足够的内存容纳这个数量的字符。
 
Valmars:
我们只需要及时同步计算机时间,否则我们也会失去交易。

就这样吧,我已经知道了。那我就误解了你的意思。))为了始终正确地获得整个历史,可以这样进行同步。

//+------------------------------------------------------------------+
//| МАКСИМАЛЬНОЕ_ВРЕМЯ                                               |
//+------------------------------------------------------------------+
datetime ChoiceTimeFunction()
  {
   datetime synchro=NULL;
//---
   synchro=(datetime)fmax((double)TimeTradeServer(),(double)TimeLocal());
//---
   if(!MQL5InfoInteger(MQL5_TESTING) || !MQL5InfoInteger(MQL5_OPTIMIZATION) || !MQL5InfoInteger(MQL5_VISUAL_MODE))
     {
      Print("synchro_time: ",synchro,"; TimeTradeServer(): ",TimeTradeServer(),"; TimeLocal(): ",TimeLocal()); return(synchro);
     }
//---
   synchro=TimeCurrent()+Milliseconds_Ahead;
//---
   Print("synchro_time tm+ml_ahead: ",synchro,"; TimeCurrent(): ",TimeCurrent(),"; Milliseconds_Ahead: ",Milliseconds_Ahead); return(synchro);
  }
对于测试人员来说,只有一个拐杖,而且不是所有的情况。我们等待,直到他们修复它。
 
tol64:

就这样吧,我已经知道了。那我就误解了你的意思。))为了始终正确地获得整个历史,可以这样进行同步。

对于测试人员来说,这只是一个拐杖,并不适合所有情况。我们正在等待他们解决这个问题。

不,你说对了。服务器时间不取决于计算机的时区,它对所有的人都是一样的,等于 "市场观察 "中最后的固定时间。

当某个服务器上的市场关闭(交易结束)时,在新的一周的下一个市场重新开放之前,不应触发止损。在你的案例中,情况似乎并非如此。报价已经停止进入终端,但它们仍在服务器上被处理,并被触发了停止。在一些经纪公司,止损不是由市场触发,而是由止损中设定的价格触发。这不是一个市场机制,而是一个 "厨房 "机制。

我所说的可能错过的交易,好吧,如果你的时钟晚了2分钟,那么在这最后2分钟做的交易将不会落入历史,因为服务器时间是以当地时间计算的,也会滞后2分钟。

至于测试者,不清楚你在烦恼什么,因为所有这些都是在那里模拟的,而且当地时间与服务器时间相等。

 
MetaDriver:

好的,谢谢你,尼古拉,顺便说一下,祝你生日快乐......!

我把它挖出来了。

Skype,在半夜你会被提醒一个熟人的生日(作为广告 :)

谢谢你的蛋糕,它非常漂亮,但蜡烛有点难以消化 :o)

 
Valmars:

不,你说对了。服务器时间与计算机的时区无关,它对所有人都是一样的,并等于 "市场观察 "中最后记录的时间。

当某个服务器上的市场关闭(交易结束)时,在新的一周的下一个市场重新开放之前,不应触发止损。在你的案例中,情况似乎并非如此。报价已经停止进入终端,但它们仍在服务器上被处理,并触发了设定的停止。在一些经纪公司,止损不是由市场触发,而是由止损中设定的价格触发。这不是一个市场机制,而是一个 "厨房 "机制。

没有,在服务器上一切工作正常(MQ 模拟账户)。也就是说,当我没有连接的时候就会触发停止。但当我连接时,市场已经关闭。在市场观察 窗口中,记录了我的连接被切断前的最后一个刻度的时间。当我通过指定TimeCurrent()作为第二个值来请求交易历史 时,我并没有得到整个历史。虽然TimeCurrent()的帮助中说。

...时间值是在交易服务器上产生的,不取决于用户电脑上的时间设置

也就是说,我理解这个函数必须从服务器上返回市场观察 窗口中某一工具的最后到达的报价值,即使连接被切断,而且连接是在市场已经关闭的情况下进行的。在我的情况下,这并没有发生,我没有得到所有的历史。我不知道,帮助中没有提到这一点。

而我所说的可能错过的交易,好吧,如果你的时钟落后2分钟,这最后2分钟的交易将不会进入历史,因为服务器的时间是以当地时间计算的,也将落后同样的2分钟。

在这种情况下,如果你想要整个历史,你可以简单地添加一个更大的数字,提前一天,这将是一个保证,所有的交易将被选中。:)

至于测试员,不清楚什么不适合你,因为那里都是模拟的,而且本地与服务器是平等的。

但在测试器中,HistoryDealsTotal()函数有一个错误,它出现在可视化模式中。那里的时间模型是正确的。在某些情况下,只是一个拐杖的帮助。