:3 行代碼拉取通達信 K 線與財務(wù)數(shù)據(jù))
mootdx 實戰(zhàn)3 行代碼拉取通達信 K 線與財務(wù)數(shù)據(jù)【免費下載鏈接】mootdx通達信數(shù)據(jù)讀取的一個簡便使用封裝項目地址: https://gitcode.com/GitHub_Trending/mo/mootdx用 Python 拿 A 股數(shù)據(jù)要么自己啃通達信私有協(xié)議要么在幾個單點工具里拼湊。mootdx 是一個通達信數(shù)據(jù)讀取的 Python 封裝在線行情、離線 K 線、財務(wù)報表三類數(shù)據(jù)一次打包返回的都是 pandas DataFrame拉完就能直接進分析管線。為什么值得選 mootdx通達信是國內(nèi)券商軟件的通行數(shù)據(jù)源數(shù)據(jù)權(quán)威且實時但原生接口對 Python 開發(fā)者并不友好連接握手、二進制解析、服務(wù)器分片哪一環(huán)都會踩坑。mootdx 基于 tdxpy 把這些底層細節(jié)全部收走你只需要傳股票代碼和參數(shù)。相比直接調(diào) pytdx 的裸 API它最省心的地方是體驗一致性工廠方法統(tǒng)一入口、內(nèi)置服務(wù)器探測列表、空結(jié)果自動重試不用每次重新踩同樣的坑。對比維度pytdx 裸 APImootdx服務(wù)器選擇自己找 IP 和端口bestipTrue并發(fā)測速自動選最快離線數(shù)據(jù)手動拼 vipdoc 文件路徑按代碼自動定位 sh/sz 目錄財務(wù)報表無現(xiàn)成接口列表、下載、解析一條龍返回格式原始元組列表pandas DataFrame斷線處理手動重連內(nèi)置重試 心跳?;罴軜?gòu)速覽一類數(shù)據(jù)源一個入口代碼按數(shù)據(jù)源劃分mootdx/quotes.py 負責(zé)在線行情K 線、指數(shù)、分鐘線mootdx/reader.py 讀取本機通達信安裝目錄下的離線文件mootdx/affair.py 管財務(wù)數(shù)據(jù)的下載與解析服務(wù)器探測和測速邏輯集中在 mootdx/server.py底層還有一批 utils 提供緩存、頻率換算等公共能力。整體分層很薄讀源碼沒有負擔(dān)。工廠方法統(tǒng)一入口Quotes.factory(marketstd)一行拿到客戶端std股票/ext擴展市場自動切換底層實現(xiàn)。最快服務(wù)器自動探測bestipTrue會并發(fā) ping 內(nèi)置服務(wù)器列表結(jié)果寫入本地配置免去手動試 IP??战Y(jié)果自動重試基于 tenacity 檢測返回的 DataFrame 是否為空自動重連再試省去手寫重試循環(huán)。pandas 原生輸出所有接口的返回都是 DataFrame無需手動拆包。核心能力拆解線上、離線、財務(wù)三件套拉在線 K 線給個代碼就能跑最常用的入口是barsfrequency控制周期9 是日 K8 是 1 分鐘0 是 5 分鐘offset控制條數(shù)??蛻舳藚?shù)里multithread開啟多線程批量請求heartbeat保持長連接不被掐斷from mootdx.quotes import Quotes # 多線程請求 心跳?;?client Quotes.factory(marketstd, multithreadTrue, heartbeatTrue) # 拉取 600036 最近 100 根日 K 線 df client.bars(symbol600036, frequency9, offset100) print(df[[open, high, low, close, vol]].tail())讀本地歷史vipdoc 目錄就是數(shù)據(jù)倉庫如果你已經(jīng)裝了通達信客戶端歷史數(shù)據(jù)其實早就躺在安裝目錄的vipdoc文件夾里Reader 會按代碼和市場自動拼出文件路徑不用關(guān)心sz000001.day這類命名規(guī)則from mootdx.reader import Reader # tdxdir 指向你的通達信安裝目錄 reader Reader.factory(marketstd, tdxdirC:/new_tdx) daily reader.daily(symbol600036) # 日 K 線 minute reader.minute(symbol600036) # 分鐘線 fzline reader.fzline(symbol600036) # 5 分鐘線拿財務(wù)報表列目錄、下載、解析三步財務(wù)數(shù)據(jù)以 zip 壓縮包形式掛在遠程服務(wù)器上files()先看目錄fetch()下載parse()直接解析成表from mootdx.affair import Affair files Affair.files() # 查看可下載的報表文件列表 Affair.fetch(downdirtmp, filenamegpcw20231231.zip) # 下載單個報表 df Affair.parse(downdirtmp, filenamegpcw20231231.zip) # 解析為 DataFrame print(len(df), 條記錄)一個場景跑通給日線策略備數(shù)據(jù)如果你要搭一條拉數(shù)據(jù) → 算指標(biāo) → 落盤的小流程來驗證回測管線線上 K 線加移動平均就夠了。下面這段代碼完整走完這個鏈路from mootdx.quotes import Quotes client Quotes.factory(marketstd, multithreadTrue, heartbeatTrue) code 600036 # 拉最近 800 根日 K單次請求上限約 800 條歷史更長可用 start 分頁 df client.bars(symbolcode, frequency9, offset800).reset_index() # 常用技術(shù)指標(biāo) df[MA5] df[close].rolling(5).mean() df[MA20] df[close].rolling(20).mean() df[ret] df[close].pct_change() # 落盤成 CSV編碼用 utf-8-sig 方便 Excel 打開 df.to_csv(f{code}_daily.csv, indexFalse, encodingutf-8-sig) print(df[[datetime, close, MA5, MA20, ret]].tail())預(yù)期輸出當(dāng)前目錄下生成一份{code}_daily.csv包含日期、開高低收、成交量額和新增的 MA5 / MA20 / ret 三列控制臺打印最后 5 個交易日的收盤價與指標(biāo)值ret列首行為空pct_change 的正常行為。整段代碼不依賴本地安裝的通達信有網(wǎng)就能跑。調(diào)優(yōu)、生態(tài)與延伸穩(wěn)定性三條經(jīng)驗 第一次跑先加bestipTrue測速把最快服務(wù)器固化進本地配置長駐進程務(wù)必開heartbeatTrue斷線后庫檢測到空結(jié)果會自動重連拉長歷史時用start/offset分批源碼里get_k_data就是按 800 條一批切的。與 pandas 和緩存的配合所有接口返回 DataFrame可以直接to_csv/to_excelCLI 的-o參數(shù)也支持 CSV、HDF5、Excel 輸出。反復(fù)拉同一批代碼時用 mootdx/utils/pandas_cache.py 里的pd_cache裝飾器把結(jié)果存成本地 pkl 并設(shè)置過期時間能省掉大量重復(fù)請求手里有通達信導(dǎo)出的 txt 文件mootdx/tools/tdx2csv.py 可以批量轉(zhuǎn)成標(biāo)準(zhǔn) CSV。進一步學(xué)習(xí)docs/quick.md快速上手三大接口加 CLI 用法十分鐘能過完tests/真實調(diào)用示例與斷言適合對照驗證接口行為docs/api/行情、離線、財務(wù)接口的完整參數(shù)文檔。如果你做量化策略或金融數(shù)據(jù)分析數(shù)據(jù)源正好落在通達信上mootdx 能幫你把協(xié)議層的麻煩一次性省掉。建議先跑通上面bars的示例拿到第一份 DataFrame再用bestip測一次服務(wù)器速度然后決定要不要把它接進你的數(shù)據(jù)管線?!久赓M下載鏈接】mootdx通達信數(shù)據(jù)讀取的一個簡便使用封裝項目地址: https://gitcode.com/GitHub_Trending/mo/mootdx創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考