readme

作者: 突然想吃泡面 | 来源:发表于2017-03-14 10:59 被阅读5次

    编译方法:

    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)
      

    相关文章

      网友评论

          本文标题:readme

          本文链接:https://www.haomeiwen.com/subject/xumcnttx.html