Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.
建议保持计算机时间的准确性,这样可以减少记录错误的机会。
谢谢你的脚本:以下是这个脚本在1分钟17:36的结果
OnTick的特点是,它对买入/卖出的变化(信息流)和最后一次(交易流)都有反应。
因此,交易所交易工具的OnTick调用数量明明大于贸易交易 的数量。
为什么这样做呢?
在实时市场评论中,不可能给出零的最后交易量和最后交易量,因为有些交易者会爆炸。
还有一件事,在批量更新中,当一个工具上的两个或更多的ticks同时到达时,OnTick被调用一次。这使我们不至于减缓传入的报价流,也不至于为放慢速度的专家顾问系统排上一个巨大的刻度线。
很快,我们将启用时间和销售流程,这将使我们能够准确地分析交易信息。
建议保持计算机时间的准确性,这样可以减少记录错误的机会。
谢谢你的脚本:以下是这个脚本在1分钟17:36的结果
OnTick的特点是,它对买入/卖出的变化(信息流)和最后一次(交易流)都有反应。
因此,交易所交易工具的OnTick调用数量明明大于贸易交易的数量。
为什么这样做呢?
在实时市场评论中,不可能给出零的最后交易量和最后交易量,因为有些交易者会爆炸。
还有一件事,在批量更新中,当两个或更多的工具的ticks同时到达时,那么OnTick被调用一次。这使你不至于减慢传入的报价流,也不至于为减慢的EA做一个巨大的ticks队列。
很快我们将包括一个时间和销售流,这将使我们有能力准确分析交易的磁带。
当然,这一切都很好,但是对于有堆栈的FORTS来说,应该在MqlTick结构 中加入一个报价标志。
交易的 "倍增 "并不可怕--最糟糕的是,真正的交易会丢失。
P.S. 我的BAN与我的IP地址有关,请删除它,否则我每次都要重新安装我的浏览器来回答你。
Есть еще один момент с тем, что на пакетных обновлениях, когда одновременно приходят два и более тика по инструменту, то OnTick вызывается однократно. Это позволяет не тормозить поток входящих котировок и не делать огромную очередь тиков для тормозящих экспертов.
这种方法的结果如下。
应该是这样的。
纸张时间(mcs) 价格 数量
317922.000000 rts-12.14 [forts] 18:44:54 199000.000000 104140.000000 1.000000317923.000000 rts-12.14 [forts] 18:44:54 261000.000000 104130.000000 1.000000
317924.000000 rts-12.14 [forts] 18:44:54 587000.000000 104140.000000 1.000000
317925.000000 rts-12.14 [forts] 18:44:54 589000.000000 104140.000000 1.000000
317926.000000 rts-12.14 [forts] 18:44:54 691000.000000 104140.000000 1.000000
317927.000000 rts-12.14 [forts] 18:44:54 691000.000000 104140.000000 1.000000
317928.000000 rts-12.14 [forts] 18:44:54 842000.000000 104130.000000 2.000000
317929.000000 rts-12.14 [forts] 18:44:54 919000.000000 104150.000000 1.000000
317930.000000 rts-12.14 [forts] 18:44:55 337000.000000 104150.000000 1.000000
317931.000000 rts-12.14 [forts] 18:44:55 337000.000000 104150.000000 1.000000
317932.000000 rts-12.14 [forts] 18:44:55 337000.000000 104160.000000 1.000000
317933.000000 rts-12.14 [forts] 18:44:55 337000.000000 104160.000000 1.000000
317934.000000 rts-12.14 [forts] 18:44:55 337000.000000 104160.000000 3.000000
317935.000000 rts-12.14 [forts] 18:44:55 375000.000000 104140.000000 1.000000
317936.000000 rts-12.14 [forts] 18:44:55 375000.000000 104130.000000 5.000000
317937.000000 rts-12.14 [forts] 18:44:55 796000.000000 104130.000000 1.000000
317938.000000 rts-12.14 [forts] 18:44:55 799000.000000 104130.000000 2.000000
317939.000000 rts-12.14 [forts] 18:44:56 54000.000000 104160.000000 1.000000
317940.000000 rts-12.14 [forts] 18:44:57 235000.000000 104160.000000 1.000000
317941.000000 rts-12.14 [forts] 18:44:57 451000.000000 104140.000000 2.000000
317942.000000 rts-12.14 [forts] 18:44:57 487000.000000 104140.000000 6.000000
317943.000000 rts-12.14 [forts] 18:44:57 521000.000000 104160.000000 1.000000
317944.000000 rts-12.14 [forts] 18:44:57 621000.000000 104160.000000 1.000000
317945.000000 rts-12.14 [forts] 18:44:58 38000.000000 104160.000000 3.000000
317946.000000 rts-12.14 [forts] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12。14 [forts] 18:44:58 883000.000000 104140.000000 2.000000
317948.000000 rts-12.14 [forts] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 rts-12.14 [forts] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 rts-12.14 [forts] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 rts-12.14 [forts] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 rts-12.14 [forts] 18:44:58 996000.000000 104160.000000 1.000000
317953.000000 rts-12.14 [forts] 18:44:59 56000.000000 104160.000000 1.000000
317954.000000 rts-12.14 [forts] 18:44:59 560000.000000 104140.000000 1.000000
317955.000000 rts-12.14 [forts] 18:44:59 604000.000000 104140.000000 1.000000
317956.000000 rts-12.14 [forts] 18:44:59 647000.000000 104160.000000 1.000000
正如我们在MT5中得到的那样。
NE 0 18:44:54.483 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104140 Vol = 1
ES 0 18:44:54.639 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104130 Vol = 2
OR 0 18:44:54.720 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:54 Bid = 104130 Ask = 104150 Last = 104150 Vol = 1
NQ 0 18:44:54.983 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104150 Last = 104150 Vol = 1
FP 0 18:44:55.139 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104160 Last = 104160 Vol = 3
JO 0 18:44:55.174 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104140 Ask = 104160 Last = 104130 Vol = 5
GN 0 18:44:55.206 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 5
RM 0 18:44:55.592 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:55 Bid = 104130 Ask = 104160 Last = 104130 Vol = 2
IL 0 18:44:55.891 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:56 Bid = 104130 Ask = 104160 Last = 104160 Vol = 1
HJ 0 18:44:55.921 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:56 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
RI 0 18:44:57.032 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
PH 0 18:44:57.242 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
FG 0 18:44:57.297 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104140 Vol = 6
PF 0 18:44:57.328 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
JE 0 18:44:57.436 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:57 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
QD 0 18:44:57.838 FORTSTicksAction(RTS-12.14,M1) 时间 = 18:44:58 买入 = 104140 卖出 = 104160 最后 = 104160 Vol = 3
DP 0 18:44:58.514 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 13
RR 0 18:44:58693 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104140 Vol = 2
JP 0 18:44:58795 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:58 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CO 0 18:44:58.852 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
GN 0 18:44:59.358 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
MM 0 18:44:59.406 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104140 Vol = 1
IL 0 18:44:59.453 FORTSTicksAction (RTS-12.14,M1) Time = 18:44:59 Bid = 104140 Ask = 104160 Last = 104160 Vol = 1
CK 0 18:50:31.437 FORTSTicksAction(RTS-12.14,M1) 时间 = 18:50:24 买入 = 0 卖出 = 0 最后 = 104160 Vol = 1
KH 0 18:50:33.357 FORTSTicksAction (RTS-12.14,M1) Time = 18:50:24 Bid = 104080 Ask = 104180 Last = 104160 Vol = 1
这些都是在会议结束前的最后一次(即在清算结束前没有更低的报价)。
作为一个起点,我们以标有黑色的三条线为例。有两个问题。
1.红色标注的那些人去了哪里?
2.蓝色的亮点来自哪里?
另一个问题(可选)--"同时到达 "是指什么时间间隔?
这种方法的结果如下。
317945.000000 rts-12.14 [forts] 18:44:58 38000.000000 104160.000000 3.000000317946.000000 rts-12.14 [forts] 18:44:58 695000.000000 104160.000000 13.000000
317947.000000 RTS-12。14 [forts] 18:44:58 883000.000000 104140.000000 2.000000
317948.000000 rts-12.14 [forts] 18:44:58 986000.000000 104160.000000 1.000000
317949.000000 rts-12.14 [forts] 18:44:58 993000.000000 104160.000000 5.000000
317950.000000 rts-12.14 [forts] 18:44:58 993000.000000 104160.000000 5.000000
317951.000000 rts-12.14 [forts] 18:44:58 995000.000000 104160.000000 5.000000
317952.000000 rts-12.14 [forts] 18:44:58 996000.000000 104160.000000 1.000000
这些都是会议结束前的最后一次(即在清算结束前没有更低的报价)。
让我们把用黑色标出的三条线作为起点。有两个问题。
1.红色标注的那些人去了哪里?
2.蓝色的高光是怎么来的?
另一个问题(可选)--"同时到达 "是指什么时间间隔?
这不是一个区间,而是一个物理网络包。一个数据包在2-3-4个tick上到达,它们都被叠加在底座上,但OnTick调用一次。
还有一种情况是,专家顾问可能放慢了速度(忙),一个新的报价被添加到数据库中,但OnTick没有被调用,因为专家顾问正在工作。如果没有这样的机制,我们会很容易溢出专家顾问的传入报价队列,并开始向其发送旧的报价。
雷纳特!
非常感谢你的详细解释,但...
在我看来,这种做法对FORTS来说是不可接受的。
它应该是:报价-音量,而不是其他。
有11个报价,所以OnTick中应该有11个报价。
难道不是这样吗?
错了。
不要把向终端提供正确和准确的数据流与呼叫/通知专家的问题混淆起来。
所有的数据都准确无误地传递到终端,其基础。只要比较一下图表就知道了。
另一方面,专家顾问的启动是一个独立的、异步的通知。传入的数据包不能等待一些缓慢的专家,而必须立即应用到市场环境中,并且只能选择性地(如果专家已经完成了之前的调用)运行专家。
想一想这种情况:每秒有2个报价流,工作中的专家顾问,正在制动,进行交易,但它要求队列中新的等待报价不强加于终端的市场环境,直到EA完成其工作。
你能看到这将导致什么结果吗?整个终端将开始延迟所有进程,为的是保持市场对正在处理的报价状态的快照这一愚蠢的想法。而如果你考虑其他乐器,你就会拍死自己。
这就是为什么市场更新叠加始终是一个优先事项,即时性和独立于其他进程。所有其他人必须异步跟上市场的步伐。
错了。
不要把向终端提供正确和准确的数据流与呼叫/通知专家的问题混淆起来。
所有的数据都准确无误地传递到终端,其基础。只要比较一下图表就知道了。
另一方面,专家顾问的启动是一个独立的、异步的通知。传入的数据包不能等待一些缓慢的专家,而必须立即应用到市场环境中,并且只能选择性地(如果专家已经完成了之前的调用)运行专家。
想一想这种情况:每秒有2个报价流,工作中的专家顾问,正在制动,进行交易,但它要求队列中新的等待报价不强加于终端的市场环境,直到EA完成其工作。
你能看到这将导致什么结果吗?整个终端将开始延迟所有进程,为的是保持市场对正在处理的报价状态的快照这一愚蠢的想法。而如果你考虑其他乐器,你就会拍死自己。
这就是为什么市场更新叠加始终是一个优先事项,即时性和独立于其他进程。所有其他人必须异步跟上市场的步伐。
不同意。
比方说,我不使用杯子(买入和卖出都在滴答声中)。
如果不知道报价,我(专家)对FORTS的市场情况会有什么想法?
和音量?
事实上,对于FORTS来说,我们可能不会通过买入和卖出(它们都在股票上)。
代码中的变化是最小的--买入和卖出都没有传递给市场。
我不同意。
请重读我的解释几遍。
假设我不使用费率表(买入和卖出都在刻度线内)。
我(专家)对FORTS市场会有怎样的看法 与报价,并不清楚
以当前异步更新的报价,没有其他。
如果你被叫到了,就是这样--只有你在包里的报价在你面前。如果该批中有2个报价,你将只看到最后一个。因为没有人会把第一个报价传给专家顾问,并等待专家顾问完成操作。旧的报价已经消失了,如果你没有及时抓住它来解决,这意味着火车已经过去。使 用这句老话,你将无法执行任何事情。而当前/最后一个订单也很有可能被执行,因为在发送订单的时候,市场可能已经发生变化。
没有 "不要翻译出价/报价 "会有帮助。过时的蜱虫就是过时的蜱虫--没有人会冻结市场,不让你用旧蜱虫工作。
如果你愿意,你可以。
我们将与Time & Sales一起考虑提供直接访问最新的tick价格流,因此你可以访问连续tick。在市场审查中,我们以会议形式收集。这将给黄牛党带来更多机会。
Renat:
我们将与 "时间与销售 "一起,考虑提供直接访问最新的tick价格流,以便可以访问一致的tick。在Market Watch中,我们以会话方式收集。这将给黄牛党带来更多机会。
我仍然心存疑虑。
我将把这一点付诸行动。
明天我们将看到发生什么...