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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 套利代码撤单问题

   

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


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

主题:套利代码撤单问题

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
套利代码撤单问题  发帖心情 Post By:2019/8/26 13:10:45    Post IP:180.169.30.6[只看该作者]

TBUYSHORT(1,SS2,LMT,DYNAINFO2( 7,套利品种2),0,账户,套利品种2);
TBUY(1,SS2,LMT, DYNAINFO2( 7,套利品种1),0,账户,套利品种1);

上面分别是买单和卖单是最新价委托,麻烦帮我改进如果两笔交易60秒内没有成交则同时撤单,如果两笔交易任何一个成交了,则另一个马上撤单并以对手5价的价格进行委托。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/8/26 13:43:08    Post IP:180.169.30.6[只看该作者]

 这样试下:


if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and  TGLOBALSUBMITEX(1,账户,套利品种2,1)>=60) then
begin
TCANCELEX(1,3,账户,套利品种2 );
TCANCELEX(1,1,账户,套利品种1 );
end

if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and TGLOBALSUBMITEX(1,账户,套利品种1,0)=0) then
begin
TCANCELEX(1,3,账户,套利品种2);
TBUYSHORT(1,SS2,LMT,DYNAINFO2( 7,套利品种2)-5*MINDIFF,0,账户,套利品种2);
end

if (TGLOBALSUBMITEX(1,账户,套利品种1,1)>=60 and TGLOBALSUBMITEX(3,账户,套利品种2,0)=0) then
begin
TCANCELEX(1,1,账户,套利品种1);
TBUY(1,SS2,LMT, DYNAINFO2( 7,套利品种1)+5*MINDIFF,0,账户,套利品种1);
end


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
套利
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
  发帖心情 Post By:2019/9/3 21:38:22    Post IP:123.119.83.95[只看该作者]

 这几个语句能分别用中文解释下吗

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
  发帖心情 Post By:2019/9/4 2:15:51    Post IP:123.115.65.4[只看该作者]

INPUT:M(50,1,100,1),X(3,1,100,1),SS(20,1,100,1),SS2(1,1,100,1);//M表示初始开仓价差,X表示加减仓的价差,SS表示首次开仓手数,SS2表示加减仓手数
GLOBALVARIABLE:mark:=0;//需要记住开始时候的价差,就必须使用全局变量
//*****************************
账户:'632361';
套利品种1:'RB01';
套利品种2:'RB05';
//*****************************

JC:dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);//价差


IF (JC-mark)>=X*MINDIFF and mark<>0  THEN BEGIN //减仓
mark:=JC;//价差记录下来
TSELLSHORT(1,SS2,LMT ,DYNAINFO2( 7),0,账户,套利品种2);//买平最新价
TSELL(1,SS2,LMT ,DYNAINFO2( 7),0,账户,套利品种1);//卖平最新价
END

IF (mark-JC)>=X*MINDIFF and mark<>0 THEN BEGIN //加仓
mark:=JC;//价差记录下来
TBUYSHORT(1,SS2,LMT ,DYNAINFO2( 7),0,账户,套利品种2);//开空最新价
TBUY(1,SS2,LMT ,DYNAINFO2( 7),0,账户,套利品种1);//开多最新价
END

这是之前写的套利策略,加仓和平仓都以最新价委托的,麻烦将之前说的,当触发加仓时,如果开多或开空只有一方成交了,另一个未成交超过20秒则立刻撤单按照对5价委托。当触发减仓时,如果平多或平空只有一方成交了,另一个未成交超过20秒则立刻撤单按照对5价委托。如果双方均未成交则一直挂着即可直到一方成交,然后执行策略。


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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/9/4 9:42:19    Post IP:180.169.30.6[只看该作者]

//如果品种2和品种1都未成交超过60
if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and  TGLOBALSUBMITEX(1,账户,套利品种2,1)>=60) then 
begin
TCANCELEX(1,3,账户,套利品种2 );
TCANCELEX(1,1,账户,套利品种1 ); 
end
//如果品种2的挂单时间超过60,并且品种1成交了
if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and TGLOBALSUBMITEX(1,账户,套利品种1,0)=0) then 
begin
TCANCELEX(1,3,账户,套利品种2);
TBUYSHORT(1,SS2,LMT,DYNAINFO2( 7,套利品种2)-5*MINDIFF,0,账户,套利品种2);
end

if (TGLOBALSUBMITEX(1,账户,套利品种1,1)>=60 and TGLOBALSUBMITEX(3,账户,套利品种2,0)=0) then 
begin
TCANCELEX(1,1,账户,套利品种1);
TBUY(1,SS2,LMT, DYNAINFO2( 7,套利品种1)+5*MINDIFF,0,账户,套利品种1);
end

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/4 9:57:27    Post IP:180.169.30.6[只看该作者]

 你的需求只要在2楼代码基础上修改即可了啊。你肯定得先理解2楼这个代码逻辑。
只要改下下单价格和委托方式 以及等待的秒数就变成减仓的逻辑了。 你可以先试着自行修改下。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
套利
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
  发帖心情 Post By:2019/9/4 11:54:44    Post IP:123.119.83.95[只看该作者]

我在这方面比较小白,昨天晚上试着自己套了套发现根本弄不会,还是要麻烦您帮忙构建一下,谢谢您了

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
  发帖心情 Post By:2019/9/4 17:39:47    Post IP:123.119.83.95[只看该作者]

 您好??

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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2019/7/30 14:13:39
  发帖心情 Post By:2019/9/9 14:56:57    Post IP:114.250.32.97[只看该作者]

IF (JC-mark)>=X*MINDIFF and mark<>0  THEN BEGIN //减仓
mark:=JC;//价差记录下来
TSELLSHORT(1,SS2,LMT ,DYNAINFO2( 7,套利品种2),0,账户,套利品种2);//买平
TSELL(1,SS2,LMT ,DYNAINFO2( 7,套利品种1),0,账户,套利品种1);//卖平
END

IF (mark-JC)>=X*MINDIFF and mark<>0 THEN BEGIN //加仓
mark:=JC;//价差记录下来
TBUYSHORT(1,SS2,LMT,DYNAINFO2( 7,套利品种2),0,账户,套利品种2);
TBUY(1,SS2,LMT, DYNAINFO2( 7,套利品种1),0,账户,套利品种1);
END




//如果品种2和品种1都未成交超过60
if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and  TGLOBALSUBMITEX(1,账户,套利品种2,1)>=60) then 
begin
TCANCELEX(1,3,账户,套利品种2 );
TCANCELEX(1,1,账户,套利品种1 ); 
end


//如果品种2的挂单时间超过60,并且品种1成交了
if (TGLOBALSUBMITEX(3,账户,套利品种2,1)>=60 and TGLOBALSUBMITEX(1,账户,套利品种1,0)=0) then 
begin
TCANCELEX(1,3,账户,套利品种2);
TBUYSHORT(1,SS2,LMT,DYNAINFO2( 7,套利品种2)-5*MINDIFF,0,账户,套利品种2);
end


if (TGLOBALSUBMITEX(1,账户,套利品种1,1)>=60 and TGLOBALSUBMITEX(3,账户,套利品种2,0)=0) then 
begin
TCANCELEX(1,1,账户,套利品种1);
TBUY(1,SS2,LMT, DYNAINFO2( 7,套利品种1)+5*MINDIFF,0,账户,套利品种1);
end


//品种1平仓没成交 2成交了 
if (TGLOBALSUBMITEX(2,账户,套利品种1,1)>=60 and TGLOBALSUBMITEX(4,账户,套利品种2,0)=0) then 
begin
TCANCELEX(1,2,账户,套利品种1);
TSELL(1,SS2,LMT ,DYNAINFO2( 28,套利品种1),0,账户,套利品种1);//卖平
end


if (TGLOBALSUBMITEX(4,账户,套利品种2,1)>=60 and TGLOBALSUBMITEX(2,账户,套利品种1,0)=0) then 
begin
TCANCELEX(1,4,账户,套利品种2);
TSELLSHORT(1,SS2,LMT ,DYNAINFO2( 34,套利品种2),0,账户,套利品种2);//买平
end


我是这样写的 为什么没有撤单发生

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/9/9 15:12:41    Post IP:180.169.30.6[只看该作者]

 你要实现的思路到底是原先1楼的还是后面的4楼的描述?
另外对五价是买五或卖五 还是最新价加减五个点?


命数如织,当如磐石。
 回到顶部
总数 12 1 2 下一页