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