以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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=168288)
|
-- 作者:foziheyu
-- 发布时间:2019/2/19 11:15:34
-- 后台预警价格问题
后台程序中, 我用限价100策略报了一个委托单, 但是预警记录里面记录的却是当时的成交价格, 可能是99这样导致我用TORDERPRICE(D,1)取上次委托价格的时候, 取的是99, 不是100
怎么才能取到我上次委托的100?
[此贴子已经被作者于2019/2/19 11:16:14编辑过]
|
-- 作者:wenarm
-- 发布时间:2019/2/19 11:28:47
--
没办法,该函数就是这样设计得。未成交前时委托价,成交后更新为成交价。
|
-- 作者:banzhuan
-- 发布时间:2019/2/19 11:32:03
--
该函数取到的价格如果未成交状态时就是未成交价,成交后返回的则是成交价。没有直接函数可以获取 上次委托价,或者您用全局变量记录下,开仓时记录下
|
-- 作者:foziheyu
-- 发布时间:2019/2/19 12:42:17
--
不是的, 我测试的结果是这样的, 按时间顺序 1, 按限价100元报单, 未成交 2, 预警记录中记录此时的市价是99, 注意此时还没成交 此时用TORDERPRICE(D,1)取到的是99, 函数说明中是说"未成交时为委托价", 那取到的就应该是委托价100, 而不是当时的市价99 3, 报单成交, 因为限价所以成交价为100 此时用TORDERPRICE(D,1)取到的还是99, 也不是函数说明中的"成交后为成交价"
===================== 取前N次的下单价格。未成交时为委托价,成交后为成交价
用法:TORDERPRICE(D,N) 表示取前N次的下单委托价格 D表示取委托方向:0所有方向;1开多;2平多;3开空;4平空 若执行失败则返回-1. 该函数的计算依赖于后台交易记录。任何交易记录的删减、增加都会导致返回值的变化。 该函数返回常数
注意: 该函数依赖TBUY等交易语句或者在交易监控中的手工干预的成交记录。 所属函数组:后台程式化交易(专业版)
|
-- 作者:wenarm
-- 发布时间:2019/2/19 13:32:43
--
你说的价格指的是这个?这里的预警价格指的是预警触发时所对应的行情价格
此主题相关图片如下:20190219132119.368-4941.jpg

该函数对应的应该是“监控”中的记录价格。
[此贴子已经被作者于2019/2/19 13:33:02编辑过]
|
-- 作者:banzhuan
-- 发布时间:2019/2/19 13:39:36
--
本地测试了没问题,你用debugfile输出看看吧
此主题相关图片如下:temp.png

|
-- 作者:foziheyu
-- 发布时间:2019/2/19 15:24:46
--
好的, 我再试试
|
-- 作者:foziheyu
-- 发布时间:2019/2/20 6:19:13
--
再次核对日志, 还是有问题 是这样的, 我的代码和你的测试的不一样, 要复杂一些:1. 我监控了2个品种ZN04,ZN05, 监控周期1分钟, 1秒刷新一次, 同时勾选了tick级别刷新 2. 根据监控记录, 大多是ZN04触发的时候, 对ZN05进行了限价委托 3. 然后在ZN05触发的时候, 我调用TORDERPRICE目的是取步骤2中的ZN05委托价(此时ZN05未成交), 但每次取出的都不对
|
-- 作者:wenarm
-- 发布时间:2019/2/20 9:05:13
--
提供你的测试代码。
|
-- 作者:foziheyu
-- 发布时间:2019/2/21 10:50:09
--
代码:
当前品种:=STKLABEL(); ZN05跌停价:=dynainfo2(55,\'ZN05\'); if 当前品种 = \'ZN04\' AND MOD(CURRENTTIME,5)=0 then BEGIN
Tbuy(1,1,LMT,ZN05跌停价,0,\'\',\'ZN05\'),allowrepeat;
MSGOUT(ISLASTBAR , \'ZN05下单限价\'+\' \'+ NUMTOSTR(ZN05跌停价,1)); end MSGOUT(ISLASTBAR , 当前品种+\' \'+ NUMTOSTR(TORDERPRICE(0,1),1));
后台设置: 监控ZN04,ZN05, 一秒执行一次
实测打印出的日志: 2019/02/21 10:37:10 ZN05下单限价 19975.0 2019/02/21 10:37:10 ZN04 19975.0 2019/02/21 10:37:10 ZN05 -1.0 2019/02/21 10:37:11 ZN04 19975.0 2019/02/21 10:37:11 ZN05 -1.0 2019/02/21 10:37:12 ZN04 19975.0 2019/02/21 10:37:12 ZN05 -1.0 2019/02/21 10:37:13 ZN04 19975.0 2019/02/21 10:37:13 ZN05 -1.0 2019/02/21 10:37:14 ZN04 19975.0 2019/02/21 10:37:14 ZN05 -1.0
结论: 当前品种为ZN04的时候, 为ZN05下单, 当前品种是ZN05的时候取不到委托价
|