打勾的故事 - 页 5

 

还有。试图获取从今天开始的历史,我得到一个奇怪的结果。以下是剧本。

         MqlTick array[];
         MqlDateTime sTime;
         TimeToStruct( TimeCurrent(), sTime );
         sTime.hour = 0;
         sTime.min = 0;
         sTime.sec = 0;
         datetime start = StructToTime( sTime );
         Print( "Начало текущего дня: ",start );
         int num = CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 );
         
         int size = ArraySize( array );
         Print( __FUNCTION__,": num = ",num,", arraySize = ",size );
         for( int i = 0; i < size; i++ )
                {
                 if( i == 0 )
                        {
                         Print( __FUNCTION__,": Время прихода первого доступного тика: ",array[ i ].time );
                        }
                 else if( i == size-1 )
                        {
                         Print( __FUNCTION__,": Время прихода последнего доступного тика: ",array[ i ].time );
                        }
                }

结果是这样的。

HQ 0 18:38:20.974 test_CopyTicks_1178 (EURUSD,M1) 当前日开始:2015.10.15 00:00:00

JM 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: num = 1000000,arraySize= 1000000

CF 0 18:38:22.202 test_CopyTicks_1178 (EURUSD,M1) OnStart: 第一个可用tick到达时间:2011.12.19 00:00:08

RD 0 18:38:22.204 test_CopyTicks_1178 (EURUSD,M1) OnStart: 最后可用tick到达时间: 2012.01.06 18:41:26

显然,它不能像这样写:CopyTicks( _Symbol, array, COPY_TICKS_ALL, start, 1000000 )

 
Tapochun:

可能是自己写的。嗯,你如何在这里释放以前占用的内存?

MqlTick 数组本身有20,000,000个元素,需要大约800 mb的内存。再加上在终端存储相同的原始数组,信息被累积并输出。

因此,如果你想处理海量数据,只有一条路可走--64位版本和8GB的内存。幸运的是,如今它的成本高得离谱。

 
Karputov Vladimir:
现在不需要蜱虫收集器了--蜱虫历史 可在终端获得。

它的可用性是取决于DC的善意,还是在服务器端硬性规定要保存ticks?

 
Renat Fatkhullin:

MqlTick 数组本身有20 000 000个元素,需要大约800 mb的内存。加上终端中相同的初始数组的存储,信息在这里被积累和输出。

因此,如果你想处理大量的数据,只有一条路可走--64位版本和8GB的内存。幸运的是,如今它的成本高得离谱。

如果你要求小批量供货怎么办?比方说,每个人有100万支?应该不会有问题,对吗?我的意思是,查询-处理-下一个查询。

或者数据会积累起来,RAM会用完?

 
Alexey Volchanskiy:

它的可用性将取决于经纪公司的善意,还是嘀嗒历史存储被硬塞进了服务器侧?

MT5服务器从一开始就一直积累和存储tick历史

它不能在客户终端中被禁用。

 

关于交易、自动交易系统和测试交易策略的论坛

打勾历史

Tapochun, 2015.10.15 15:08

是的,加入CopyTicks()重载,就像其他Copy...函数一样,这将是一件好事。要能够从日期到日期。现在,例如,你不能得到从当天开始到当前时刻的ticks。
能否实施?
 
Tapochun:
这可以实施吗?
我们能否做到这一点
 
Renat Fatkhullin:
你能
谢谢你,非常有帮助。目前,要 "驾驭 "获得蜱虫有点困难。
 

蜱虫被逐月堆积到文件中,对吗?这里有一张截图。

勾选文件

那么你是如何读取这些文件的呢?还是只能通过策略测试者

 
Karputov Vladimir:

蜱虫被逐月堆积到文件中,对吗?这里有一张截图。

那么你是如何读取这些文件的呢?还是只能通过策略测试者

我不能直接用记事本阅读它们。