错误、漏洞、问题 - 页 1287

 
paladin800:
格林威治标准时间。
TimeGMT()
 
artmedia70:
TimeGMT()。
是的,我也偶然发现了这个功能。我不知道如何将外部参数中的一个变量设为凌晨4点,另一个设为下午5点,然后将TimeGMT()的结果 与它们进行比较。
 
papaklass:

为什么我的资料在CodeBase中显示有4个发布的代码?

但如果我通过菜单进入CodeBase,选择 "我的代码",我有7个已发布的代码。

有什么诀窍?

计算方法确实不同。用户的成就没有考虑到从mql4.com导入的 出版物,你有3份。

只有最初在mql5.com上发表的出版物才被计算在内--你有4个这样的出版物=三个MT5+一个MT4。

 

我想大家都注意到了,你在这里登录你的账户时不需要区分大小写了。当我现在在这里写作时,你可以看到我的登录名是用小字母和数字写的。如果我用所有大写字母或大写小写字母登录,我还是会被登录的。好吧,它没有以任何方式指导我。

在他的ME5中创建了一个项目,它应该连接另一方,不舒服的是,当窗口添加一个用户来写一个登录的伴侣时,出现的信息是没有这样的。我在ServiceDesk询问,他们说我必须尊重字母的大小写。即在这里记录并不重要,但在添加到ME5项目时就很重要了。如果这个案子在这里不重要,那么让它在项目中也不重要。
 
zhserg:

你能告诉我出了什么问题吗,至少是大概。会不会是因为WinXP的原因?

在WinXP中检查了 - 你的代码可以工作。

你的对象是否出现在图表的对象列表中?

 
我将我的申请 发布 这里的服务台,以加快其处理速度。(已经过了一个星期了,还没有回复。)已开放开始时间:2015.03.03 10:49,#1169959

终端版本和比特率

MetaTrader 5, build 1085

问题描述

搜索订单或交易的时间对其数量的依赖程度。很明显,为历史上每个订单调用的HistoryOrderGetDouble、HistoryOrderGetInteger、HistoryDealGetInteger、HistoryDealGetDouble等函数的运行时间应该随着它们处理的订单数量的增加而线性增加。

总执行时间=每个订单的查询执行时间*订单数量。

在现实中,情况并非如此。相反,有一个显而易见的权力依赖,即毫秒数=0.000005*n^2,其中n 是要处理的订单数量。

行动的顺序

这个脚本显示了现有的问题。

//+------------------------------------------------------------------+
//|                                             TestSpeedHistory.mq5 |
//|                                 Copyright 2015, Vasiliy Sokolov. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property  copyright "Copyright 2015, Vasiliy Sokolov."
#property  link      "http://www.mql5.com"
#property  version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
//---
   HistorySelect(0, TimeCurrent()+100);
   for(int end_order_index = 1000; end_order_index < HistoryOrdersTotal(); end_order_index+=1000)
   {
      uint tiks_begin = GetTickCount();
      TestProgression(end_order_index);
      uint tiks = GetTickCount() - tiks_begin;
      printf("Parsing " + (string)end_order_index + " for " + (string)tiks + " msc.");   
   }
}

void TestProgression(int end_order_index)
{
   for(int i = 0; i < end_order_index; i++)
   {
      ulong id = HistoryOrderGetTicket(i);
      string symbol = HistoryOrderGetString(id, ORDER_SYMBOL);
      double priceSetup = HistoryOrderGetDouble(id, ORDER_PRICE_OPEN);
      double volumeSetup = HistoryOrderGetDouble(id, ORDER_VOLUME_INITIAL);
      long tSetup = HistoryOrderGetInteger(id, ORDER_TIME_SETUP_MSC);
      string comment = HistoryOrderGetString(id, ORDER_COMMENT);
      ENUM_ORDER_TYPE type = (ENUM_ORDER_TYPE)HistoryOrderGetInteger(id, ORDER_TYPE);
      ENUM_ORDER_STATE state = (ENUM_ORDER_STATE)HistoryOrderGetInteger(id, ORDER_STATE);
      ulong magic = HistoryOrderGetInteger(id, ORDER_MAGIC);
      HistoryDealGetInteger
   }
}
//+------------------------------------------------------------------+

获得的结果

似乎很明显,这个脚本的运行时间应该随着end_order_index的增加而线性增加。因此,如果在TestRegression中处理1000个订单需要16ms,那么处理2000个订单应该需要16*2=32ms。但事实并非如此。相反,这种依赖性是一种阶梯式的依赖性。脚本显示以下信息。

2015.03.03 12:14:29.385 TestSpeedHistory (USDCHF,D1)    Parsing 22000 for 4025 msc.
2015.03.03 12:14:25.354 TestSpeedHistory (USDCHF,D1)    Parsing 21000 for 3666 msc.
2015.03.03 12:14:21.689 TestSpeedHistory (USDCHF,D1)    Parsing 20000 for 3323 msc.
2015.03.03 12:14:18.358 TestSpeedHistory (USDCHF,D1)    Parsing 19000 for 2995 msc.
2015.03.03 12:14:15.365 TestSpeedHistory (USDCHF,D1)    Parsing 18000 for 2715 msc.
2015.03.03 12:14:12.658 TestSpeedHistory (USDCHF,D1)    Parsing 17000 for 2418 msc.
2015.03.03 12:14:10.243 TestSpeedHistory (USDCHF,D1)    Parsing 16000 for 2106 msc.
2015.03.03 12:14:08.134 TestSpeedHistory (USDCHF,D1)    Parsing 15000 for 1872 msc.
2015.03.03 12:14:06.266 TestSpeedHistory (USDCHF,D1)    Parsing 14000 for 1622 msc.
2015.03.03 12:14:04.645 TestSpeedHistory (USDCHF,D1)    Parsing 13000 for 1388 msc.
2015.03.03 12:14:03.244 TestSpeedHistory (USDCHF,D1)    Parsing 12000 for 1170 msc.
2015.03.03 12:14:02.074 TestSpeedHistory (USDCHF,D1)    Parsing 11000 for 983 msc.
2015.03.03 12:14:01.097 TestSpeedHistory (USDCHF,D1)    Parsing 10000 for 796 msc.
2015.03.03 12:14:00.295 TestSpeedHistory (USDCHF,D1)    Parsing 9000 for 639 msc.
2015.03.03 12:13:59.657 TestSpeedHistory (USDCHF,D1)    Parsing 8000 for 500 msc.
2015.03.03 12:13:59.164 TestSpeedHistory (USDCHF,D1)    Parsing 7000 for 358 msc.
2015.03.03 12:13:58.796 TestSpeedHistory (USDCHF,D1)    Parsing 6000 for 266 msc.
2015.03.03 12:13:58.537 TestSpeedHistory (USDCHF,D1)    Parsing 5000 for 171 msc.
2015.03.03 12:13:58.369 TestSpeedHistory (USDCHF,D1)    Parsing 4000 for 94 msc.
2015.03.03 12:13:58.277 TestSpeedHistory (USDCHF,D1)    Parsing 3000 for 47 msc.
2015.03.03 12:13:58.229 TestSpeedHistory (USDCHF,D1)    Parsing 2000 for 15 msc.
2015.03.03 12:13:58.208 TestSpeedHistory (USDCHF,D1)    Parsing 1000 for 16 msc.


处理时间对订单数量的依赖性的函数。

预期的结果

这个操作预计需要O(n) 时间,而它需要O(n^2)

更多详情

为了确保该脚本正常工作,你应该在一个有大量交易和订单的账户上运行它。

所附的图表是时间与订单数量的函数关系。它清楚地说明了函数操作对订单量的依赖程度

重要提示: 根据我的观察,这种令人不快的依赖性大约在2014年夏初出现在MetaTrader 5。在那之前,一切都在快速工作。

 
日安!我希望我的问题发在正确的部分。我试着在Wine下测试MT5,它没有工作。当我启动Wine时,它显示了一个错误,尽管应用程序正在工作。也不清楚将证书存放在哪里。我试着安装它或简单地复制应用程序,错误都是一样的。我甚至禁用了声音,以备不时之需,但没有帮助。也许可以在某个地方下载一个稳定的、明确的、在Linux下工作的版本?
 
polik:
日安!我希望我把我的问题放在正确的部分。我试着在Wine下使用MT5,但它并不工作。Wine启动时显示错误,尽管应用程序正在工作。也不清楚将证书存放在哪里。我试着安装它或简单地复制应用程序,错误都是一样的。我甚至禁用了声音,以备不时之需,但没有帮助。我不知道在哪里可以下载一个稳定的版本,可以明确地在Linux下工作。

下午。

错误是什么?它是什么系统?葡萄酒版本?

 
C-4:
我在这里发布我在服务台的请求,以加快其处理速度。(已经过了一个星期了,没有回复。)已开通开始时间:2015.03.03 10:49,#1169959

终端版本和比特率

MetaTrader 5, build 1085

问题描述

搜索订单或交易的时间对其数量的依赖程度。很明显,为历史上每个订单调用的HistoryOrderGetDouble、HistoryOrderGetInteger、HistoryDealGetInteger、HistoryDealGetDouble等函数的运行时间应该随着它们处理的订单数量的增加而线性增加。

总执行时间=每个订单的查询执行时间*订单数量。

在现实中,情况并非如此。相反,检测到了一个功率依赖,其中毫秒=0.000005*n^2,其中n 是要处理的订单数量。

在计算大量指标时也会出现类似的模式。这一切都从1079版突然开始。
我有8个TFs同时开放,每个TFs有10个指标。这是不可能的工作。

 

谁在现实生活中拥有这个.....

htimes不断徘徊的mt4