readme

編譯方法:

Requirements:

  1. 使用ICC 編譯,使用gcc 會有warning
  2. 需要 Evolution/UtilHeader 這個項目
  3. ICC 編譯時 需要加上 imf,irng,svml,否則會出現(xiàn)能編譯,但是python import 時找不到

進入PyUtil目錄后:

./make.sh

注意 現(xiàn)在改成使用UtilHeader 這個路徑下面的文件,編譯環(huán)境需要調(diào)整下

使用方法(以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)
    

    還提供一個工具函數(shù),根據(jù)主力次主力拿到真實合約
    tickerName = PyIPCMQ.market2STName("rb0001")

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

    事先,你必須知道 server 上 IPCMQ 里面存放的數(shù)據(jù)是 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
    # 也可以自己根據(jù) msg.cmdType,msg.engineID 來判斷 msg.data是哪種數(shù)據(jù)
    # 支持PyTRawOrder,PyTOrderAction,PyTEngInfo,PyTEmsNotice,
    # PyTRspExch,PyTRspFill,PyTRspOver  這七種數(shù)據(jù)結構,
    # 成員變量和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)
    
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,616評論 19 139
  • 一. 關于UNIAUTH 二. 快速開始 三. 系統(tǒng)結構 四. 參數(shù)配置 五.系統(tǒng)接入 六.SDK使用 七. 系統(tǒng)...
    56630a5632ee閱讀 1,178評論 0 0
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,276評論 6 342
  • 朋友圈凈是有意思的人事![憨笑][悠閑] 現(xiàn)在還真沒幾個人能找見我[陰險][奸笑]!就當仙人在天上好了[奸笑] 喜...
    縱情嬉戲天地間閱讀 244評論 0 0

友情鏈接更多精彩內(nèi)容