[in] Количество запрашиваемых тиков. Если параметры from и count не указаны, то в массив ticks_array[] будут записаны все доступные последние тики, но не более 2000. Первый вызов CopyTicks() инициирует синхронизацию базы тиков, хранящихся на жёстком диске по данному символу. Если тиков в локальной базе не хватает, то недостающие тики...
//--- запросим тиковую историю с момента 1970.01.01 00:00.001 (параметр from=1 ms) int received=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,1,getticks);
if(received!=-1)
{
//--- выведем информацию о количестве тиков и затраченном времени времени PrintFormat("%s: received %d ticks in %d ms",_Symbol,received,GetTickCount()-start);
//--- если тиковая история синхронизирована, то код ошибки равен нулю if(GetLastError()==0)
{
success=true;
break;
}
elsePrintFormat("%s: Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",
_Symbol,received,GetTickCount()-start,_LastError);
}
胡说八道。
胡说八道。
只要 "突然"(c),就不存在系统性能有限的问题(不管是哪种)。
这些天我一直在仔细研究OnCalculate和Tick数据处理。前面写到,所有的事情都是为了避免 "冻结 "不正确的指标,但是如果我们真的想处理自上一次调用OnCalculate以来的整个tick数据流,那么在快速的价格运动(和回滚)中,我们应该得到一个相当 "深 "的数组,对tick数组的深度是否有任何限制?
我不希望听到这样的回答,比如 "OnCalculate将收到一个累积的tick(s)...,以优化..."。
谁已经在分析蜱虫数据,是否有理由这样担心?
这些天我一直在研究OnCalculate和tick数据处理。前面写到,所有的事情都是为了避免 "冻结 "不正确的指标,但是如果我们真的想处理自上一次调用OnCalculate以来的整个tick数据流,那么在快速的价格运动(和回滚)中,我们应该得到一个相当 "深 "的数组,对tick数组的深度是否有任何限制?
我不希望听到这样的回答,比如 "OnCalculate将收到一个累积的tick(s)...,以优化..."。
谁已经在分析蜱虫数据,是否有任何原因导致这种担心?
2008-2009年,雷纳特曾经写道:"蜱虫是没有幸福的,他举了一个专家的例子。反正虱子是跳过的。如果你需要,在每次通话时都能得到https://www.mql5.com/ru/docs/series/copyticks,但你还是会错过你想进入的50/50的顶部或底部。
为了宣传,我就在这里突然出现。我一直想弄清楚为什么这个东西停止工作,已经有一个月了。
等待开幕式上的新版本。
恢复与优化和加载历史数据有关的问题。
1.iClose/iOpen函数的正确工作问题,以及在这种情况下的iTime,是存在的,我认为期望一切都会完美是没有意义的。也许应该简单地将它们从MQL5中删除,以避免再犯同样的错误?(我有一个问题,但我没有时间去描述它,因为我已经找到了一个解决方案,另一个 "转折")
也许有一个解决方案,但我希望它能被记录下来,而不是另一个MQL5社区的扭曲。我们谈论的是如何处理异步请求,例如,这些请求反过来会同步本地数据库。
关键短语是"完成同步后,下一次调用CopyTicks()将返回所有请求的刻度。",先生们,你们怎么知道同步完成的时间呢?它被写成在同步 结束之前,CopyTicks()返回例如-1,但事实并非如此。结果在几次重新加载指标后,DB同步了,我们真的得到了整个数据集,但如果我不重新加载指标,我就得不到这个数据集,因为我不知道完成这个该死的同步的结果。
一个突出的例子是上一次的敲击,欧元兑美元出现了急剧的波动,虽然指标一直都在,而且这段时间也算是正常呈现,但在我重新加载后(改变了输入参数),指标开始不正确地反映信息,分别开始搜索指标中的错误(重新编译和重新加载几次),但没有任何帮助,然后那个 "奇迹 "发生了。"当你从一个指标中调用CopyTick()时,它将立即返回该符号可用的点数,同时开始同步 点数库",也许你应该创建(或拥有)能够告诉我们此刻本地数据库的同步还没有完成的函数,这个函数将减轻我们的任务,使我们能够为市场编写一个更高质量的产品。
P.S.:SymbolInfoTick 函数不幸地没有这个功能。
不幸的是,这个例子并不总是有效。
确切地说,10次中有1-2次有效。
但在上述情况下,它甚至一次都没有起作用。
还是一个问题,数据库是实时更新的吗?
正如我在上面写的,在有问题的整个时期,指标是工作的,即CopyTicks()函数 被定期 调用 ,但事实证明,它对本地数据库....,没有任何影响。这很奇怪....
2008-2009年,雷纳特曾经写道:"虱子是没有幸福的,举了一个专家的例子。蜱虫被跳过了,因为它是。如果需要,在每次通话时都能得到https://www.mql5.com/ru/docs/series/copyticks,但你还是会错过你想进入的50/50的顶部/底部。
恢复与优化和加载历史数据有关的问题。
1.iClose/iOpen函数的正确操作问题,以及在这种情况下的iTime,可能存在,没有理由期望一切都会完美。也许可以简单地将它们从MQL5中删除,以避免重蹈覆辙?(我有一个问题,但我没有时间去描述它,因为我已经找到了一个解决方案,另一个 "转折")
也许有一个解决方案,但我希望它能被记录下来,而不是另一个MQL5社区的扭曲。我们谈论的是如何处理异步请求,例如,这些请求反过来会同步本地数据库。
关键短语是"完成同步后,下一次调用CopyTicks()将返回所有请求的刻度。",先生们,你们怎么知道同步完成的时间呢?它被写成在同步 结束之前,CopyTicks()返回例如-1,但事实并非如此。结果在几次重新加载指标后,DB同步了,我们真的得到了整个数据集,但如果我不重新加载指标,我就得不到这个数据集,因为我不知道完成这个该死的同步的结果。
一个突出的例子是上一次的敲击,欧元兑美元出现了急剧的波动,虽然指标一直都在,而且这段时间也算是正常呈现,但在我重新加载后(改变了输入参数),指标开始不正确地反映信息,分别开始搜索指标中的错误(重新编译和重新加载几次),但没有任何帮助,然后那个 "奇迹 "发生了。"当你从指标中调用CopyTick()时,它将立即返回该符号可用的ticks,同时开始同步ticks基础",也许你应该创建(或拥有)能够告诉我们此刻本地数据库的同步还没有完成的函数,这个函数将减轻我们的任务,使我们能够为市场编写更好的最终产品。
P.S.:SymbolInfoTick 函数不幸地没有这个功能。
在这种情况下,SERIES_SYNCHRONIZED会返回什么?