以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=166061)

--  作者:897
--  发布时间:2018/10/24 14:22:05
--  咨询下委托过程
条件:=ref(c,1)>2000 and ref(holding>0,1);
平多:SELL(条件,100%,limitr,2010);
反手做空:BUYSHORT(条件,100%,limitr,2010);

此时图上有很多白色箭头,说明是没成交,但也有能成交的箭头标志,由于设置是昨日的条件判断,当一分钟K线刚开始1秒,其实就能判断他是否成立的,
假设前一条K线收盘价2005,
当前1分钟K线收盘价2005,最高2010,最低2000,,

咨询下他的委托过程
1.如果以走完K线为程序运行,因昨日收盘2005大于2000,条件满足,在K线结束时,发出平多,能否成交取决下一条K线能否高于2020,平多成功后会发出做空委托,是不是这样?
如下一条K线最高价低于2010,但收盘还是大于2000,此时过程是不是:撤掉前面委托,继续执行发出委托命令,还是保持前面委托不变?

2.如果以固定5秒轮询方式执行且没设置无撤单追单命令,在第5秒时,因为条件成立,即发出委托,因一条K线只能执行一次程序,当前K线后55秒有最高价2010,能否确定成交,如果当前K线最高是2011,能否确定成交?
还是,每隔5秒执行一次程序,不断撤掉委托发出委托?

3.如果以固定5秒轮询,设置撤单追单命令,情况是优先按照撤单追单来执行还是程序来执行

麻烦版主大侠,详细说一下委托的前后过程,并指出哪些地方说错了,以方便理解。IGNORECHECKPRICE忽略价格检查更不好用。

--  作者:banzhuan
--  发布时间:2018/10/24 14:38:35
--  
1、信号触发后,平多和开空的委托是同时发出的,除非使用了顺序下单的功能;  不会去撤销之前的委托,仍然为挂单状态;
2、价格到了2010不一定成交,交易所根据价格优先,时间优先的原则;如果最高价是2011,那2010的肯定能成交; 如果没使用撤单功能,该笔委托不会撤单的。
3、如果是5秒轮询,在该根K上出现信号后发出委托,如果设置了追撤单并满足,就按追撤单设置来进行报单委托。

--  作者:897
--  发布时间:2018/10/24 14:55:52
--  
谢谢您的回答,明白了很多,还有三点问一下

一.5秒轮询 一分钟的K线上是执行一次,也就是第五秒执行一次,其他55秒不执行程序吧?

二:因为前面说的2011价格可能在前五秒就出现,为了确定此条K线成功交易,设置1秒轮询,只要第一秒最高价不是2011,这条命令就能成交?

三:因为委托发出了,后几条K都没有达到价格大于2010的条件,所以一直挂着,如果程序里开仓时间30分钟后,价格达到2007卖出,是不是无法执行?如何让他执行?


--  作者:banzhuan
--  发布时间:2018/10/24 15:09:39
--  
1、是的一根K线上一个下单语句只会执行一次;
2、肯定要根据你委托报单后,价格是否到达了可成交范围之内啊,比如你委托发出后,最高价到了2011,那2010的单子就会成交;如果2011是之前的最高价,在你报单之后未出现过该价格,那2010的单子可能就成交不了。
3、后续的单子还是可以正常报出的

--  作者:897
--  发布时间:2018/10/24 15:44:53
--  
第三点不明白,既然已经发出了卖出委托,那软件上未成交单里就有卖出的单子,卖出还挂着,怎么能同时有买入的单子,要平掉后才能买入啊?这是一个疑问

假设下一条K线没达到价格,那应该是挂着的,但收盘价格还是大约2000,满足卖出条件,按照命令,下下一条应该是继续发出委托,前一条已经有委托,到这K线,程序不执行吧

其次,这条委托一直挂着,直到,比如前面说的2007的价格条件,也应该是无法委托卖出的啊,怎么会不影响?这是第二个疑问

非常感谢您的耐心回答

--  作者:banzhuan
--  发布时间:2018/10/24 15:57:44
--  
1、图表的虚拟持仓(holding)是根据图上的信号计算出来的,不是按照账户实际持仓计算出来的。 当图表上出现平空开多的信号,那它就认为发出的平空、开多的委托已经成交了。 所以无论之前的单子是否有成交,下次出现信号的时候还是会继续报单委托的。
如果你想先平空,待平空成交后再执行开多,那需要在代码中加上顺序下单(ORDERQUEUE)指令。

2、和问题1其实是一样的,图表的持仓是虚拟计算出来的,后续出现信号还会正常报单