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


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

   

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


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

主题:关于主力合约问题

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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
关于主力合约问题  发帖心情 Post By:2015/5/18 16:06:38    Post IP:27.154.22.183[显示全部帖子]

如果想程序化交易商品,编写策略时一般会取连续合约进行测试,但是问题产生了:一旦商品进入换月,那么测试数据就会失真。


本人的想法是这样:连续合约的日期跟主力合约一致的,将符合范围的时间值标记输出;

比如,当前主力合约为1505时,将主力合约的这个时间(假设为150205开始,到150403结束,就将这两个时间值取出来,而且这两个时间戳理论上是和连续合约吻合的)

在150205到150403这段时间的主力合约数据和连续合约的数据理论是吻合的(比如成交量,最高价,最低价等等)


最好能够将数据生成外部文件格式存放。


万能的版主啊,请教您,如何实现这个想法?希望给予帮助啊。不胜感激。



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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
  发帖心情 Post By:2015/5/18 16:42:46    Post IP:27.154.22.183[显示全部帖子]

我在MA09下执行这段代码,输出结果为:
当前主力合约日期: 20150414
当前主力合约日期: 20150415
当前主力合约日期: 20150416
当前主力合约日期: 20150417
当前主力合约日期: 20150420
当前主力合约日期: 20150421
当前主力合约日期: 20150422
当前主力合约日期: 20150423
当前主力合约日期: 20150424
当前主力合约日期: 20150427
当前主力合约日期: 20150428
当前主力合约日期: 20150429
当前主力合约日期: 20150430
当前主力合约日期: 20150504
当前主力合约日期: 20150505
当前主力合约日期: 20150506
当前主力合约日期: 20150507
当前主力合约日期: 20150508
当前主力合约日期: 20150511
当前主力合约日期: 20150512
当前主力合约日期: 20150513
当前主力合约日期: 20150514
当前主力合约日期: 20150515
当前主力合约日期: 20150518

如何利用函数读取外部生成的test.txt文件,将时间信息读入金字塔自编函数;
时间开始和结束这两个值,20150414(VAR1)和20150518(VAR2),存在两个变量中VAR1和VAR2;
entertime := data>=VAR1 and data<=VAR2

大概就只这个意图。谢谢版主



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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
  发帖心情 Post By:2015/5/18 17:16:58    Post IP:27.154.22.183[显示全部帖子]

版主给出的代码真是个好东西。但是还是不符合我的想法,我的表达有问题,重新说明如下:

在连续合约页面下,自动判断连续合约和主力合约的时间戳;
1、自动寻找1501主力合约时间:将这个起始点和终点时间取出;
2、1502...直到1512;

也许需要做成外部数据文件,每个品种去做成一个数据表格。

这些时间构成断断续续的二维数组;

当执行主力合约换月的时候,连续合约上面必须强制平仓,等待新的信号出现,才出现开仓信号(以吻合换月后的新合约)。那么在连续合约上,就必须要有这些时间戳来匹配。否则执行换月的时候,价格可能会有跳空情况出现,导致测试数据失真。

这个时间戳就是为了过滤这个换月过程带来的数据异常情况。

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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
关于主力合约问题  发帖心情 Post By:2015/5/21 8:26:16    Post IP:27.154.22.84[显示全部帖子]

版主你好:

品种比如是I00,和TA00,显然公式得修改:
aa:=strleft(stklabel,2);
nn:=aa+'00';

能否加个判断,优化下,当前品种为一个字母的,自动取aa:=strleft(stklabel,1); 当品种为2个字母的,自动取aa:=strleft(stklabel,2);
[此贴子已经被作者于2015/5/21 8:26:46编辑过]

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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
关于主力合约问题  发帖心情 Post By:2015/5/21 9:07:13    Post IP:27.154.22.84[显示全部帖子]

版主你好:

品种比如是I00,和TA00,显然公式得修改:
aa:=strleft(stklabel,2);
nn:=aa+'00';

能否加个判断,优化下,当前品种为一个字母的,自动取aa:=strleft(stklabel,1); 当品种为2个字母的,自动取aa:=strleft(stklabel,2);

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


加好友 发短信
等级:新手上路 帖子:71 积分:0 威望:0 精华:0 注册:2015/4/20 8:53:07
关于主力合约问题  发帖心情 Post By:2015/5/21 9:26:27    Post IP:27.154.22.84[显示全部帖子]

版主,你好。如果这个实现不了,那还有SRX三个字母的。我本意是想针对商品全品种,做一个交易策略。
如果无法实现,那么岂不是针对不同字母的,要生成相应的好几个策略出来?
难道没有更好的建议了吗?

 回到顶部