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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 能否自动指定改合约的连续合约?

   

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


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

主题:能否自动指定改合约的连续合约?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/7/15 20:46:45    Post IP:58.246.57.26[显示全部帖子]

字符串不能直接在图表变量值输出。必须通过绘图函数或者EXPLAIN函数输出显示。

上面的代码没没有对双年份合约和原油进行处理。需要调整下。以保证逻辑的健壮性。

 

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
//EXPLAIN( 1, STR );

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

[此贴子已经被作者于2020/7/16 8:29:48编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/7/27 23:44:50    Post IP:101.88.99.73[显示全部帖子]

代码没问题。怀疑你在连续上看错了或者周期不对。建议你自己再核实下

[此贴子已经被作者于2020/7/27 23:45:11编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/7/28 10:13:32    Post IP:58.246.57.26[显示全部帖子]

截图看。我本地结果是正常的

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/7/28 11:06:50    Post IP:58.246.57.26[显示全部帖子]

以你09合约的图中结果,10:01对应的价格  MV1=46.333    MV2=81.4其分别对应下面的代码 。红色部分代表偏移量。

 

MV1:STKINDI(STR00,'VOL1.MA1(3)',0,1,1);//这个是向未来方向(后一根k)即对应的是10:02上的ma1  
MV2:STKINDI(STR00,'VOL1.MA2',0,1,-1););//这个是向历史方向(前一根k)即对应的是10:00上的ma2

如果你想得到当前时间对应的连续合约上的数据,应该是

MV1:STKINDI(STR00,'VOL1.MA1(3)',0,1,0);//对应的是10:01上的ma1  

MV2:STKINDI(STR00,'VOL1.MA2',0,1,0););//对应的是10:00上的ma2



编程无捷径,技巧靠积累。
 回到顶部