溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python如何配置同花順全數(shù)據(jù)接口

發(fā)布時間:2022-03-04 09:51:48 來源:億速云 閱讀:652 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python如何配置同花順全數(shù)據(jù)接口,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前往:http://quantapi.10jqka.com.cn/?page=home

Python如何配置同花順全數(shù)據(jù)接口

如果是windows,根據(jù)不同用戶,可以選擇不同的下載。

一、iFinDPy 模塊

下載完成后,會出現(xiàn)一個DataInterface_free_Windows_20210812.7z的文件,解壓到任意文件夾中。打開該文件夾進入Bin文件夾后,再打開Tool文件夾,雙擊運行SuperCommand.exe,并使用iFinD賬號免費登錄。

Python如何配置同花順全數(shù)據(jù)接口

Python如何配置同花順全數(shù)據(jù)接口

Python如何配置同花順全數(shù)據(jù)接口

Python如何配置同花順全數(shù)據(jù)接口

選擇python,確定。同時添加路徑。

Python如何配置同花順全數(shù)據(jù)接口

選上。然后重啟電腦,相關(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()  #此變量用來控制實時行情推送中落數(shù)據(jù)到本地的鎖
# 登錄函數(shù)
def thslogindemo():
    # 輸入用戶的帳號和密碼
    thsLogin = THS_iFinDLogin("數(shù)據(jù)接口_賬號","數(shù)據(jù)接口_密碼")
    print(thsLogin)
    if thsLogin != 0:
        print('登錄失敗')
    else:
        print('登錄成功')
def datepool_basicdata_demo():
    # 通過數(shù)據(jù)池的板塊成分函數(shù)和基礎(chǔ)數(shù)據(jù)函數(shù),提取滬深300的全部股票在2020-11-16日的日不復(fù)權(quán)收盤價
    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():
    # 通過數(shù)據(jù)池的板塊成分函數(shù)和實時行情函數(shù),提取上證50的全部股票的最新價數(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():
    # 演示如何通過不消耗流量的自然語言語句調(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('輸出股性評分數(shù)據(jù)')
    data_wencai_xny = THS_WC('股性評分', '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ù)為實時行情訂閱新啟線程的任務(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ù)為通過高頻序列函數(shù),演示如何使用多線程加速數(shù)據(jù)提取的示例,本例中通過將所有A股分100組,最大線程數(shù)量sem進行提取
    # 用戶可以根據(jù)自身場景進行修改
    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ù)接口通用場景的實例,可以通過取消注釋下列示例函數(shù)來觀察效果
    # 登錄函數(shù)
    thslogindemo()
    # 通過數(shù)據(jù)池的板塊成分函數(shù)和基礎(chǔ)數(shù)據(jù)函數(shù),提取滬深300的全部股票在2020-11-16日的日不復(fù)權(quán)收盤價
    # datepool_basicdata_demo()
    #通過數(shù)據(jù)池的板塊成分函數(shù)和實時行情函數(shù),提取上證50的全部股票的最新價數(shù)據(jù),并將其導(dǎo)出為csv文件
    # datapool_realtime_demo()
    # 演示如何通過不消耗流量的自然語言語句調(diào)用常用數(shù)據(jù)
    # iwencai_demo()
    # 本函數(shù)為通過高頻序列函數(shù),演示如何使用多線程加速數(shù)據(jù)提取的示例,本例中通過將所有A股分100組,最大線程數(shù)量sem進行提取
    # multiThread_demo()
    # 本函數(shù)演示如何使用公告函數(shù)提取滿足條件的公告,并下載其pdf
    # reportDownload()
if __name__ == '__main__':
    main()

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python如何配置同花順全數(shù)據(jù)接口”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI