以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  如何知道连续合约的换月日期  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=56258)

--  作者:aaliwei91
--  发布时间:2013/9/5 8:49:37
--  如何知道连续合约的换月日期
比如我们做一个跨品种套利的策略,为了精确测试,不能用指数,只能用连续。

比如买入A卖出B,我们想在合约到期日或主力合约改变的时候平掉头寸,然后在次月合约重新建仓。

请问在图表程序化中,有没有命令可以读取当前连续合约K线的合约月份?或者有没有命令判断当日是否主力合约到期日?谢谢。

--  作者:lichenghu
--  发布时间:2013/9/5 9:01:30
--  

您好,这个您只能根据成交量来判断今日是否主力合约到期日。

 

换月规则:只要下月品种的成交量存在一个交易日大于当前品种,那么第二天系统自动换月,默认下月品种为主力合约。

 

那么我们这里只能用STKINDI引用相应品种的VOL然后做对比判断


--  作者:aaliwei91
--  发布时间:2013/9/5 9:59:41
--  
谢谢,如果我用连续合约进行测试,请问什么命令能引用当前合约的年份和月份呢?这样我才能知道下一月份的合约代码。
--  作者:lichenghu
--  发布时间:2013/9/5 10:11:47
--  


STKLABEL() 取下当前品种代码

 

然后用STRMID(STR,N,M)取下字符串中对应的位置


--  作者:aaliwei91
--  发布时间:2013/9/5 10:25:15
--  
谢谢。

我现在用白银连续,

程序:

label:STKLABEL();
aa:strmid(label,3,2);

但显示:

label:1000000 AA:1000001

现在9月5日,正确的结果应该是AG1309和AG1310吧。

--  作者:lichenghu
--  发布时间:2013/9/5 10:36:18
--  

取到的是字符串,您这样输出是不对的哦

 

STRTONUM( )转化下


--  作者:aaliwei91
--  发布时间:2013/9/5 10:50:56
--  
label:STRTONUM(STKLABEL());

这样输出是0;

我只是想知道:如果使用白银连续合约,什么命令能知道当前的合约月份和年份? 

--  作者:lichenghu
--  发布时间:2013/9/5 11:08:36
--  
label:STKLABEL();
aa:strmid(label,3,2);
bb:STRTONUM(AA);
 
BB的值是12,说明对应的是12合约

--  作者:lichenghu
--  发布时间:2013/9/5 11:41:06
--  

aa:STRRIGHT(STKNAME(),4);
bb:STRTONUM(AA);
 

 

试下把,能满足您需求