错误、漏洞、问题 - 页 1720

 
Karputov Vladimir:

错误就在这里(倒逗号之间的空格)。


这是真的。现在开始工作了。谢谢!:-)
 
文件 Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc的大小为 6Gb。情况不应该是这样的。
 
fxsaber:
文件Bases\BCS-MetaTrader5\ticks\Si-12.16\201610.tkc的大小为6Gb。情况不应该是这样的。

可能在第10个月,tick数据的结构已经发生了变化(也许引入了很多额外的信息)。或者,也许只是因为这个符号已经成为活跃的交易。

现在,当用这样的脚本进行查询时。

//+------------------------------------------------------------------+
//|                                                    CopyTicks.mq5 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.01"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000;  // количество запрашиваемых тиков
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20, " Mb");
  }
//+------------------------------------------------------------------+

在服务器 "Open-Broker "上,刻度线的大小(在第10个月,它不是最终的,刻度线继续被上传)。

勾选数据库大小

2016.10.05 07:34:05.886 Terminal        MetaTrader 5 x64 build 1434 started (MetaQuotes Software Corp.)
2016.10.05 07:34:05.888 Terminal        Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 3800 / 8077 Mb, HDD: 57955 / 233310 Mb, GMT+02:00
2016.10.05 07:34:05.888 Terminal        C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
附加的文件:
CopyTicks.mq5  2 kb
 
Karputov Vladimir:

可能在第10个月,打勾数据的结构发生了变化(也许输入了很多额外的信息)。或者,也许只是因为这个符号已经成为活跃的交易。现在,当被这样一个脚本查询时。

在服务器 "Open-Broker "上,刻度线的大小(在第10个月,它不是最终的,刻度线继续被上传)。

脚本

#define  TOSTRING(A) #A + " = " + (string)(A) + " "

void OnStart()
{
  MqlTick Ticks[];
  
  const int Amount = CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, D'2016.10.01' * 1000, 1000000000);
  
  if (Amount > 0)
    Print(TOSTRING((Amount * sizeof(MqlTick)) >> 20) + "Mb " + TOSTRING(Ticks[0].time) + TOSTRING(Ticks[Amount - 1].time));
}

在空终端(一个没有专家顾问和指标的图表)上的结果(在其他符号上运行会得到相同的结果)。

2016.10.05 08:16:56.824 Scripts script Test (Si-12.16,M1) removed
2016.10.05 08:16:56.821 MemoryException 52000000072 bytes not available
2016.10.05 08:16:56.816 Scripts script Test (Si-12.16,M1) loaded successfully
2016.10.05 08:10:10.408 Terminal        RAM: 81 Mb reserved, 491 Mb committed

 
Karputov Vladimir:

可能在第10个月,tick数据的结构已经发生了变化(也许引入了很多额外的信息)。或者,也许只是因为这个符号已经成为活跃的交易。

现在,当用这样的脚本请求时。

在服务器 "Open-Broker "上,刻度线的大小(在第10个月,它不是最终的,刻度线继续被上传)。

我没有足够的耐心--在文件大小 为7.5Gb的201610.tkc时决定中断蜱虫的下载。
 

如果你摸索到了这个文件,即使重启后也会有一个错误。

如果从10月1日开始要求1000个刻度,那么每次启动后相应的kc文件就会不断增长。简而言之,这个错误被搞砸了。

 
Karputov Vladimir:
我没有足够的耐心--在文件大小为7.5Gb的201610.tkc时,我决定中断下载ticks。

虫子!10月份的所有信息都由指标显示。而且文件还在无休止地增长。

我需要关键的更新建设,因为它不可能工作--磁盘被堵塞了,更不用说流量了。

 

大家好

谁遇到了以下奇怪的错误

例如,我的专家顾问试图在WDOX16 上进行交易,得到的答复是=0

同时写出操作成功:结果 = 0 符号 WDOX16 volume 1.0 action 1 tp 3264.5 sl 3239.5 type 0 price 3250.0 操作成功完成。

但仍然没有任何地方打开。?


 
fxsaber:

脚本

在空终端(一个没有EA和指标的图表)上的结果(在其他符号上运行会得到相同的结果)。

你总是要求有一百万只虱子吗?仅仅是每个阵列就有49千兆字节。从1月到现在,Si-12.16的Ticks是15789962。

在你的基础上,有一个小脚本,按月计算蜱虫数量。

void OnStart()
  {
   MqlTick Ticks[];
   int Amount=CopyTicks(_Symbol,Ticks,COPY_TICKS_ALL,D'2016.01.01'*1000,ulong(100000000));
   MqlDateTime str;
   TimeToStruct((Ticks[0].time_msc-Ticks[0].time_msc%1000)/1000,str);
   char m=(char)str.mon;
   long n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
   int pos=0;
   for(int i=0;i<Amount;i++)
     {
      if(Ticks[i].time_msc>=n || i==Amount-1)
        {
         PrintFormat("Month %d: %d ticks, %d Mb",m,i-1-pos,(sizeof(MqlTick)*(i-1-pos))>>20);
         m++;
         n=StringToTime(StringFormat("01.%d.2016",m+1))*1000;
         pos=i;
        }
     }
  }


并得出这个结果。

2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 1: 122413 ticks, 6 Mb
2016.10.05 10:31:51.249 CalcTick (Si-12.16,M1)  Month 2: 78627 ticks, 3 Mb
2016.10.05 10:31:51.252 CalcTick (Si-12.16,M1)  Month 3: 758652 ticks, 37 Mb
2016.10.05 10:31:51.253 CalcTick (Si-12.16,M1)  Month 4: 388578 ticks, 19 Mb
2016.10.05 10:31:51.254 CalcTick (Si-12.16,M1)  Month 5: 181053 ticks, 8 Mb
2016.10.05 10:31:51.255 CalcTick (Si-12.16,M1)  Month 6: 408080 ticks, 20 Mb
2016.10.05 10:31:51.257 CalcTick (Si-12.16,M1)  Month 7: 458366 ticks, 22 Mb
2016.10.05 10:31:51.260 CalcTick (Si-12.16,M1)  Month 8: 867396 ticks, 43 Mb
2016.10.05 10:31:51.297 CalcTick (Si-12.16,M1)  Month 9: 10973162 ticks, 544 Mb
2016.10.05 10:31:51.301 CalcTick (Si-12.16,M1)  Month 10: 1555625 ticks, 77 Mb


下面是它在磁盘上的样子


 
Alexey Da:

你总是要求有一百万只虱子吗?仅每个阵列就有49千兆字节。从1月到现在,Si-12.16的点位是15789962。

不,只有在这种情况下。如果我要求一万亿次,而它们实际上不到2000万次,为什么要尝试为一万亿次分配内存呢!?

一万亿是有保证金的。但这丝毫不能说明我的要求有那么多。它只说 "给我从指定日期开始的所有刻度线"。

在你的基础上,有一个小脚本,按月计算蜱虫数量。

并得出这个结果。

这是它在磁盘上的样子。

你在Otkritie做实验,我有BCS。你的截图和我的以及卡尔普托夫的(同样的开局)没有任何共同之处--都有更多的10月-tkc。而且它一直在变大!