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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 合约基差

   

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


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

主题:合约基差

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


加好友 发短信
等级:论坛游侠 帖子:123 积分:0 威望:0 精华:0 注册:2016/12/26 12:18:14
合约基差  发帖心情 Post By:2020/12/16 14:35:53    Post IP:119.165.64.196[只看该作者]

求当前合约与上一主力合约的价差
比如:当前主力合约为2105,则求2105合约与2101和合约的价差

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 14:50:22    Post IP:58.246.57.26[只看该作者]

 求不到的。还是和之前那个问题一样,只知道除权位置的,但是没有函数获取对应的具体合约是多少。

最多是很简单的获取上一个月份的合约的价格。但是有些品种,很可能好久才换一次。这样就没办法。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
01部落
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:123 积分:0 威望:0 精华:0 注册:2016/12/26 12:18:14
  发帖心情 Post By:2020/12/16 14:55:53    Post IP:119.165.64.196[只看该作者]

豆粕0501:"M05$close"-"m01$close",LINETHICK1,COLORWHITE;
这个是求豆粕05和01的价差 我的想法是能不获得图表的当前合约,从而将上面的公式改成通用的代码,而不是某个特i定品种 特定月份的价差
[此贴子已经被作者于2020/12/16 14:57:14编辑过]

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 15:02:35    Post IP:58.246.57.26[只看该作者]

啥意思?你自己把指标加载到上次主力合约(自行判断的)上 然后调用现在的主力合约做价差的计算?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
01部落
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:123 积分:0 威望:0 精华:0 注册:2016/12/26 12:18:14
  发帖心情 Post By:2020/12/16 15:03:48    Post IP:119.165.64.196[只看该作者]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 15:12:31    Post IP:58.246.57.26[只看该作者]

STR:=STRTRIMRIGHT( STKLABEL, '0123456789');

//双年份合约,豆一和白糖虽然取消双年份,但是金字塔为保证老用户策略的正常操作,所以保持不变。因此依旧需要区分。
if STRCMP(STR,'AY')=0 or  STRCMP(STR,'BUY')=0 OR  STRCMP(STR,'SRY') THEN BEGIN
 STR:=STRREPLACE(STR , 'Y','X' );
END

//区分处理原油和其他品种的连续代码
STR00:=IF(STRCMP(STR,'SC')=0,STRCAT(STR , '0000'),STRCAT( STR, '00'));



JC:c-CALLSTOCK(STR00,vtCLOSE,-1,0),LINETHICK1,COLORWHITE;//当前加载的合约之间用C取收盘价;主力用CALLSTOCK函数调用,被调用的周期直接指定到当前加载的周期


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
01部落
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:123 积分:0 威望:0 精华:0 注册:2016/12/26 12:18:14
  发帖心情 Post By:2020/12/16 16:54:33    Post IP:119.165.64.196[只看该作者]

通常我是要加载到主力合约上,看主力合约和上主力合约及主力合约和次主力合约的价差,
1 所以,主力合约直接用c取得,而其它两个合约可以用callstock取得吗?
2 如果不行,能不能用参数的形式取得,比如设俩个参数N1,N2,然后通过callstock取得其对应品种的N1和N2月份合约收盘价,从而计算出价差
谢谢

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 16:59:13    Post IP:58.246.57.26[只看该作者]

 1.可以。但是具体什么品种,只能你自己指定。而且这样的代码没办法做到通用,你换了个品种,你代码都必须重新写一次,感觉还是挺麻烦的。

2.用参数的话,也是可以。可以利用参数拼接处月份合约,然后调用。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/12/16 17:13:01    Post IP:58.246.57.26[只看该作者]

 INPUT:M(1,0,12,1);//月份参数

STR:=STRTRIMRIGHT( STKLABEL, '0123456789');

//双年份合约,豆一和白糖虽然取消双年份,但是金字塔为保证老用户策略的正常操作,所以保持不变。因此依旧需要区分。
if STRCMP(STR,'AY')=0 or  STRCMP(STR,'BUY')=0 OR  STRCMP(STR,'SRY') THEN BEGIN
 STR:=STRREPLACE(STR , 'Y','X' );
END
//注意 不支持原油合约。因为原油合约的代码规则不一样,不能直接拼接出来。如果你需要的话我再想办法处理。
Mcode:STRCAT(STR ,STRRIGHT(NUMTOSTR(M/100,2),2) );//拼接品种名称+月份 生产品种代码。

JC:c-CALLSTOCK(Mcode,vtCLOSE,-1,0);//Mcode 是你指定月份的当前品种的合约。不支持对原油品种的处理。





命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
01部落
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:123 积分:0 威望:0 精华:0 注册:2016/12/26 12:18:14
  发帖心情 Post By:2020/12/16 19:34:15    Post IP:119.165.64.196[只看该作者]

很给力 谢谢
 JC:c-CALLSTOCK(Mcode,vtCLOSE,-1,0);
其中变量名称“JC"能不能直接用对应的品种代码名称替代,
比如:如果上述参数:M=1的话,而加载的品种为豆粕,则用“豆粕2101”或“豆粕01“,或者“JC2101”或“JC01”作为变量名称,这样直观点
总之,体现出"01"月份就可以

 回到顶部
总数 15 1 2 下一页