套利品种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