金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3323|回复: 6

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

[复制链接]

70

主题

190

帖子

275

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
发表于 2021-5-20 16:33 | 显示全部楼层 |阅读模式
                                                           期货自动换月移仓策略


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


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

//修订时间: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











金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

131

帖子

131

积分

等级: 免费版

注册:
2021-6-6
曾用名:
发表于 2021-6-6 20:20 | 显示全部楼层
标准金字塔软件的图表程序如何自动换月,不是专业版的。。。
回复

使用道具 举报

70

主题

190

帖子

275

积分

Rank: 9Rank: 9Rank: 9

等级: 管理员

注册:
2021-5-18
曾用名:
 楼主| 发表于 2021-6-7 14:34 | 显示全部楼层
标准版的自动移仓换月直接用系统自带的功能即可,菜单栏“工具-选项”

QQ截图20210607143410.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

5

主题

131

帖子

131

积分

等级: 免费版

注册:
2021-6-6
曾用名:
发表于 2021-6-9 08:41 | 显示全部楼层
技术003 发表于 2021-6-7 14:34
标准版的自动移仓换月直接用系统自带的功能即可,菜单栏“工具-选项”

我意思是如何代码实现,如第一楼专业版那样。。。
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-6-9 08:58 | 显示全部楼层
这个没有办法,本身对账户实际持仓的控制就需要后台才行的,图表无法处理
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

109

帖子

119

积分

Rank: 6Rank: 6

等级: 机构版

注册:
2021-5-20
曾用名:
发表于 2021-8-14 22:49 | 显示全部楼层
可以图表运行交易策略,后台专门运行换月策略吗?
回复

使用道具 举报

4

主题

12

帖子

12

积分

Rank: 1

等级: 新手上路

注册:
2021-7-2
曾用名:
发表于 2023-1-7 18:57 | 显示全部楼层
代码似乎有点问题:
IF CURRENTTIME>140000 THEN
BEGIN
LSZL:=EXTGBSTRINGSET('LSZL',ZL);
LSZL2:=EXTGBSTRINGSET('LSZL2',ZL2);
END
如果正好换月当天开盘前重启过模型,则LSZL初始化为0,后续的移仓操作无法执行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 00:48 , Processed in 0.318207 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表