欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 近月远月合约的计算及引用

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4182人关注过本帖树形打印复制链接

主题:近月远月合约的计算及引用

帅哥哟,离线,有人找我吗?
qingxiao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/9/1 13:00:31
近月远月合约的计算及引用  发帖心情 Post By:2017/9/6 15:10:41 [只看该作者]

nn:='AG';
VARIABLE: X[12]=0;
X[1]:=CALLSTOCKEX(nn+'01',vtVOL,6,0,2000);
X[2]:=CALLSTOCKEX(nn+'02',vtVOL,6,0,2000);
X[3]:=CALLSTOCKEX(nn+'03',vtVOL,6,0,2000);
X[4]:=CALLSTOCKEX(nn+'04',vtVOL,6,0,2000);
X[5]:=CALLSTOCKEX(nn+'05',vtVOL,6,0,2000);
X[6]:=CALLSTOCKEX(nn+'06',vtVOL,6,0,2000);
X[7]:=CALLSTOCKEX(nn+'07',vtVOL,6,0,2000);
X[8]:=CALLSTOCKEX(nn+'08',vtVOL,6,0,2000);
X[9]:=CALLSTOCKEX(nn+'09',vtVOL,6,0,2000);
X[10]:=CALLSTOCKEX(nn+'10',vtVOL,6,0,2000);
X[11]:=CALLSTOCKEX(nn+'11',vtVOL,6,0,2000);
X[12]:=CALLSTOCKEX(nn+'12',vtVOL,6,0,2000);


VARIABLE:ZL=0;
IF X[1]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='01';
IF X[2]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='02';
IF X[3]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='03';
IF X[4]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='04';
IF X[5]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='05';
IF X[6]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='06';
IF X[7]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='07';
IF X[8]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='08';
IF X[9]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='09';
IF X[10]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='10';
IF X[11]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='11';
IF X[12]=CALLSTOCKEX(nn+'00',vtVOL,6,0,2000) THEN ZL:='12';


VARIABLE:CZL=0;
IF X[1]=large(X,12,2) THEN CZL:='01';
IF X[2]=large(X,12,2) THEN CZL:='02';
IF X[3]=large(X,12,2) THEN CZL:='03';
IF X[4]=large(X,12,2) THEN CZL:='04';
IF X[5]=large(X,12,2) THEN CZL:='05';
IF X[6]=large(X,12,2) THEN CZL:='06';
IF X[7]=large(X,12,2) THEN CZL:='07';
IF X[8]=large(X,12,2) THEN CZL:='08';
IF X[9]=large(X,12,2) THEN CZL:='09';
IF X[10]=large(X,12,2) THEN CZL:='10';
IF X[11]=large(X,12,2) THEN CZL:='11';
IF X[12]=large(X,12,2) THEN CZL:='12';

VARIABLE:JY=0;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)<MONTH() AND STRTONUM(ZL)<STRTONUM(CZL) THEN JY:=ZL;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)<MONTH() AND STRTONUM(ZL)>STRTONUM(CZL) THEN JY:=CZL;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)>MONTH() THEN JY:=nn+CZL;
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)<MONTH() THEN JY:=nn+ZL; 
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)>MONTH() AND STRTONUM(ZL)<STRTONUM(CZL) THEN JY:=ZL;
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)>MONTH() AND STRTONUM(ZL)>STRTONUM(CZL) THEN JY:=CZL;


VARIABLE:YY=0;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)<MONTH() AND STRTONUM(ZL)<STRTONUM(CZL) THEN YY:=CZL;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)<MONTH() AND STRTONUM(ZL)>STRTONUM(CZL) THEN YY:=ZL;
IF STRTONUM(ZL)<MONTH() AND STRTONUM(CZL)>MONTH() THEN YY:=ZL;
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)<MONTH() THEN YY:=CZL; 
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)>MONTH() AND STRTONUM(ZL)<STRTONUM(CZL) THEN YY:=CZL;
IF STRTONUM(ZL)>MONTH() AND STRTONUM(CZL)>MONTH() AND STRTONUM(ZL)>STRTONUM(CZL) THEN YY:=ZL;


我用以上公式区分品种‘nn’主力与次主力合约中哪个是近月哪个是远月,显示在副图上数据是完整正确的
agjy:STKINDIEX('','ZCJY.JY',0,6,0,2000);
在引用时数据显示不完整,问题出在哪里?
另外我希望品种‘nn’能够成为一个参数被STKINDIEX引用,这样我可以方便的获取全部商品的主次近远月,但是思路不清晰,请版主指点。

 回到顶部
帅哥哟,离线,有人找我吗?
banzhuan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2017/9/7 11:02:06 [只看该作者]

稍等,我们测试一下

 回到顶部
帅哥哟,离线,有人找我吗?
banzhuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2017/9/7 13:04:49 [只看该作者]

你的数据都补充完整吗?

 回到顶部
帅哥哟,离线,有人找我吗?
qingxiao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/9/1 13:00:31
  发帖心情 Post By:2017/9/11 13:12:21 [只看该作者]

数据应该是完整的,因为原指标“ZCJY”加一句“JY1:JY;”显示在图表上是完整显示的,新建一个指标插入语句“agjy:STKINDIEX('','ZCJY.JY',0,6,0,2000);”智能显示部分。

 回到顶部
帅哥哟,离线,有人找我吗?
qingxiao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/9/1 13:00:31
  发帖心情 Post By:2017/9/11 13:16:19 [只看该作者]

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:1505106862(1).jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:1505106968(1).jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2017/9/11 14:01:09 [只看该作者]

本地未测到这个现象,你的版本是多少?重新安装一个最新版试下呢,看是否有此现象。

 回到顶部
帅哥哟,离线,有人找我吗?
qingxiao
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/9/1 13:00:31
  发帖心情 Post By:2017/9/12 12:26:36 [只看该作者]

另外我希望品种‘nn’能够成为一个参数被STKINDIEX引用,这样我可以方便的获取全部商品的主次近远月,但是思路不清晰,请版主指点。

 回到顶部
帅哥哟,离线,有人找我吗?
gxx978
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:4994 积分:0 威望:0 精华:0 注册:2016/9/1 10:46:51
  发帖心情 Post By:2017/9/12 13:27:13 [只看该作者]

你是想要nn不要自己指定,根据引用的品种自己得出品种代码?你可以用函数stklabel获取,再用字符串函数进行处理。例如:

a:stklabel;
nn:STRLEFT(a,2);//这里是品种简称是2位的,若是1位的需要另外判断,例如玉米C等。

再通过nn和JY字符串组合输出,通过stkindi引用。


 回到顶部
帅哥哟,离线,有人找我吗?
qingxiao
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2017/9/1 13:00:31
  发帖心情 Post By:2017/9/12 14:46:02 [只看该作者]

并不是,我想要实现的是遍历所有的商品期货,将每一个品种的主力和次主力合约根据交割月份分为近月和远月,然后通过公式计算价格差,再将所有品种的价格差放在一起比较大小,上面的公式是计算这个价格差的。在另外一个公式中,我希望将“nn”变成一个参数,然后把所有商品价格差集合到一起比较大小。

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/9/12 16:26:38 [只看该作者]

不知道你说什么意思。


编程无捷径,技巧靠积累。
 回到顶部
总数 14 1 2 下一页