祝大家今天愉快。
有必要在 "Otkritie "经纪人的真实刻度上测试交易算法。
因此,该算法在在线模式下和在测试器中的真实刻度模式下显示出不同的结果。
这就是为什么下一步是收集实时的ticks(真实ticks),并将其与copyTicksRange()函数得到的tick历史(历史ticks)进行比较。
蜱虫是在2020年1月21日的SBRF期货上收集的。
有趣的结果已经出来了,也出现了一些问题。
1.真实点位和历史点位的数量有很大不同,但交易日开始和结束时的点位是相同的。
也许,这是受处理程序OnTick()的一个特性影响,它可以跳过对ticks的处理。
2.超过一半的历史性刻度,除了标准标志(TICK_FLAG_BID ...等),还有一个额外的标志9位启用。
我们在实际刻度中看不到它--没有一个刻度是启用9位标志的。
3.我们无法发现真实和历史记录之间的任何系统差异,以及历史记录中包含的第9位。
历史记录可以完全对应于真实记录,其标志中的第9位可以被打开或关闭。
即使在交易活动较少的时期,真实的和历史的刻度线也可能不一致,因为在终端的刻度线接收不是那么密集。
而这些问题也是相应的。
对开发者来说--嘀嗒旗的9位是什么意思?
而对社会来说--有人遇到过这样的碰撞吗?
你如何在真实的蜱虫上测试算法?只在网上?
附上有收集器和ticks分析器的文件。
以及2020年1月21日SBRF-3.20的真实刻度线。
你用你的蜱虫收集器让我笑了:)
以 "所有行业的胶带 "为基础。
https://www.mql5.com/ru/code/16210
已完成
而忘记了交换工具的测试器

- www.mql5.com
上面的例子只是汇总交易磁带的一种方式,再次提到的是历史。
我不想这样做,因为这会减慢算法的速度。首先,我们对那些由OnTick()事件处理的ticks感兴趣。
忘记了MetaTrader一般的测试器还是MT5的测试器?
这个例子只是交易汇总的方法之一,而且同样是对历史的一种参考。
1.你不会想这样做的,因为它拖慢了算法。首先,我们对那些由OnTick()事件处理的ticks感兴趣。
2.原则上忘记了交易所工具的测试器,还是MT5的测试器?
1.没有什么会放缓,也没有什么会放缓。
你已经得到了一个现成的解决方案,只需要根据你的需要 进行调整。
OnTick()事件并不显示选区的所有变化,也就是说,它并不 考虑所有的刻度线。
这里有一个简单的例子供你检查
//+------------------------------------------------------------------+ //| Ticks_test.mq5 | //| Copyright 2019 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019 prostotrader" #property link "https://www.mql5.com" #property version "1.00" //--- bool is_book; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { is_book = MarketBookAdd(Symbol()); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- if(is_book == true) MarketBookRelease(Symbol()); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { Print(__FUNCTION__ + " Tick is done!"); } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(Symbol() == symbol) { Print(__FUNCTION__ + " Tick is done!"); } } //+------------------------------------------------------------------+
2020.01.23 16:56:53.226 Ticks_test (GOLD-3.20,M1) OnTick Tick is done! 2020.01.23 16:56:53.226 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:53.712 Ticks_test (GOLD-3.20,M1) OnTick Tick is done! 2020.01.23 16:56:53.712 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:53.930 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:53.996 Ticks_test (GOLD-3.20,M1) OnTick Tick is done! 2020.01.23 16:56:53.996 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:54.016 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:54.280 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done! 2020.01.23 16:56:54.392 Ticks_test (GOLD-3.20,M1) OnBookEvent Tick is done!
2.对于交易所工具(已经为股票写过了)
添加
如果你决定从外汇市场 "爬 "到交易所,那么我建议你在这里找到这个话题。
初学者的帮助 "部分,并详细阅读它。
在交易所,Glass,而不是OnTick(),是一切的 "头"。1.没有什么会放缓,也没有什么会放缓。
你已经得到了一个现成的解决方案,只需要进行调整以适应你的需求。
OnTick()事件并不显示玻璃上的所有变化,也就是说,不是所有的刻度 都被考虑进去了
这里有一个简单的例子供你检查
2.对于交易所工具(已经为股票写过了)
添加
如果你决定从外汇市场 "爬 "到交易所,那么我建议你在这里找到这个话题。
"初学者指南 "部分,并详细阅读它。
在交易所,Glass,而不是OnTick(),是一切的 "头"。1.你是对的。OnTick()事件与OnBookEvent()事件不完全相关。
第一个事件是处理新点的到来--报价的变化、交易所的交易。
第二个事件是处理tick的变化,这并不总是导致股票交易。
由于交易所的交易不一定要通过证券交易所。
。也就是说,我们可以说第一个事件是指交易证券交易所,而第二个事件是指证券交易所。
2.用什么来分析和决策--交易条或滑块或两者,取决于交易算法。
看来我将不得不使用具有毫秒周期的OnTimer()事件来分析带子。
我将继续进行试验。
1.你是对的。OnTick()事件与OnBookEvent()事件不完全相关。
第一个事件是处理新标签的到来 - 报价的变化,股票交易。
第二个事件是处理tick的变化,这并不总是导致股票交易。
交换交易也不一定要通过杯子。
也就是说,我们可以说第一个事件是指交易的磁带,第二个是指杯子。
2.用什么来分析和决策--交易代码或市场或两者--取决于交易算法。
看来,我将不得不使用具有毫秒周期的OnTimer()事件来分析那片交易。
我将继续进行试验。
这不是一个好主意。
你必须决定你想要什么--是实时工作还是通过计时器工作......
你的头脑处于混沌状态。
堆栈中的任何变化都是一个滴答,其中包括 "交易进给"。
当OnBookEvent()被触发时,这意味着。
1.已发生交易或
2.发生了一个新的ASK,或
3.出现了一个新的投标,或
4.有人撤回了他们的待定订单,或
5.5.ASK音量改变或
6 投标量已经改变
所有这些都反映在OnBookEvent()....。
好运!
添加
与FOREX相比,你用电脑DC 进行交易。
在外汇市场上,你有 真正的 对手(个人和企业)!
交易所只对你的订单进行 "配对"(当然不是免费的:)) 。

- www.mql5.com
不像外汇, 你用直流电电脑 交易。
在外汇市场上,你有 真正的 对应方(真正的个人和企业)!这就是为什么你要在外汇市场上进行交易。
交易所只对你的订单进行 "配对"(当然不是免费的:)) 。
你听说过ECN吗?

- 2019.07.25
- www.mql5.com
你为什么来这里?
继续在外汇市场上寻找圣杯...
你在这里的私人领地是什么?
而且告诉别人你不知道该怎么做也是不礼貌的。这表明你的发展水平有点低。
致开发者--嘀嗒标志中的第9位是什么意思?
我不知道第9位,问题是关于无记录的第7位。
新版MetaTrader 5 build 1930:MQL5中的浮动图表窗口和.Net库
斯拉瓦, 2018.12.04 11:09
Alain Verleyen:
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 2 tick: 2018.12.03 00: 52: 27.743 1.13335 / 1.13348 / 0.00000 0 flags:230
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 3 tick: 2018.12.03 00: 52: 27.821 1.13327 / 1.13343 / 0.00000 0 flags:230
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 4 tick: 2018.12.03 00: 52: 27.888 1.13326 / 1.13343 / 0.00000 0 flags:226
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 5 tick: 2018.12.03 00: 52: 27.965 1.13327 / 1.13345 / 0.00000 0 flags:230
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 6 tick: 2018.12.03 00: 52: 28.194 1.13328 / 1.13346 / 0.00000 0 flags:230
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 7 tick: 2018.12.03 00: 52: 28.265 1.13328 / 1.13346 / 0.00000 0 flags: 96
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 8 tick: 2018.12.03 00: 52: 28.327 1.13326 / 1.13344 / 0.00000 0 flags:230
2018.12.03 09: 58: 06.898 TicksInfo (EURUSD, M5) EURUSD: 9 tick: 2018.12.03 00: 52: 28.405 1.13326 / 1.13344 / 0.00000 0 flags: 96
2018.12.03 09: 58: 06.899 TicksInfo (EURUSD, M5) EURUSD: 10 tick: 2018.12.03 00: 52: 28.809 1.13326 / 1.13344 / 0.00000 0 flags: 96
2018.12.03 09: 58: 06.899 TicksInfo (EURUSD, M5) EURUSD: 11 tick: 2018.12.03 00: 52: 29.289 1.13326 / 1.13344 / 0.00000 0 flags: 96
显然,该标志是由第7位(值为128,未记录),有可能知道该值吗?
这是一个服务标志,如果tick因为任何原因没有设置TICK_FLAG_BID标志,而tick应该被应用到一个条上,则由数据源设置。
祝大家今天愉快。
有必要在 "Otkritie "经纪商的真实刻度上测试交易算法。
因此,该算法在在线模式下和在测试器中的真实刻度模式下显示出不同的结果。
以此为出发点,下一步是收集真实蜱虫,并将其与历史(历史蜱虫)进行比较,由CopyTicksRange()函数获得。
蜱虫是在2020年1月21日的SBRF期货上收集的。
有趣的结果已经出来了,也出现了一些问题。
1.真实刻度和历史刻度的数量差别很大,但在交易日的开始和结束时有相同的刻度。
也许,这是受处理程序OnTick()的一个特性影响,它可以跳过对ticks的处理。
一半以上的历史性刻度,除了标准标志(TICK_FLAG_BID ...等)外,还有一个额外的标志9位启用。
我们在实际刻度中看不到它--没有一个刻度是启用9位标志的。
3.我们无法发现真实和历史记录之间的任何系统差异,以及历史记录中包含的第9位。
历史记录可以完全对应于真实记录,其标志中的第9位可以被打开或关闭。
即使在交易活动较少的时期,真实的和历史的刻度线也可能不一致,因为在终端的刻度线接收不是那么密集。
而这些问题也是相应的。
对开发者来说--嘀嗒标志中的9位是什么意思?
而对社会来说--有人遇到过这样的碰撞吗?
你如何在真实的蜱虫上测试算法? 只在网上?
附上有收集器和ticks分析器的文件。
以及2020年1月21日SBRF-3.20的真实刻度线。