以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 怎么判断某个合约是否已启用? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=10175) |
-- 作者:guotx2010 -- 发布时间:2012/2/16 10:44:11 -- 怎么判断某个合约是否已启用? 我同时交易两个合约,如IF02,IF03,当主力合约变为IF03时,交易IF03,IF04这时有一个问题,那就是IF04还没有生效,是用什么函数判断这个合约是否已经启用了?
|
-- 作者:阿火 -- 发布时间:2012/2/16 10:52:45 -- 人工判断。或者判断日期是否为currentdate |
-- 作者:guotx2010 -- 发布时间:2012/2/16 11:15:12 -- 我现在的思路是判断当前是星期几,如果主力合约月份>当前月份,并且今天是周4或者周5,就不交易,因为远月合约还没有启用。 这样有一个问题,那就是本月第4个星期的周4、周5也不会交易,而那时远月合约已经启用了。
|
-- 作者:阿火 -- 发布时间:2012/2/16 13:06:49 -- 那么麻烦干嘛 有交易的话,date的值就会等于currentdate ,这个方法可以吧。 |
-- 作者:guotx2010 -- 发布时间:2012/2/16 22:32:31 -- 我是用后台策略,监控的品种始终是IF00,如果按照你说的使用Date和CurrentDate比较,始终是相等的,就分不出远月合约是否已经启用了。 这种情况只在周4、周5出现,像今天是周4,IF主力合约已经换成了IF03,这时IF04还没有启用,要等到下周1才会启用,所以针对主力合约的 下一个月的交易就会“找不到合约”。
我现在的解决办法是: 使用VBA来解决这个问题,使用reportdata.LastOI来取出IF04的昨天成交量,如果等于0,说明IF04还没有启用,然后保存到全局变量中, 策略中使用extgbdata取出这个变量,如果变量的值等于0,就退出,这样就可以避免下单错误了。
|