欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 后台预警价格问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3349人关注过本帖树形打印复制链接

主题:后台预警价格问题

帅哥哟,离线,有人找我吗?
foziheyu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2019/2/19 11:09:13
后台预警价格问题  发帖心情 Post By:2019/2/19 11:15:34 [只看该作者]

后台程序中, 我用限价100策略报了一个委托单,  但是预警记录里面记录的却是当时的成交价格, 可能是99
这样导致我用TORDERPRICE(D,1)取上次委托价格的时候, 取的是99, 不是100

怎么才能取到我上次委托的100?
[此贴子已经被作者于2019/2/19 11:16:14编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/2/19 11:28:47 [只看该作者]

没办法,该函数就是这样设计得。未成交前时委托价,成交后更新为成交价。


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
banzhuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2019/2/19 11:32:03 [只看该作者]

该函数取到的价格如果未成交状态时就是未成交价,成交后返回的则是成交价。
没有直接函数可以获取 上次委托价,或者您用全局变量记录下,开仓时记录下

 回到顶部
帅哥哟,离线,有人找我吗?
foziheyu
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2019/2/19 11:09:13
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/2/19 13:32:43 [只看该作者]

你说的价格指的是这个?这里的预警价格指的是预警触发时所对应的行情价格


图片点击可在新窗口打开查看此主题相关图片如下:20190219132119.368-4941.jpg
图片点击可在新窗口打开查看

 

该函数对应的应该是“监控”中的记录价格。

 

[此贴子已经被作者于2019/2/19 13:33:02编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
banzhuan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:16558 积分:0 威望:0 精华:0 注册:2017/6/1 10:24:09
  发帖心情 Post By:2019/2/19 13:39:36 [只看该作者]

本地测试了没问题,你用debugfile输出看看吧

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

 回到顶部
帅哥哟,离线,有人找我吗?
foziheyu
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2019/2/19 11:09:13
  发帖心情 Post By:2019/2/19 15:24:46 [只看该作者]

好的, 我再试试

 回到顶部
帅哥哟,离线,有人找我吗?
foziheyu
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2019/2/19 11:09:13
  发帖心情 Post By:2019/2/20 6:19:13 [只看该作者]

再次核对日志, 还是有问题
是这样的, 我的代码和你的测试的不一样, 要复杂一些:
1. 我监控了2个品种ZN04,ZN05, 监控周期1分钟, 1秒刷新一次, 同时勾选了tick级别刷新
2. 根据监控记录, 大多是ZN04触发的时候, 对ZN05进行了限价委托
3. 然后在ZN05触发的时候, 我调用TORDERPRICE目的是取步骤2中的ZN05委托价(此时ZN05未成交), 但每次取出的都不对

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/2/20 9:05:13 [只看该作者]

提供你的测试代码。


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
foziheyu
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:12 积分:0 威望:0 精华:0 注册:2019/2/19 11:09:13
  发帖心情 Post By: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的时候取不到委托价



 回到顶部
总数 16 1 2 下一页