Python配置同花順全數(shù)據(jù)接口教程詳解
前往:http://quantapi.10jqka.com.cn/?page=home

如果是windows,根據(jù)不同用戶,可以選擇不同的下載。
一、iFinDPy 模塊
下載完成后,會(huì)出現(xiàn)一個(gè)DataInterface_free_Windows_20210812.7z的文件,解壓到任意文件夾中。打開(kāi)該文件夾進(jìn)入Bin文件夾后,再打開(kāi)Tool文件夾,雙擊運(yùn)行SuperCommand.exe,并使用iFinD賬號(hào)免費(fèi)登錄。




選擇python,確定。同時(shí)添加路徑。

選上。然后重啟電腦,相關(guān)環(huán)境變量設(shè)置生效。
現(xiàn)在就可以在python環(huán)境中調(diào)用iFinDPy了。
二、相關(guān)代碼
安裝iFinDPy后,即可。具體可以參考:http://quantapi.10jqka.com.cn/?page=sample。
# -*- coding: utf-8 -*-
from iFinDPy import *
from datetime import datetime
import pandas as pd
import time as _time
import json
from threading import Thread,Lock,Semaphore
import requests
sem = Semaphore(5) # 此變量用于控制最大并發(fā)數(shù)
dllock = Lock() #此變量用來(lái)控制實(shí)時(shí)行情推送中落數(shù)據(jù)到本地的鎖
# 登錄函數(shù)
def thslogindemo():
# 輸入用戶的帳號(hào)和密碼
thsLogin = THS_iFinDLogin("數(shù)據(jù)接口_賬號(hào)","數(shù)據(jù)接口_密碼")
print(thsLogin)
if thsLogin != 0:
print('登錄失敗')
else:
print('登錄成功')
def datepool_basicdata_demo():
# 通過(guò)數(shù)據(jù)池的板塊成分函數(shù)和基礎(chǔ)數(shù)據(jù)函數(shù),提取滬深300的全部股票在2020-11-16日的日不復(fù)權(quán)收盤(pán)價(jià)
data_hs300 = THS_DP('block', '2020-11-16;001005290', 'date:Y,thscode:Y,security_name:Y')
if data_hs300.errorcode != 0:
print('error:{}'.format(data_hs300.errmsg))
else:
seccode_hs300_list = data_hs300.data['THSCODE'].tolist()
data_result = THS_BD(seccode_hs300_list, 'ths_close_price_stock', '2020-11-16,100')
if data_result.errorcode != 0:
print('error:{}'.format(data_result.errmsg))
else:
data_df = data_result.data
print(data_df)
def datapool_realtime_demo():
# 通過(guò)數(shù)據(jù)池的板塊成分函數(shù)和實(shí)時(shí)行情函數(shù),提取上證50的全部股票的最新價(jià)數(shù)據(jù),并將其導(dǎo)出為csv文件
today_str = datetime.today().strftime('%Y-%m-%d')
print('today:{}'.format(today_str))
data_sz50 = THS_DP('block', '{};001005260'.format(today_str), 'date:Y,thscode:Y,security_name:Y')
if data_sz50.errorcode != 0:
print('error:{}'.format(data_sz50.errmsg))
else:
seccode_sz50_list = data_sz50.data['THSCODE'].tolist()
data_result = THS_RQ(seccode_sz50_list,'latest')
if data_result.errorcode != 0:
print('error:{}'.format(data_result.errmsg))
else:
data_df = data_result.data
print(data_df)
data_df.to_csv('realtimedata_{}.csv'.format(today_str))
def iwencai_demo():
# 演示如何通過(guò)不消耗流量的自然語(yǔ)言語(yǔ)句調(diào)用常用數(shù)據(jù)
print('輸出資金流向數(shù)據(jù)')
data_wencai_zjlx = THS_WC('主力資金流向', 'stock')
if data_wencai_zjlx.errorcode != 0:
print('error:{}'.format(data_wencai_zjlx.errmsg))
else:
print(data_wencai_zjlx.data)
print('輸出股性評(píng)分?jǐn)?shù)據(jù)')
data_wencai_xny = THS_WC('股性評(píng)分', 'stock')
if data_wencai_xny.errorcode != 0:
print('error:{}'.format(data_wencai_xny.errmsg))
else:
print(data_wencai_xny.data)
def dlwork(tick_data):
# 本函數(shù)為實(shí)時(shí)行情訂閱新啟線程的任務(wù)函數(shù)
dllock.acquire()
with open('dlwork.txt', 'a') as f:
for stock_data in tick_data['tables']:
if 'time' in stock_data:
timestr = _time.strftime('%Y-%m-%d %H:%M:%S', _time.localtime(stock_data['time'][0]))
print(timestr)
f.write(timestr + str(stock_data) + '\n')
else:
pass
dllock.release()
def work(codestr,lock,indilist):
sem.acquire()
stockdata = THS_HF(codestr, ';'.join(indilist),'','2020-08-11 09:15:00', '2020-08-11 15:30:00','format:json')
if stockdata.errorcode != 0:
print('error:{}'.format(stockdata.errmsg))
sem.release()
else:
print(stockdata.data)
lock.acquire()
with open('test1.txt', 'a') as f:
f.write(str(stockdata.data) + '\n')
lock.release()
sem.release()
def multiThread_demo():
# 本函數(shù)為通過(guò)高頻序列函數(shù),演示如何使用多線程加速數(shù)據(jù)提取的示例,本例中通過(guò)將所有A股分100組,最大線程數(shù)量sem進(jìn)行提取
# 用戶可以根據(jù)自身場(chǎng)景進(jìn)行修改
today_str = datetime.today().strftime('%Y-%m-%d')
print('today:{}'.format(today_str))
data_alla = THS_DP('block', '{};001005010'.format(today_str), 'date:Y,thscode:Y,security_name:Y')
if data_alla.errorcode != 0:
print('error:{}'.format(data_alla.errmsg))
else:
stock_list = data_alla.data['THSCODE'].tolist()
indi_list = ['close', 'high', 'low', 'volume']
lock = Lock()
btime = datetime.now()
l = []
for eachlist in [stock_list[i:i + int(len(stock_list) / 10)] for i in
range(0, len(stock_list), int(len(stock_list) / 10))]:
nowstr = ','.join(eachlist)
p = Thread(target=work, args=(nowstr, lock, indi_list))
l.append(p)
for p in l:
p.start()
for p in l:
p.join()
etime = datetime.now()
print(etime-btime)
pd.options.display.width = 320
pd.options.display.max_columns = None
def reportDownload():
df = THS_ReportQuery('300033.SZ','beginrDate:2021-08-01;endrDate:2021-08-31;reportType:901','reportDate:Y,thscode:Y,secName:Y,ctime:Y,reportTitle:Y,pdfURL:Y,seq:Y').data
print(df)
for i in range(len(df)):
pdfName = df.iloc[i,4]+str(df.iloc[i,6])+'.pdf'
pdfURL = df.iloc[i,5]
r = requests.get(pdfURL)
with open(pdfName,'wb+') as f:
f.write(r.content)
def main():
# 本腳本為數(shù)據(jù)接口通用場(chǎng)景的實(shí)例,可以通過(guò)取消注釋下列示例函數(shù)來(lái)觀察效果
# 登錄函數(shù)
thslogindemo()
# 通過(guò)數(shù)據(jù)池的板塊成分函數(shù)和基礎(chǔ)數(shù)據(jù)函數(shù),提取滬深300的全部股票在2020-11-16日的日不復(fù)權(quán)收盤(pán)價(jià)
# datepool_basicdata_demo()
#通過(guò)數(shù)據(jù)池的板塊成分函數(shù)和實(shí)時(shí)行情函數(shù),提取上證50的全部股票的最新價(jià)數(shù)據(jù),并將其導(dǎo)出為csv文件
# datapool_realtime_demo()
# 演示如何通過(guò)不消耗流量的自然語(yǔ)言語(yǔ)句調(diào)用常用數(shù)據(jù)
# iwencai_demo()
# 本函數(shù)為通過(guò)高頻序列函數(shù),演示如何使用多線程加速數(shù)據(jù)提取的示例,本例中通過(guò)將所有A股分100組,最大線程數(shù)量sem進(jìn)行提取
# multiThread_demo()
# 本函數(shù)演示如何使用公告函數(shù)提取滿足條件的公告,并下載其pdf
# reportDownload()
if __name__ == '__main__':
main()
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
pyecharts繪制各種數(shù)據(jù)可視化圖表案例附效果+代碼
這篇文章主要介紹了pyecharts繪制各種數(shù)據(jù)可視化圖表案例并附效果和代碼,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,感興趣的小伙伴可以參考一下2022-06-06
Python裝飾器類方法擴(kuò)展元類管理實(shí)例探究
這篇文章主要為大家介紹了Python裝飾器類方法擴(kuò)展元類管理實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
python實(shí)現(xiàn)快遞價(jià)格查詢系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)快遞價(jià)格查詢系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))
下面小編就為大家?guī)?lái)一篇淺談numpy中l(wèi)inspace的用法 (等差數(shù)列創(chuàng)建函數(shù))。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
教你怎么用Python selenium操作瀏覽器對(duì)象的基礎(chǔ)API
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著怎么用Python selenium操作瀏覽器對(duì)象的基礎(chǔ)API展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python使用xlrd和xlwt實(shí)現(xiàn)自動(dòng)化操作Excel
這篇文章主要介紹了Python使用xlrd和xlwt實(shí)現(xiàn)自動(dòng)化操作Excel,xlwt只能對(duì)Excel進(jìn)行寫(xiě)操作。xlwt和xlrd不光名字像,連很多函數(shù)和操作格式也是完全相2022-08-08
利用Python實(shí)現(xiàn)圖書(shū)超期提醒
很多人喜歡逛圖書(shū)館,時(shí)不時(shí)去借本書(shū),但每本書(shū)可能只可以借兩個(gè)月,一旦超期不還就會(huì)進(jìn)行相應(yīng)的處罰!為什么不寫(xiě)個(gè)腳本來(lái)通知自己圖書(shū)超期呢?說(shuō)了這么多廢話,我們就進(jìn)入主題吧?。?!2016-08-08

