Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:tenterprice取值,以及ignorecheckprice

1楼
a141027 发表于:2016/5/20 12:18:48
两个问题

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跳过价格检验?

谢谢。
2楼
yukizzc 发表于:2016/5/20 12:40:48

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

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

3楼
a141027 发表于:2016/5/20 13:04:32
嗯,我看其他周期里tenterprice可以正常取值,也猜到这个函数应该在同一次刷新里无法更新,只要取到上次价格,系统可以正确按照公式在指定价格下单,即使价格在该周期的价格区间之外。
共3 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.01172 s, 2 queries.