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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 【期货策略】自动换月移仓

   

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


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

主题:【期货策略】自动换月移仓

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


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
【期货策略】自动换月移仓  发帖心情 Post By:2017/4/10 10:43:41 [只看该作者]

                                                           期货自动换月移仓策略

期货合约除了各月份合约外,一般都包含指数与连续合约。当我们使用连续合约交易时,存在自动换月移仓问题。
连续合约换月规制:下月品种当日成交量大于连续对应的当前品种,第二天自动换月,连续合约对应下月

代码
//策略:自动移仓换月策略
//品种:沪铜、焦炭(其它品种复制代码即可)
//适用范围:后台程序化,每日开盘后自动执行一次即可
//修订时间:2017.04.10


ACCOUNTID:='800000';    //要执行自动换月的账户

//移仓换月的品种
HY1:='CU00';               
HY2:='J00';

//连续对应的主力月份合约
ZL:=DYNAINFO2(210,HY1);   
ZL2:=DYNAINFO2(210,HY2);


//当日主力合约月份
IF CURRENTTIME>140000 THEN
BEGIN
LSZL:=EXTGBSTRINGSET('LSZL',ZL);
LSZL2:=EXTGBSTRINGSET('LSZL2',ZL2);
END

//品种1自动换月移仓
IF STRCMP(ZL,LSZL)<>0 THEN BEGIN
 PREBUYHOLD:TBUYHOLDINGEX(ACCOUNTID,LSZL,1),LINETHICK0; //上月买入持仓
 PRESELLHOLD:TSELLHOLDINGEX(ACCOUNTID,LSZL,1),LINETHICK0; //上月卖出持仓
 IF PREBUYHOLD>0 THEN BEGIN  //多单移仓
  TSELL(1,PREBUYHOLD,MKT,0,0,ACCOUNTID,LSZL);
  TBUY(1,PREBUYHOLD,MKT,0,0,ACCOUNTID,ZL); 
 END
 IF PRESELLHOLD>0 THEN BEGIN  //空单移仓
  TSELLSHORT(1,PRESELLHOLD,MKT,0,0,ACCOUNTID,LSZL);
  TBUYSHORT(1,PRESELLHOLD,MKT,0,0,ACCOUNTID,ZL); 
 END
END

//品种2移仓
IF STRCMP(ZL2,LSZL2)<>0 THEN BEGIN
 PREBUYHOLD2:TBUYHOLDINGEX(ACCOUNTID,LSZL2,1),LINETHICK0; //上月买入持仓
 PRESELLHOLD2:TSELLHOLDINGEX(ACCOUNTID,LSZL2,1),LINETHICK0; //上月卖出持仓
 IF PREBUYHOLD2>0 THEN BEGIN  //多单移仓
  TSELL(1,PREBUYHOLD2,MKT,0,0,ACCOUNTID,LSZL2);
  TBUY(1,PREBUYHOLD2,MKT,0,0,ACCOUNTID,ZL2); 
 END
 IF PRESELLHOLD2>0 THEN BEGIN  //空单移仓
  TSELLSHORT(1,PRESELLHOLD2,MKT,0,0,ACCOUNTID,LSZL2);
  TBUYSHORT(1,PRESELLHOLD2,MKT,0,0,ACCOUNTID,ZL2); 
 END
END





[此贴子已经被作者于2017/4/10 10:49:35编辑过]


金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
风度翩翩
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:194 积分:0 威望:0 精华:0 注册:2012/12/28 17:19:34
  发帖心情 Post By:2017/4/27 18:44:55 [只看该作者]

标准版如何搞,楼主?

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/6/29 21:42:03 [只看该作者]

这个只能在专业版的后台程序化下执行


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
wzsunshao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:258 积分:0 威望:0 精华:0 注册:2014/2/18 11:04:12
  发帖心情 Post By:2017/7/5 10:09:05 [只看该作者]

碰到一种情况:主力合约换月后,如果同时开着自动持仓同步,自动持仓同步先于自动移仓执行,会发生仓内既有旧主力合约又有新主力合约的情况,再执行自动换月,旧换新,就出现了2倍的新主力合约量,然后持仓同步会再次执行平仓。
两个程序执行先后难以把握,如何解决?  建议自动持仓同步设置启用时间,也可以避免开盘时间段行情波动大执行同步时造成的冲击风险。

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/7/5 13:51:45 [只看该作者]

如果你开启了图表的自动持仓同步,换月天会进行开仓行为,那么你的后台代码只要改一下只针对非主力合约进行平仓操作就好了



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
wzsunshao
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:258 积分:0 威望:0 精华:0 注册:2014/2/18 11:04:12
  发帖心情 Post By:2017/7/5 21:40:24 [只看该作者]

策略不能正确运行,请看

ZL:=DYNAINFO2(210,HY1); //取得指定品种主力合约  
//当日主力合约月份
IF CURRENTTIME>140000 THEN
BEGIN
LSZL:=EXTGBSTRINGSET('LSZL',ZL);//全局变量LSZL为ZL,LSZL==ZL
END

//品种1自动换月移仓
IF STRCMP(ZL,LSZL)<>0 THEN BEGIN//////该句能成立吗,LSZL==ZL,

 回到顶部