以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  后台程序化撤单追单怎么写?  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=173401)

--  作者:qq代人发帖
--  发布时间:2019/12/5 10:54:52
--  后台程序化撤单追单怎么写?

请教:后台程序化撤单追单怎么写?

 后台程序化撤单追单怎么写?以开多为例。如果超过5秒,有5手开多单(或任意手)没成交,则全撤,然后再等2秒,进行追单。

[此贴子已经被作者于2019/12/5 10:55:33编辑过]

--  作者:FireScript
--  发布时间:2019/12/5 11:12:03
--  
 GLOBALVARIABLE:ct:=0;

//有平多未成交单,且5秒未成交,则撤单
if TISREMAIN(1)=1 and TSUBMIT(1)>5 then begin
 TCANCEL(1,1);//撤单完成后进行追单
 ct:=CURRENTTIME;
end


if CURRENTTIME-ct>=2 and ct<>0  then
begin
tbuy(1,1,MKT);
ct:=0;
end

追单的手数 自行控制下就行了。

--  作者:patient2009
--  发布时间:2019/12/5 12:50:49
--  
麻烦把追单手数给写一下。因为我不太熟悉,按自己思路写了写,还是没成功。追单手数和撤单手数要一致。谢谢。
--  作者:patient2009
--  发布时间:2019/12/5 12:52:31
--  
追单手数要跟撤单手数一致,怎么写?自己尝试写的没成功。谢谢。
--  作者:banzhuan
--  发布时间:2019/12/5 13:20:43
--  
//以开多举例,监控开多未成交单
WCJ:=TREMAINQTY( 1,\'账号\',STKLABEL);//未成交单数量
IF WCJ<>0 THEN BEGIN
A:=WCJ;//未成交单数量赋值给A
END

//对未成交单撤单,并追单
IF WCJ>0 THEN BEGIN
TCANCELEX(1,1,\'账号\',STKLABEL );
TBUY(WCJ=0,A,MKT,0,\'账号\',STKLABEL);//追单数量为A
END

--  作者:patient2009
--  发布时间:2019/12/5 16:43:11
--  
GLOBALVARIABLE:A1:=0;
GLOBALVARIABLE:WCJ1:=0;

WCJ1:=TISREMAIN(1);
IF WCJ1<>0 then begin
  A1:=WCJ1;
END
IF WCJ1>0 THEN BEGIN
  TCANCEL(1,1);
  WCJ1=0;
END
IF WCJ1=0 AND A1<>0 THEN BEGIN
  tbuy(1,A1,mkt);
  A1=0;
end

这样写可以吗。如果追单还不成交的话,可以实现多次撤单直至成交吗。有没有办法可以直接对价追仓。

--  作者:banzhuan
--  发布时间:2019/12/5 17:05:34
--  
可以的,不成交的话会再次撤单追单; 对手价需要在下单语句中用限价报单,比如:TBUY(1,1,LMT,DYNAINFO( 21)) ;  买入时选择委卖价DYNAINFO( 21),卖出时选择委买价DYNAINFO( 20)