以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  后台程序化 TREMAINQTY  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=171274)

--  作者:www532412596
--  发布时间:2019/7/25 10:11:40
--  后台程序化 TREMAINQTY

F:=TREMAINQTY(1,\'60007970\',stklabel);
if F>=1 then BEGIN
DELETEFROMBLOCK(STKLABEL(),\'自选股\');
end 

 

后台预警实验上述代码。如果有未成交单则从自选股中删除。(存在开多未成交单 和 对应票)

结果没有预期效果,请问怎么解决,谢谢


--  作者:FireScript
--  发布时间:2019/7/25 10:32:40
--  
该函数仅后台程式化交易运行中有效
该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录。

你下单是怎么下单的。手工还是程序化本身下的?

--  作者:www532412596
--  发布时间:2019/7/25 10:46:40
--  

单子是之前后台程式化交易下出来的,感觉结果有出入,就暂停了,弄个上面的代码测试一下的


--  作者:www532412596
--  发布时间:2019/7/25 10:48:35
--  

这单是之前后台程序化下的单,感觉运行与预期不一致,就暂停后台预警,弄上述个代码测试一下。

 

 

原来代码

STIME:=TSUBMITEX(1,\'60007970\',\'\'); //开多单的委托单历时
F:=TREMAINQTY(1,\'60007970\',\'\');   //开多单未成交委托数量
IF STIME>=5 AND  DYNAINFO(7)<DYNAINFO(54)  THEN BEGIN
 TCancelex(1,1,\'\',\'\');//开多没有成交5秒后取消挂单
    TBUY(INBLOCK( \'短线股票池\'),F,MKT); //若股票依然在短线股票池中则重新下单   
END

 

这代码没有执行


--  作者:FireScript
--  发布时间:2019/7/25 10:59:03
--  
 你在调试的那段代码里面加个下单语句,下个不能成交的单子。
TBUY(1,1,LMT,c-30*MINDIFF);
s:TREMAINQTY(1,\'\',stklabel);
if s>=1 then DELETEFROMBLOCK(STKLABEL,\'自选股\');

本地测试上面代码是可用正常删除品种的。如果不是当前指标下的单子,应该是检测不到的。



--  作者:www532412596
--  发布时间:2019/7/25 11:21:49
--  
是的,用你给的代码,可以删除股票
--  作者:www532412596
--  发布时间:2019/7/25 14:33:04
--  

那我是不是要在策略中每个读取委托量   TREMAINQTY之前,  先下这样不可成交的单子         TBUY(1,1,LMT,c-30*MINDIFF);  才能读取成功
 


--  作者:FireScript
--  发布时间:2019/7/25 14:49:34
--  
 我下那个单子本质是为了使得监控界面有一个记录,这个函数就是从这里读取值的:

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

正常只要这里的记录OK得话都是能读取到数据的。

你上面说有段代码没有执行。你最好在中间加点调试语句,输出下当时的关键变量看下。另外你还需要注意下后台数据量的设置。如果上次未成交的位置在100K之前的位置,而你后台设置的数据量小于100个周期。那的确有可能取不到。