В парадигме MT тик - это то, что пришло от биржи. Единица стрима(-ов). Поэтому два подряд идущих тика могут полностью совпадать (MqlTick), но при этом не обозначать одно и то же событие. Помимо MqlTick-данных есть еще номер тика, который не показывается в MT. И есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.
if (SymbolInfoTick(_Symbol, Ticks[0])) Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего FirstRun = false; } }
if (SymbolInfoTick(_Symbol, Ticks[0])) Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего FirstRun = false; } }
当非零时,CopyTicks内部正在寻找(可能是二进制搜索)开始的地方--内部基地的索引。
请增加一个函数,按时间返回数据库中的索引。那么这个任务将有可能得到最佳解决
获得从_时间到_时间的刻度的最佳(最快)算法是什么?
出于充分的理由,"什么是蜱虫?"这一主题已被删除。我将从幸存的历史 中给出我的一些答案
В парадигме MT тик - это то, что пришло от биржи. Единица стрима(-ов). Поэтому два подряд идущих тика могут полностью совпадать (MqlTick), но при этом не обозначать одно и то же событие. Помимо MqlTick-данных есть еще номер тика, который не показывается в MT. И есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.
连续的两个ticks(引起一个Tick/Calculate事件)在结构上可能是相同的MqlTick(所有价格和数量以及时间和标志都是相等的),但实际上是不同的。Bid/Ask总是TickSize的倍数。 Last(不在交易所)可能不是TickSize的倍数。 TickSize可以比Point大很多倍(例如,看RTS)。因此,在这种情况下谈论点是不太正确的。
这可能是有用的。SymbolInfoTick是一个非同步化的函数。这意味着它可能在OnTick的不同地方返回不同的ticks。此外,即使你在OnTick的开头调用SymbolInfoTick,产生的tick也不会是OnTick触发的Tick事件的发起者。其MqlTick结构的字段不会等于来自交易所的tick,因为这些字段是由终端自己合成的,等于Marketwatch的值。
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
结果
应该返回0,但却返回1。Ticks[] 不变。虫子!
在策略测试器中启动一个专家顾问
{
static bool FirstRun = true;
if (FirstRun)
{
MqlTick Ticks[1];
if (SymbolInfoTick(_Symbol, Ticks[0]))
Print(CopyTicks(_Symbol, Ticks, COPY_TICKS_ALL, Ticks[0].time_msc + 1)); // Сколько тиков со временем больше последнего
FirstRun = false;
}
}
结果
它应该返回0,但却返回1。在这种情况下,Ticks[]并没有改变。虫子!
会不会是周末呢?
来自帮助。CopyTicks 该函数获取终端在当前工作时段 积累的ticks_array。
会不会是周末呢?
来自帮助文件。CopyTicks 该函数将终端在当前工作时段 积累的刻度线放入ticks_array数组。
CopyTicks的性能问题。
ロボル
BCS
这是打勾指标 数据。在这两种情况下,都有2-3千只蜱虫上传。但在机器人中,它的速度超过一个数量级。
白天在外汇市场看到了同样的速度--那时市场更加灵活。Copitix似乎正在放慢活跃市场观察的速度。
在这两种情况下,唯一的图表和唯一的指标。而kopitix肯定已经在数据库/缓存中上传了报价。
1) 两者都有堆积物吗?
2)交易/信息标签是否在其原始 线程中分开?复杂的线程需要重新计算,简单的发放
3)实际的要求是什么?
4)通过多少次查询来验证结果?遵循的测试规则是什么,具体是怎样的:考虑冷启动、抛弃异常值、每个系列结果的可重复性、复制的代码。
一般来说,数字结果前面应该有一个准确的代码,以便任何人都可以重复它们。否则,讨论它就没有意义了。
1) 两者都有堆积物吗?
2)交易/信息标签是否在其原始 线程中分开?复杂的线程需要重新计算,简单的发放
3)实际的要求是什么?
4)通过多少次查询来验证结果?遵循并准确地遵循了测试规则:核算冷启动、丢弃异常值、每个系列结果的可重复性、复制的代码。
一般来说,数字结果前面应该有一个准确的代码,以便任何人都可以重复它们。否则就没有讨论的必要了。
我给了你一个确切代码的链接。
我们会去看看的。
但对其中一个服务器中缺少一个翻斗车,有很大的疑问。滚揉机没有渲染,这并不重要。如果一个符号有,它的数据总是存在的,并且在要求ticks时,一个更复杂的发行算法会发挥作用。