金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 10591|回复: 36

这个后台程序化哪里有问题吗,两个品种套利,滚动买卖

[复制链接]

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
发表于 2021-9-30 14:42 | 显示全部楼层 |阅读模式
本帖最后由 技术006 于 2021-9-30 14:50 编辑

[PEL] 复制代码
//*****************************
{
参数列表:
自设套利合约TA0002
最大开仓数量MAX
价差上限M,低于此价格才开仓且持仓数量没超过最大数量MAX
平仓价差间隔N,低于价格M,间隔在N时逐步建仓
螺纹套利最新
}
账户:'15850565840';
套利品种1:'RB10';
套利品种2:'RB01';
S1:= 200;//开始建仓点位
J:= 5;//建仓的间隔
N1:= 1;//每次建仓的手数/会变动可能为2
N2:= 2; //变动的价格分界点为F=200,如价差低于200时,每次开2手
F:= 100;
M:= 10;//允许的最大持仓数量
LS:= 200;//上次建仓的点位
X:= 5;//平仓时的价差,比如价格高于上次开仓价5个点时,则平仓
//*****************************
JC:=dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);

//获得价差方法

KD:=JC< S1  AND THOLDING2 <M ;        //开多条件
//第一次开仓
DEBUGOUT( '交易次数为:%.0f',TTOTALTRADE );
//每次开N1手的情况
IF KD AND (JC> F AND 0=TTOTALTRADE) THEN BEGIN
TBUYSHORT(1,N1,LMT ,DYNAINFO2(7, 套利品种1),0,账户,套利品种1);
TBUY(1,N1,LMT ,,DYNAINFO2(7, 套利品种1),0,账户,套利品种2);
END
//后续开仓
DEBUGOUT( '上次开仓价格为',TENTERPRICE );
//低于上次开仓价J个点,继续开仓N1手
IF KD AND (JC> F AND JC <= TENTERPRICE-J) THEN BEGIN
TBUYSHORT(1,N1,LMT,DYNAINFO2(7, 套利品种1),0,账户,套利品种1);
TBUY(1,N1,DYNAINFO2(7, 套利品种2) ,0,0,账户,套利品种2);
END
//低于上次开仓价J个点,继续开仓N2手
IF KD AND (JC<F AND JC <= TENTERPRICE-J) THEN BEGIN
TBUYSHORT(1,N2,MKT ,0,0,账户,套利品种1);
TBUY(1,N2,MKT ,0,0,账户,套利品种2);
END

PD:=TENTERPRICE-JC>=5 AND THOLDING2>0;          //平多条件
//平多
IF PD  THEN BEGIN
TSELL(PD,0,MKT,0,0,账户,套利品种2);  
TSELLSHORT(PD,0,MKT,0,0,账户,套利品种1); 
END  
//当前持仓
DEBUGOUT( '当前持仓手数为',THOLDING2 );

//开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号
//平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
DEBUGOUT( '当前工作模式为',WORKMODE );
回复

使用道具 举报

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
 楼主| 发表于 2021-9-30 14:43 | 显示全部楼层
是不是TBUYSHORT(1,N1,LMT,DYNAINFO2(7, 套利品种1),0,账户,套利品种1); 这里的参数不对吗
回复

使用道具 举报

37

主题

9845

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-9-30 14:44 | 显示全部楼层
本帖最后由 技术006 于 2021-9-30 14:59 编辑

第32,39行,有笔误的地方
[PEL] 复制代码
//*****************************
{
参数列表:
自设套利合约TA0002
最大开仓数量MAX
价差上限M,低于此价格才开仓且持仓数量没超过最大数量MAX
平仓价差间隔N,低于价格M,间隔在N时逐步建仓
螺纹套利最新
}


账户:'15850565840';
套利品种1:'RB10';
套利品种2:'RB01';
S1:= 200;//开始建仓点位
J:= 5;//建仓的间隔
N1:= 1;//每次建仓的手数/会变动可能为2
N2:= 2; //变动的价格分界点为F=200,如价差低于200时,每次开2手
F:= 100;
M:= 10;//允许的最大持仓数量
LS:= 200;//上次建仓的点位
X:= 5;//平仓时的价差,比如价格高于上次开仓价5个点时,则平仓
//*****************************
JC:=dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);

//获得价差方法

KD:=JC< S1  AND THOLDING2 <M ;        //开多条件
//第一次开仓
DEBUGOUT( '交易次数为:%.0f',TTOTALTRADE );
//每次开N1手的情况
IF KD AND (JC> F AND 0=TTOTALTRADE) THEN BEGIN
TBUYSHORT(1,N1,LMT ,DYNAINFO2(7, 套利品种1),0,账户,套利品种1);
TBUY(1,N1,LMT ,DYNAINFO2(7, 套利品种1),0,账户,套利品种2);
END
//后续开仓
DEBUGOUT( '上次开仓价格为',TENTERPRICE );
//低于上次开仓价J个点,继续开仓N1手
IF KD AND (JC> F AND JC <= TENTERPRICE-J) THEN BEGIN
TBUYSHORT(1,N1,LMT,DYNAINFO2(7, 套利品种1),0,账户,套利品种1);
TBUY(1,N1,LMT,DYNAINFO2(7, 套利品种2) ,0,账户,套利品种2);
END
//低于上次开仓价J个点,继续开仓N2手
IF KD AND (JC<F AND JC <= TENTERPRICE-J) THEN BEGIN
TBUYSHORT(1,N2,MKT ,0,0,账户,套利品种1);
TBUY(1,N2,MKT ,0,0,账户,套利品种2);
END

PD:=TENTERPRICE-JC>=5 AND THOLDING2>0;          //平多条件
//平多
IF PD  THEN BEGIN
TSELL(PD,0,MKT,0,0,账户,套利品种2);  
TSELLSHORT(PD,0,MKT,0,0,账户,套利品种1);
END  
//当前持仓
DEBUGOUT( '当前持仓手数为',THOLDING2 );

//开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);     //开空信号
//平空:SELLSHORT(PK,1,THISCLOSE);                  //平空信号
DEBUGOUT( '当前工作模式为',WORKMODE );
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
 楼主| 发表于 2021-10-8 16:19 | 显示全部楼层
技术006 发表于 2021-9-30 14:44
第32,39行,有笔误的地方
[mw_shl_code=pel,true]//*****************************
{

我就是想写个滚动套利的后台程序,然后挂着跑,
比如 想做铁矿01和05合约的正向套利,多01,空05 。差价30点以下建仓,差价上涨2个点后平仓。然后再以低于上次开仓位置再挂单,成交后,差价上涨2个点后再平仓,这样滚动。这样的策略该怎么写?
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-10-8 16:36 | 显示全部楼层
“然后再以低于上次开仓位置再挂单,”这是什么意思。价差低于开仓时候的价差?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
 楼主| 发表于 2021-10-8 16:57 | 显示全部楼层
技术009 发表于 2021-10-8 16:36
“然后再以低于上次开仓位置再挂单,”这是什么意思。价差低于开仓时候的价差?

位置指的是价差,我预计长期价差会越来越小,比如第一次开仓时的价差是30个点,价差涨回到32时,盈2个点平仓。然后再等到价差低于30一个点时比如29再挂单,然后再涨2个点平仓,如此循环
回复

使用道具 举报

37

主题

9845

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-8 17:09 | 显示全部楼层
就是说始终在价差30的线上来回波动?高于30平,低于30开?不加仓吧?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
 楼主| 发表于 2021-10-8 17:21 | 显示全部楼层
技术006 发表于 2021-10-8 17:09
就是说始终在价差30的线上来回波动?高于30平,低于30开?不加仓吧?

每次开仓5手,平仓后再开新仓,开仓差价越来越低,每次新开仓时价差低于上次开仓时的价差。比如第一次开仓时价差是30,每次开仓价差间隔是2个点,则第二次开仓时价差是 28 ,第三次是26 。。。。这样循环
回复

使用道具 举报

12

主题

54

帖子

54

积分

等级: 免费版

注册:
2021-9-30
曾用名:
 楼主| 发表于 2021-10-8 17:22 | 显示全部楼层
怎么记录保存上次开仓时的价差,这个值呢?
回复

使用道具 举报

37

主题

9845

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-10-8 17:25 | 显示全部楼层
那什么时候重新从30再开始?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 21:54 , Processed in 0.155130 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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