搜索
风险提示
智讯云投资华泰证券自助外汇

[咨询探讨] 请教大神们,关于MT4的tick运行机制

时间:2015-4-26 18:51 10 2712 | 复制链接 |

该用户从未签到

5

主题

4432

帖子

1万

积分

积分
12552
MT4的tick每跳动一次,则start主函数运行一遍。那么问题来了,如果start主函数内有大量的计算的话,会不会在一个tick内无法完成,这样会不会导致本该发出的价格指令得不到切实的运行呢?如果是这样的话,在编程方面做何应对为妥?先谢谢各位大神了。
http://88cf.vip/bbs/?fromuid=474

签到天数: 1054 天

[LV.10]以坛为家III

12

主题

2611

帖子

6567

积分

积分
6567
sun001002003 发表于 2015-4-26 20:08:09 | 显示全部楼层 | 举报
1.可以把大量计算的东西做成一个指标,同时在此指标中限定要计算的BARs数
2.可以让EA中大量计算的东西只在新K产生时才计算一次
3.优化代码,可以在需要大量计算的指标中把一些计算交给现有的常用指标,在其中引用即可,如ZUP计算量很大,其中可以用常用指标替代一部分工作

点评

我可不可以理解成,有大量计算的时候,MT4的tick机制实际是无法保证完成一次程序的运行的,很有可能要到下一个tick甚至下几个tick才能完成,这有点类似程序中有sleep函数,比如sleep时间比较长的话,实际上start函数  详情 回复 发表于 2015-4-27 12:56

评分

参与人数 2贡献 +4 金币 +5 收起 理由
ycg198 + 4 + 1 520FX有你更精彩!
admin + 4

查看全部评分

签到天数: 8 天

[LV.3]偶尔看看II

19

主题

257

帖子

2579

积分

积分
2579

周年纪念水鬼暴发户正式会员

QQ
kitgain 发表于 2015-4-27 12:51:27 | 显示全部楼层 | 举报
放心,你再怎么瞎编EA,估计也能在15秒(我没记错的话)内执行完吧,MT4会老实地在15秒这个最大时间内,把当前tick触发的走完,
如果此期间,还有其它tick到来,它是不理睬的。

点评

也是哈,要不就不会有refreshrate()这个东西了,还是要等程序走完一遍才重新开始的。谢谢指教!  详情 回复 发表于 2015-4-28 11:56

评分

参与人数 1贡献 +4 金币 +1 收起 理由
ycg198 + 4 + 1 520FX有你更精彩!

查看全部评分

QQ群EA讨论 214518432

该用户从未签到

5

主题

4432

帖子

1万

积分

积分
12552
knightfx 发表于 2015-4-27 12:56:44 | 显示全部楼层 | 举报
sun001002003 发表于 2015-4-26 20:08
1.可以把大量计算的东西做成一个指标,同时在此指标中限定要计算的BARs数
2.可以让EA中大量计算的东西只在 ...

我可不可以理解成,有大量计算的时候,MT4的tick机制实际是无法保证完成一次程序的运行的,很有可能要到下一个tick甚至下几个tick才能完成,这有点类似程序中有sleep函数,比如sleep时间比较长的话,实际上start函数是暂停的。
http://88cf.vip/bbs/?fromuid=474

签到天数: 633 天

[LV.9]以坛为家II

2

主题

1800

帖子

4695

积分

积分
4695

周年纪念水鬼暴发户混世魔王

ycg198 发表于 2015-4-27 17:28:46 | 显示全部楼层 | 举报
放心,你再怎么瞎编EA,估计也能在15秒(我没记错的话)内执行完吧,MT4会老实地在15秒这个最大时间内,把当前tick触发的走完,
如果此期间,还有其它tick到来,它是不理睬的。

签到天数: 1054 天

[LV.10]以坛为家III

12

主题

2611

帖子

6567

积分

积分
6567
sun001002003 发表于 2015-4-28 02:09:15 | 显示全部楼层 | 举报
楼上正解。编的EA最好是不要这样折磨电脑,否则会失去金钱的。

点评

是的,这样看来编写的EA还是简洁些好,这样新的tick来的时候,触发会更灵敏及时些。  详情 回复 发表于 2015-4-28 11:59

该用户从未签到

5

主题

4432

帖子

1万

积分

积分
12552
knightfx 发表于 2015-4-28 11:56:43 | 显示全部楼层 | 举报
kitgain 发表于 2015-4-27 12:51
放心,你再怎么瞎编EA,估计也能在15秒(我没记错的话)内执行完吧,MT4会老实地在15秒这个最大时间内,把 ...

也是哈,要不就不会有refreshrate()这个东西了,还是要等程序走完一遍才重新开始的。谢谢指教!
http://88cf.vip/bbs/?fromuid=474

该用户从未签到

5

主题

4432

帖子

1万

积分

积分
12552
knightfx 发表于 2015-4-28 11:59:32 | 显示全部楼层 | 举报
sun001002003 发表于 2015-4-28 02:09
楼上正解。编的EA最好是不要这样折磨电脑,否则会失去金钱的。

是的,这样看来编写的EA还是简洁些好,这样新的tick来的时候,触发会更灵敏及时些。
http://88cf.vip/bbs/?fromuid=474

签到天数: 220 天

[LV.7]常住居民III

9

主题

476

帖子

1324

积分

积分
1324
zhy2505000 发表于 2015-4-28 20:49:09 | 显示全部楼层 | 举报
雁过留声,人过留言,鸡过留蛋,鸭过留毛

签到天数: 288 天

[LV.8]以坛为家I

2

主题

5108

帖子

1万

积分

积分
10617
kuangren90 发表于 2017-3-14 10:56:46 | 显示全部楼层 | 举报
谢谢分享,学编程,学交易,实现程序化交易。

签到天数: 71 天

[LV.6]常住居民II

14

主题

7103

帖子

1万

积分

积分
14285

周年纪念暴发户

福相随 发表于 2017-7-14 08:19:51 | 显示全部楼层 | 举报
伸手习惯了,慢慢我的习气就变坏了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则


在线客服
快速回复 10 返回列表 返回顶部