以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]委托未成交时间  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=78339)

--  作者:渴望知识
--  发布时间:2015/5/7 9:11:16
--  [求助]委托未成交时间

管理好,请教一下。

我在程序里编写了委托未成交的时间代码,但是发现好像总不执行,请问一下是不是我写的有问题呢?

kdbbwcj1:=kdbbtj and TISPRVREMAIN(4) and tsubmit(4)>300 and c<=(tENTERPRICe-3*a);//空单保本未成交
kdbbwcj2:=kdbbtj and TISPRVREMAIN(4) and c>=(tENTERPRICe-3*a) and c<tenterprice;

if kdbbwcj1 or kdbbwcj2 then begin
  tcancel(1,4);
  tsellshort(1,0,mkt);
  end

 

我发现未成交里委托的方向是买入。

我账户里现有空单,并且已经触发了平仓信号。那我就想计算这个挂平空单后到现在未成交的时间,我选择这个tsubmit(4)是否是对的呢?还是要选择tsubmit(1)呢?

如果按照委托里显示的,那就成买入了,这个请帮忙解释一下。

 

 


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

--  作者:jinzhe
--  发布时间:2015/5/7 9:20:27
--  
平空未成交是tsubmit(4)
--  作者:渴望知识
--  发布时间:2015/5/7 9:23:01
--  

另外再请教一下,这个TISPRBREMAIN和TISREMAIN是有什么区别吗?

因为我使用的是单策略多品种的,在后台程序运行里,我在代码编写上用的是:


if strcmp(dqpz,\'JD00\')=0 and sjlx=2 then begin
zs:=10;zy:=45;zzdc:=2;

end

if strcmp(dqpz,\'AX00\')=0 and sjlx=2 then begin
zs:=6;zy:=40;zzdc:=2;

end

 

这样编写应该使用哪种判断未成交 的命令?是上一笔还是全部的那种?是否会对我各个品种的持仓及未成交判断带来影响?


--  作者:jinzhe
--  发布时间:2015/5/7 9:24:00
--  

我本地测试数值是有效的,把你的测试代码贴出来

这个单子是手工下的还是程序下的?


--  作者:jinzhe
--  发布时间:2015/5/7 9:25:46
--  

区别是一个仅仅判断上一笔交易是否成交,一个是判断账户里面所有仍然有未成交单

函数判断只针对当前公式交易的合约进行判断


--  作者:渴望知识
--  发布时间:2015/5/7 10:19:09
--  

谢谢你的回答,我想用TISPRBREMAIN应该是没有什么问题的。

现在还有一个问题,请看附图。

我代码中KDBBWCJ1的条件在现在实盘中已经是满足的了。

我想要立即撤销挂单,同时市场价平仓。

但是我观察,好像这个挂单总是挂在5580那(B4)。

我想询问一下,如果条件满足的情况下,程序会先去执行我上面的那个B4(因为那条代码条件也满足了),还是先执行我BEGIN里的TSELLSHORT的那个条件呢?

 

 


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

--  作者:jinzhe
--  发布时间:2015/5/7 10:37:45
--  
代码执行顺序是从上往下的,如果两个条件都符合,那么会执行写在前面的
--  作者:渴望知识
--  发布时间:2015/5/7 10:49:29
--  

但是如果按照逻辑思维向下的话,那应该是执行我BEGIN里面的语句吧。

如果就是执行上面的,那如何来改正呢?

if    c<=(tENTERPRICe-2*a) and ll>=(tENTERPRICe-m*a) and c>=b4 and tenterbars>1
      && dqzhcc<0 then tsellshort(1,0,lmt,b4) ; //空单保本   
     
kdbbtj:=(( B1<=LL and LL<(tENTERPRICe-m*a) && c>=b4 and abb  and tenterbars>1) OR
       ( c<=(tENTERPRICe-2*a) and ll>=(tENTERPRICe-m*a) and c>=b4 and tenterbars>1 ))
        && dqzhcc<0 ;           //空单保本条件

kdbbwcj1:=kdbbtj and TISPRVREMAIN(4) and tsubmit(4)>300 and c<=(tENTERPRICe-3*a);//空单保本未成交(下单设置里撤单的设置要改成继续挂单)
kdbbwcj2:=kdbbtj and TISPRVREMAIN(4) and c>=(tENTERPRICe-3*a) and c<tenterprice;

if kdbbwcj1 or kdbbwcj2 then begin
  tcancel(1,4);
  tsellshort(1,0,mkt);
  end

 

就是说,这个BEGIN里的平多操作我希望是条件成立了就立即执行的。


--  作者:jinzhe
--  发布时间:2015/5/7 10:56:06
--  
代码顺序从上到下来执行的,但是你说的好像和我表达的意思相反了
--  作者:渴望知识
--  发布时间:2015/5/7 10:56:20
--  

真是怪了啊,我预警里都已经出现更改的价格了,但是挂单里总还是那个价格,为什么呢?

 


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