以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- 多品种数据引用时候的软件bug (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=31214) |
-- 作者:kkingswd -- 发布时间:2012/12/6 9:53:54 -- 多品种数据引用时候的软件bug
在多品种数据引用时,金字塔软件的内部机制会出现一些处理错误。举例来说: 在一个算法中,同时使用上证指数的5分钟K线和股指期货的5分钟K线,主图为股指期货,则在固定轮询高频刷新模式下,上证指数每6秒1个tick,而股指期货每1秒2个tick,则会存在一种情况是,股指期货产生了一个新的5分钟K线时,上证指数还没有产生新的K线,那么在这么一个很短的时间,算法就会出现错误。
举例说明一个很简单的公式,当上证指数当前K线的最低点,低于上证指数前1根k线开盘价和收盘价之和的一半时,在股指期货上开空。则回测时完全没有问题,但是在实盘中,问题就来了: 会出现每个股指期货K线一开始就开始做空。因为这时候,股指刚产生新的K线,而上证还没有产生新的K线,此时引用的最低点,是上证指数对应着股指期货来说,上1周期的最低点,而上一个周期最低点肯定小于开盘价和收盘价之和的一半。 代码表示即 lowy:=callstock(\'sh000001\',vtlow,-1,0); 则在股指期货的新K线产生而上证的新K线未产生的一瞬间,出现lowy=ref(lowy,1);的错误。
其核心原因就是:多品种引用时,由于股票和期货的tikc频率不同,在K线切分上,会引起上证和股指期货的K线不一致。
建议在下一个版本中,增加一个多品种K线同步的判断,只在多品种的K线同步时,刷新公式。
|
-- 作者:jinzhe -- 发布时间:2012/12/6 10:04:20 -- 感谢提交的建议!,我们会上交给开发人员 |
-- 作者:admin -- 发布时间:2012/12/6 10:13:19 -- 感谢您的建议。 从帖子来看,您用的是固定时间间隔吧。 暂时的方法,你可以把固定时间间隔改成6秒就同步啦。 |
-- 作者:fly -- 发布时间:2012/12/6 10:16:29 -- 股票的数据少,如果引用来做开平仓条件的话,是会有上面说的现象.
推荐,暂时用,固定时间间隔:6秒刷新一次,看能不能解决以上问题. |
-- 作者:kkingswd -- 发布时间:2012/12/14 11:23:40 -- 有时候需要引用股指数据,简单地6秒一刷新还不能满足需求。我想确认的是,在这个空档,上证的lowy是否和ref(lowy,1)对等?如果是的,可以加入lowy<>lowy1来解决,不知道你们这里面机制如何? |
-- 作者:kkingswd -- 发布时间:2012/12/14 11:27:49 -- 有时候一个算法中需要同时使用股指和上证进行计算,简单的6秒一刷新不能满足需求。其实只需要在股指产生新K线而上证未出现新K线的一瞬间,增加一个确认K线对齐的条件即可。我想了解,在这一瞬间,上证的lowy和ref(lowy,1)是否对等,如果是一样的,则可用lowy<>ref(lowy,1)的限制条件解决。但是不知道你们这里面的机制如何? |
-- 作者:jinzhe -- 发布时间:2012/12/14 14:37:24 -- 不对等,还没出现新k线,l是上根k线的l,ref(l,1)是上根k线的ref(l,1) |