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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 一个简单的跟踪换月的方法

   

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


  共有4424人关注过本帖平板打印复制链接

主题:一个简单的跟踪换月的方法

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


加好友 发短信
等级:新手上路 帖子:58 积分:227 威望:0 精华:0 注册:2011/12/21 19:59:25
一个简单的跟踪换月的方法  发帖心情 Post By:2013/6/22 16:02:29    Post IP:220.168.2.199[只看该作者]

IF BARSTATUS=1 THEN
BEGIN
DM1:=STKLABEL; //取当前连续合约的品种代码
DM2:=STRTRIMRIGHT(DM1,'00'); //整理代码,去掉连续合约后面的月份字符
DM3:=STRTRIMRIGHT(DM1,'01'); //创建一个起始比对的月份合约代码,比如IF01
END
V1:=CALLSTOCK(DM3,VTVOL),LINETHICK0; //取DM3月份合约的成交量
P1:=CALLSTOCK(DM3,VTOPEN),LINETHICK0; //取DM3月份合约的开盘价

IF NOT(VOL=V1 AND OPEN=P1) THEN     //如果当前连续合约的成交量和开盘价与DM3不相同,则连续合约发生了换月
BEGIN
P2:=P1;                     //记录原DM3的开盘价
FOR I=1 TO 12 DO             //寻找与连续合约成交量和价格同时相符的月份合约
BEGIN
IF I<10 THEN DM3:=STRINSERT(STRCAT(DM2,NUMTOSTR(I,0)),2,'0'); //创建合约代码字符串
ELSE DM3:=STRCAT(DM2,NUMTOSTR(I,0));
V1:=CALLSTOCK(DM3,VTVOL),LINETHICK0; //调用数据
P1:=CALLSTOCK(DM3,VTOPEN),LINETHICK0; 

IF VOL=V1 AND OPEN=P1 THEN     //找到相符月份形成并自动固定新的DM3合约指向
BEGIN 
TK:=P2-P1;             //换月跳空价差
MSGOUT(1,NUMTOSTR(DATE,0)+'   '+NUMTOSTR(TK,2)); //输出换月日期和跳空价差 
BREAK;                 //跳出循环
END
END
END

说明:一、可用于在连续合约上交易换月报警,也可嵌入到策略中,设计发现换月时自动移仓动作;
二、可嵌入到交易策略中,增减盈亏修正资金曲线,消除因换月跳空带来虚拟收益而导致的参数优化的错误倾向;
三、可自动生成虚拟除权数据,录入之后,形成虚拟除权的连续合约,大量减少手工工作;
四、考虑到贴近实际交易,没有用换月前的价差除权,而是用换月之后的开盘价除权。

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