readme

编译方法:

Requirements:

  1. 使用ICC 编译,使用gcc 会有warning
  2. 需要 Evolution/UtilHeader 这个项目
  3. ICC 编译时 需要加上 imf,irng,svml,否则会出现能编译,但是python import 时找不到

进入PyUtil目录后:

./make.sh

注意 现在改成使用UtilHeader 这个路径下面的文件,编译环境需要调整下

使用方法(以ipython 为例)

  1. import WqUtils (必须 WqUtils.so 在sys.path 路径中)

  2. 使用 WqUtils.PyFastLog

    a = WqUtils.PyFastLog()
    a.init()
    a.log()
    
  3. 使用 WqUtils.PyIPCMQ

    a = WqUtils.PyIPCMQ(...)
    ptr = a.pull()
    #(data 是一个python class,但是它包含c++ 代码中相对应struct的成员 )
    data = PyIPCMQ.asTradeMsg(ptr) 
    or data = PyIPCMQ.asWQData(ptr)
    

    还提供一个工具函数,根据主力次主力拿到真实合约
    tickerName = PyIPCMQ.market2STName("rb0001")

    以上是旧版的用法,仍然可以用,但不推荐
    新版本(20170622) 推荐的用法

    事先,你必须知道 server 上 IPCMQ 里面存放的数据是 WQData 还是TradeMsg
    然后 ,参照testIPCMQ.py 演示的代码

    如果是存放TradeMsg
    mq =PyTradeMsgIPCMQ(ipcKey=0x0b0b0200,queueID="MSG_EMS_RSP",  \
        appID="YourName4",isreader=True)
    msg = mq.pull()
    print msg
    print msg.cmdType
    pritn msg.engineID
    # 注意 TradeMsg 比 WQData 的 pull 返回值 多了两个字段:cmdType 和 engineID
    # 也可以自己根据 msg.cmdType,msg.engineID 来判断 msg.data是哪种数据
    # 支持PyTRawOrder,PyTOrderAction,PyTEngInfo,PyTEmsNotice,
    # PyTRspExch,PyTRspFill,PyTRspOver  这七种数据结构,
    # 成员变量和C++中struct 保持一致
    if isinstance(msg.data,PyTRawOrder):
        print msg.data.orderID
        ...
    elif  isinstance(msg.data,PyTRspExch):
        pass
    elif  isinstance(msg.data,PyTRspExch):
        pass
    
    如果存放 WQData
    mq = PyWQDataIPCMQ(ipcKey=0x0ae8c120,queueID="ares",  \
        appID="YourName",isreader=True)
    msg = mq.pull()
    # 返回的msg 是 PyWQTickerIndex,PyWQTimeEvent,PyWQFutureL1,
    # PyWQFutureL2,PyWQFutureL2Shfe 中的一种,对应 c++ 的 相应wqdata
    print msg
    print type(msg)
    if  isinstance(msg,PyWQTickerIndex):
        pass
    
  4. 使用TimeUtil

    WqUtils.TimeUtil.getTimeUs()
    WqUtils.TimeUtil.getTimeNs()
    WqUtils.TimeUtil.getClock()
    WqUtils.TimeUtil.getClockLow()
    WqUtils.TimeUtil.getTimeNsDay(clock,fauseAdjust)
    WqUtils.TimeUtil.getTimeStr(outLen,ns)
    WqUtils.TimeUtil.getDateStr(rollBack)
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,982评论 19 139
  • 一. 关于UNIAUTH 二. 快速开始 三. 系统结构 四. 参数配置 五.系统接入 六.SDK使用 七. 系统...
    56630a5632ee阅读 1,151评论 0 0
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,970评论 6 342
  • 朋友圈净是有意思的人事![憨笑][悠闲] 现在还真没几个人能找见我[阴险][奸笑]!就当仙人在天上好了[奸笑] 喜...
    纵情嬉戏天地间阅读 225评论 0 0