受欢迎的博客标签

通达信数据 - 使用通达信量化TQ(tdx quant tdxaidata)(2) - 工作原理(linux)

Published

平台:Linux

/stock/opentdx/venv/lib/python3.13/site-packages/tdxaidata/tdxaidata.py

 

'''
    Version: 1.3.1
    2026-10-23
'''

step 1.加载动态库

Linux 平台对应动态库 - libTdxAiData.so

需指定libTdxAiData.so的路径或系统变量

 self._dll_path = dll_path or os.environ.get("TDX_AI_DATA_LIB")

1.可选 TDX_AI_DATA_LIB 环境变量指定动态库路径

2.构造 _NativeTdxAiData(dll_path) 显式传入的路径

step 2.动态库初始化

TdxAiData.ini位于包内 tdxaidata/lib/

 

step 3.动态库提供的函数

绑定 TdxAiData.h 中需要使用的函数

        dll.GetStockInfo_Sub.argtypes = [c_char_p, AsyncReceiveDataCallBack]
        dll.GetStockInfo_Sub.restype = c_int
        dll.GetStockInfo_UnSub.argtypes = []
        dll.GetStockInfo_UnSub.restype = c_int
        dll.GetRealDATsInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetRealDATsInStr.restype = c_int
        dll.GetHISDATsInStr.argtypes = [c_char_p, c_char_p, c_char_p, c_char_p, c_char_p, c_int, POINTER(c_char_p)]
        dll.GetHISDATsInStr.restype = c_int
        dll.GetTickDATsInStr.argtypes = [c_char_p, c_char_p, c_int, c_int, POINTER(c_char_p)]
        dll.GetTickDATsInStr.restype = c_int
        dll.GetStockListInStr.argtypes = [c_char_p, c_int, POINTER(c_char_p)]
        dll.GetStockListInStr.restype = c_int
        dll.GetBlockStocksInStr.argtypes = [c_char_p, c_int, POINTER(c_char_p)]
        dll.GetBlockStocksInStr.restype = c_int
        dll.GetGPBlockInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetGPBlockInStr.restype = c_int
        dll.GetSTOCKInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetSTOCKInStr.restype = c_int
        dll.GetMoreInfoInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetMoreInfoInStr.restype = c_int
        dll.GetTradeCalendarInStr.argtypes = [c_char_p, c_char_p, c_char_p, c_int, POINTER(c_char_p)]
        dll.GetTradeCalendarInStr.restype = c_int
        dll.GetProDataInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetProDataInStr.restype = c_int
        dll.GetCWDATAInStr.argtypes = [c_char_p, c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetCWDATAInStr.restype = c_int
        dll.GetTrackZsETFInfoInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetTrackZsETFInfoInStr.restype = c_int
        dll.GetCBINFOInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetCBINFOInStr.restype = c_int
        dll.GetZDTDataInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetZDTDataInStr.restype = c_int
        dll.GetGbInfoInStr.argtypes = [c_char_p, c_int, c_int, c_char_p, c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetGbInfoInStr.restype = c_int
        dll.GetSpecZSGPInStr.argtypes = [c_char_p, c_int, POINTER(c_char_p)]
        dll.GetSpecZSGPInStr.restype = c_int
        dll.GetMinuteDataInStr.argtypes = [c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetMinuteDataInStr.restype = c_int
        dll.GetTodayMinuteDataInStr.argtypes = [c_char_p, c_int, POINTER(c_char_p)]
        dll.GetTodayMinuteDataInStr.restype = c_int
        dll.GetEXDAYL2InStr.argtypes = [c_char_p, c_int, POINTER(c_char_p)]
        dll.GetEXDAYL2InStr.restype = c_int
        dll.GetTdxDataStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetTdxDataStr.restype = c_int

        # 新增协议:集合竞价 / 批量取数
        dll.GetCallAuctionInStr.argtypes = [c_char_p, c_int, c_char_p, POINTER(c_char_p)]
        dll.GetCallAuctionInStr.restype = c_int
        dll.GetBatchCallAuctionInStr.argtypes = [c_char_p, c_char_p, c_int, c_char_p, POINTER(c_char_p)]
        dll.GetBatchCallAuctionInStr.restype = c_int
        dll.GetBatchRealDATsInStr.argtypes = [c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetBatchRealDATsInStr.restype = c_int
        dll.GetBatchSTOCKInStr.argtypes = [c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetBatchSTOCKInStr.restype = c_int
        dll.GetBatchMoreInfoInStr.argtypes = [c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetBatchMoreInfoInStr.restype = c_int
        dll.GetBatchCBINFOInStr.argtypes = [c_char_p, c_char_p, POINTER(c_char_p)]
        dll.GetBatchCBINFOInStr.restype = c_int
        # 域排序行情(RPC 2023)
        dll.GetBlockSortDataInStr.argtypes = [c_int, c_char_p, c_char_p, c_int, c_char_p, c_int, c_int, POINTER(c_char_p)]
        dll.GetBlockSortDataInStr.restype = c_int
        # 批量公式计算(服务器已有公式;domain 与 stock_list 二选一)
        dll.GetBatchFormulaInStr.argtypes = [
            c_char_p, c_char_p, c_int, c_char_p, c_char_p, c_int, c_int,
            c_char_p, c_char_p, c_int, c_int, c_int, c_char_p, c_int, POINTER(c_char_p),
        ]
        dll.GetBatchFormulaInStr.restype = c_int
        # 临时源码公式计算(RPC 3026;domain 与 stock_list 二选一)
        dll.GetSourceFormulaInStr.argtypes = [
            c_char_p, c_char_p, c_int, c_char_p, c_char_p, c_int, c_int,
            c_char_p, c_char_p, c_int, c_int, c_int, c_char_p, c_int, POINTER(c_char_p),
        ]
        dll.GetSourceFormulaInStr.restype = c_int
        # 市场强弱(RPC 2030;type 目前仅支持 0:沪深京市场)
        dll.GetMarketStrengthInStr.argtypes = [c_int, POINTER(c_char_p)]
        dll.GetMarketStrengthInStr.restype = c_int
        # 个股综合信息(RPC 2025;codestr 需带市场后缀,如 000001.SZ)
        dll.GetStockComprehensiveInfoInStr.argtypes = [c_char_p, POINTER(c_char_p)]
        dll.GetStockComprehensiveInfoInStr.restype = c_int