以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  tenterprice取值,以及ignorecheckprice  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=97646)

--  作者:a141027
--  发布时间:2016/5/20 12:18:48
--  tenterprice取值,以及ignorecheckprice
两个问题

1、我想取得上次下单价格并以此为基础计算下次下单价格,但tenterprice似乎没有起作用,语句如下:

...
tbuyshort(1,1,mkt);//第一次下单
tbuyshort(1,1,lmt,max(close-mindiff,tenterprice+mindiff*3),0);//第二次下单
...

以上语句已被限制在同一个周期内执行,且只执行一次。交易日志的记录如下:

...
2016-05-20 xx:xx:xx.xxx    【后台】XXXX TBuyShort 第 xxx 行出现信号
2016-05-20 xx:xx:xx.xxx    【后台】XXXX TBuyShort 已成功触发下单操作 价格:0.000000 数量:1 类型:1 账户: 品种:XXXX
2016-05-20 xx:xx:xx.xxx    【后台】XXXX TBuyShort 第 xxx 行出现信号
2016-05-20 xx:xx:xx.xxx    【后台】XXXX TBuyShort 已成功触发下单操作 价格:2066.000000 数量:1 类型:0 账户: 品种:XXXX
...
2016-05-20 xx:xx:xx.xxx    【回报】xxxxxxxxxxxx : XXXX - 正在申报 1 价格:2070.0000 开仓 卖出
2016-05-20 xx:xx:xx.xxx    【回报】xxxxxxxxxxxx : XXXX 全部成交 1 价格:2071 开 卖
2016-05-20 xx:xx:xx.xxx    【回报】xxxxxxxxxxxx : XXXX - 正在申报 1 价格:2071.0000 开仓 卖出
2016-05-20 xx:xx:xx.xxx    【回报】xxxxxxxxxxxx : XXXX 全部成交 1 价格:2071 开 卖
...

从回报可见,第一次实际下单价格是2070,问题是我公式触发的第二次下单价格为什么是2066,而不是2073?

是否用mkt指令下单,就会导致tenterprice取得下单价格为0?如果用mkt指令,是否要等到下一个周期/下一次刷新,甚至要收到回报后tenterprice才能取得正确的结果?触发下单所在的周期里最低价格是2067,似乎公式认为那时的tenterprice是0,因此max(close-mindiff,tenterprice+mindiff*3)的计算结果为2066。

2、后台下单用lmt指令时,系统会否像图表那样,先检验价格是否在本周期价格区间内,然后再下单?是否需要用ignorecheckprice跳过价格检验?

谢谢。

--  作者:yukizzc
--  发布时间:2016/5/20 12:40:48
--  

1、你的代码是同时进行的,这个间隔相比报单-回报,来的快的太多了,所以导致这个报单价格没取到,市价报出去先是0,然后已报单后才会有具体价格

2、不会,后台没有这个价格检验,图表上的价格检验也仅仅用于历史测评上,对当前盘中的k是不会执行的


--  作者:a141027
--  发布时间:2016/5/20 13:04:32
--  
嗯,我看其他周期里tenterprice可以正常取值,也猜到这个函数应该在同一次刷新里无法更新,只要取到上次价格,系统可以正确按照公式在指定价格下单,即使价格在该周期的价格区间之外。