打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
TB编程常见错误(五) 时间读取

时间读取

 

 

    TB常用的时间函数有CurrentTime,Time,Hour,Minute和Second,但是这里会有一些比较隐秘的错误。

    一、CurrentTime不等于Time

    Time返回的是当前Bar的“开盘”时间;CurrentTime返回的是主机当前的时间。为了让读者更直观地感受二者的区别,我写了下面这段代码:

 


    这段代码有三点要注意:1、时间返回结果是6位小数;2、Text函数是数值转字符,不支持小数点;3、要清除其他位置的字符,不然会重复显示。公式加载到超级图表后会得到下图:

 


    我想,看到这图以后,大家就会发现不同了吧。CurrentTime在历史回测中是不会变的。所以,若以收盘时间或特定时间做条件的代码,在回测中应该用Time。

   

    二、在分钟或更大的周期里,Time和Second返回的秒数都是零

    Time返回的结果是0.HHMMSS,所以可以用Time*1000000-Hour*10000-Minute*100得出秒数?

    这在分钟或更大的周期里是错的。正如上文所说,Time代表的是这根K线开盘时间,所以,Time的精度是由K线周期决定的。例如上图是1分钟周期,那么最小变动单位就是1分钟,如果是5分钟周期,最小变动单位就是5分钟。分钟周期所有K线用Time得出的秒数都会是0。

    甚至Second这个函数,在分钟及以上的周期里,返回的结果也是0。因为Second的正确说明是当前这根Bar开盘时间的秒数,所以返回的结果都是0。

    所以在回测时,你在分钟周期里无法实现“在收盘前N秒成交”或“开盘后N秒成交”。因为你无法知道秒值和那时的成交价格。解决办法就是在秒周期上做测试,但需要写自定义函数跨周期。如果是在实盘,那么可以用CurrentTime转换。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
[linux]通过ssh远程设定各服务器时间,从而实现集群时间同步
5.17 时间函数time的用法
【服务器搭建】教程七:如何为自己的网站添加运行时间?
C获取当前时间
请教 模拟柜台下如何获得持仓状态?
通达信时间函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服