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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请帮忙指导下后台版套利策略的问题,谢谢了!

   

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


  共有2541人关注过本帖平板打印复制链接

主题:请帮忙指导下后台版套利策略的问题,谢谢了!

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


加好友 发短信
等级:论坛游侠 帖子:135 积分:0 威望:0 精华:0 注册:2017/9/6 16:23:52
请帮忙指导下后台版套利策略的问题,谢谢了!  发帖心情 Post By:2019/9/19 16:58:00    Post IP:1.203.174.20[只看该作者]

代码如下:
套利品种1:'DP2001';// 
套利品种2:'DP2005'; //
账户:'629795';  //账号
JC:dynainfo2(7,套利品种1)-dynainfo2(7,套利品种2);//最新价差
DEBUGFILE('c:\record.txt','套利空品种1=%.2f',套利品种1);
DEBUGFILE('c:\record.txt','套利多品种2=%.2f',套利品种2);
DEBUGFILE('c:\record.txt','价差=%.2f',jc);
//////////////////////////////////////////////////////////////////////
a:STKINDI('dp00','单位乘数.a',0,6,0);//单位乘数引用
//监控持仓和资金状况
KC:=TSELLHOLDINGEX(账户,套利品种1,1);//当前持仓量空头
DC:=TBUYHOLDINGEX(账户,套利品种2,1);//当前持仓量多头
当前可用资金:=TACCOUNT(19);
ZJ:当前可用资金>dynainfo2(7,套利品种1)*a;
DEBUGFILE('c:\record.txt','单位乘数=%.2f',a);
DEBUGFILE('c:\record.txt','空头持仓=%.2f',kc);
DEBUGFILE('c:\record.txt','多头持仓=%.2f',dc);
DEBUGFILE('c:\record.txt','资金是否够用=%.2f',ZJ);
/////////////////////////////////////////////////////////////////////开仓控制
if jc>=100*MINDIFF and KC=0 AND DC=0 and zj=1  then //价差大于上限值100时
begin
TBUYSHORT(1,ss,MKT ,0,0,账户,套利品种1);
TBUY(1,ss,MKT ,0,0,账户,套利品种2);
end

if jc<=50*MINDIFF AND KC=SS AND DC=SS then //价差小于下限值50时
begin
TsellSHORT(1,ss,MKT ,0,0,账户,套利品种1);
Tsell(1,ss,MKT ,0,0,账户,套利品种2);
end

///////////////////////////////////////////////////////开仓挂单处理

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

if (TGLOBALSUBMITEX(1,账户,套利品种2,1)>=4 and TGLOBALSUBMITEX(3,账户,套利品种1,0)=0) then 
begin
TCANCELEX(1,1,账户,套利品种2);
TBUY(1,TREMAINQTY(1,账户,套利品种2),LMT, DYNAINFO2( 7,套利品种2)+3*MINDIFF,0,账户,套利品种2);
end
///////////////////////////////////////////////////////平仓挂单处理 
//如果品种2和品种1都未成交超过4S
if (TGLOBALSUBMITEX(4,账户,套利品种1,1)>=4 and  TGLOBALSUBMITEX(2,账户,套利品种2,1)>=4) then 
begin
TCANCELEX(1,4,账户,套利品种1 );
TCANCELEX(1,2,账户,套利品种2 ); 
end
//如果品种2的挂单时间超过4s,并且品种1成交了
if (TGLOBALSUBMITEX(4,账户,套利品种1,1)>=4 and TGLOBALSUBMITEX(2,账户,套利品种2,0)=0) then 
begin
TCANCELEX(1,4,账户,套利品种1);
Tsellshort(1,TREMAINQTY(4,账户,套利品种1),LMT,DYNAINFO2( 7,套利品种1)+3*MINDIFF,0,账户,套利品种1);
end

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

这是后台输出的结果:
2019-09-18 22:52:37.493    套利空品种1=0.00
2019-09-18 22:52:37.493    套利多品种2=1.00
2019-09-18 22:52:37.493    价差=0.00
2019-09-18 22:52:37.493    单位乘数=-1.#R
2019-09-18 22:52:37.493    空头持仓=0.00
2019-09-18 22:52:37.493    多头持仓=0.00
2019-09-18 22:52:37.493    资金是否够用=0.00
2019-09-18 22:52:37.493    套利空品种1=0.00
2019-09-18 22:52:37.493    套利多品种2=1.00
2019-09-18 22:52:37.493    价差=0.00
2019-09-18 22:52:37.493    单位乘数=-1.#R
2019-09-18 22:52:37.493    空头持仓=0.00
2019-09-18 22:52:37.493    多头持仓=0.00
2019-09-18 22:52:37.493    资金是否够用=0.00

请问:1,我是同时监控的豆粕2001和豆粕2005两个品种,为什么输出的值是0和1,价差是0?
         2,模拟仓的持仓情况不能监控到吗?(准备现在模拟,后续上实盘用)?
         3,麻烦帮忙解决一下,万分感谢!

 回到顶部