AI定量的取引(2) - Tushare財務データフレーム
A、Tushareプロフィール
1、Tushareプロフィール
Tushareは、財務データインタフェースパッケージ、現在Tushare Proのバージョン、データの収集から、株式やその他の金融データの主な成果はPython無料、オープンソースであるデータのストアドプロシージャに清掃し、処理、清潔で多様な、迅速な金融アナリストを提供することができますデータ分析を容易にします。Tushareリターンはほとんどのデータ・フォーマットの、データフレームタイプパンダパンダ、numpyの、matplotlibのと非常に簡単なデータ分析と可視化されています。
2、Tushareインストール
Githubの:https://github.com/waditu/Tushare
pip install tushare lxml
pip install beautifulsoup4
3、Token生成
アカウントを登録し、トークンを生成するためにTushare使用が必要。
:私は登録リンク招待https://tushare.pro/register?reg=306303
:登録が成功し、ログインTushareは、個人設定をクリックし、
漏洩した場合、検索の個人トークントークンインタフェースページを、トークンインタフェースはTushareに唯一の証拠を使用しています、あなたは新しいトークンを生成するリフレッシュすることができます。
import tushare as ts
if __name__ == '__main__':
print(ts.__version__)
# 设置Token
ts.set_token('xxx0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
# output:
# 1.2.45
4、Tushare APIの紹介
上海と深センの株価指数ファンド、先物、オプション、債券、外国為替、香港株式市場、経済の分野、マクロ経済、11個の主要なビッグデータの合計を備え、上海と深センの株式への基礎となるデータ、市場データにTushareデータインターフェース財務データ、市場の参照データ・インタフェースの4種類。Tushareもブロック鎖に関連する基本的なデータ、マクロ経済の市場データ、ニュース速報3つのインタフェースの種類だけでなく、シーナ・ファイナンス、東フォーチュン、フラッシュ、雲金融、知識及びその他のウォールストリートの金融ウェブサイト、外国為替、株式、ブロックチェーンを提供します米国株、石油、金、金、外国為替、香港株式市場、商品、債券、企業、市場の焦点、中央銀行やニュースなどのその他の財務情報。
Tushare APIインタフェースは、集積度につながる可能性があり、登録されたアカウントの数に基づいて、適切なアクセスポイントを取得する必要があることはアクセスせずに十分なAPIインタフェースではありません、ブロックチェーン関連のインターフェイスは、許可を得るために寄付金を必要としています。
Tushare APIインターフェイスのリファレンス:https://tushare.pro/document/2
二、Tushare在庫データインターフェース
1、在庫リスト
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
# data = ts_api.query('stock_basic', exchange='', list_status='L',
# fields='ts_code,symbol,name,area,industry,list_date')
print(data)
証券コード名、打ち上げ日、業界の概念を含め、在庫情報データベースを取得します。
2、IPO IPO
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.new_share(start_date='20190101', end_date='20190901')
print(data)
株式公開は、データのリストを取得します
3、毎日市場
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.daily(ts_code='000001.SZ', start_date='20190101', end_date='20190901')
print(data)
毎日夜4時 - 午後3時間の日を取引。このポートは、右の再市場にはありませんが、それは停止中にデータを提供していません。
4、毎週市場
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.weekly(ts_code='000001.SZ', start_date='20180101', end_date='20181101',
fields='ts_code,trade_date,open,high,low,close,vol,amount')
print(data)
毎週GET株市場
5、毎月の価格
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.monthly(ts_code='000001.SZ', start_date='20180101', end_date='20181101',
fields='ts_code,trade_date,open,high,low,close,vol,amount')
print(data)
A株月次データを取得します。
6、共通市場インタフェース
(右の回復回復する前に、ない再右)の株式を統合するためのpro_barインターフェース、インデックス、デジタル通貨、ETFファンド、先物、市場データオプション、将来は、データの分を提供しながら、を含む外国為替、を含むすべての取引データとなります。
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts.pro_bar(api=ts_api, ts_code='000009.SZ', adj='qfq', start_date='20170101', end_date='20181011', ma=[5],
freq='D')
print(data)
周波数「FREQ」のチェック重みパラメータ「ADJ」、平均パラメータ「MA」、パラメータデータと、単位Kラインデータを取得します。
7、データ取得株式の全て
import tushare
import os
import datetime
import timedelta
def fetch_kline_data(code):
filename = 'your path'
if not os.path.exists(filename):
end_date = datetime.strftime(datetime.now(), '%Y%m%d')#获取当前时间
outputflag = True
api = tushare.pro_api()
while outputflag:#循环判断,直到返还的数据为空
data = tushare.pro_bar(pro_api=api,ts_code=code,
end_date=end_date,asset='E', adj=None, freq='D')
if data.empty == True:
outputflag = False
else:
#计算下次请求数据的截止日期
next_end_date = datetime.strptime(data.iloc[-1]['trade_date'],
'%Y%m%d') - timedelta(hours=24)
end_date = datetime.strftime(next_end_date, '%Y%m%d')
#写csv文件
if os.path.exists(filename):
data.to_csv(filename, header=None, mode='a')#追加写入模式
else:
data.to_csv(filename, header=None, mode='a')
三、Tushare上場企業の財務データ・インタフェース
1、損益計算書
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('xxxx0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.income(ts_code='600001.SH', start_date='20190101', end_date='20190901')
print(data)
上場企業の財務データ損益計算書の取得
2、貸借対照表
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.balancesheet(ts_code='600000.SH', start_date='20190101', end_date='20190901',
fields='ts_code,ann_date,f_ann_date,end_date,report_type,comp_type,cap_rese')
print(data)
上場企業のバランスシートの取得。
3、キャッシュ・フロー計算書
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.cashflow(ts_code='600000.SH', start_date='20190101', end_date='20190901')
print(data)
上場企業のキャッシュフロー計算書を取得します。
4、ビジネス予報
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.forecast(ann_date='20190131',
fields='ts_code,ann_date,end_date,type,p_change_min,p_change_max,net_profit_min')
print(data)
業績予想データを取得します。
5、ボーナス分布データ
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.dividend(ts_code='600848.SH', fields='ts_code,div_proc,stk_div,record_date,ex_date')
print(data)
ボーナス分布データ。
6、手紙の結果
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.express(ts_code='600000.SH', start_date='20180101', end_date='20180701',
fields='ts_code,ann_date,end_date,revenue,operate_profit,total_profit,n_income,total_assets')
print(data)
上場企業の手紙のパフォーマンスを取得します。
7つの財務指標データ
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.fina_indicator(ts_code='600000.SH')
print(data)
サーバー上の回避圧力にするために、会社のデータを記載されている財務指標の取得、各要求は、より多くのデータを繰り返し要求して日付を設定して60を記録、この段階を返します。
8、財務監査意見
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.fina_audit(ts_code='600000.SH', start_date='20100101', end_date='20180808')
print(data)
定期的に財務監査意見データ上の上場企業の買収
9、主な事業組成
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.fina_mainbz(ts_code='000627.SZ', type='P')
print(data)
主な事業の株式を取得するdf = ts_api.fina_mainbz_vip(period='20181231', type='P', fields='ts_code,end_date,bz_item,bz_sales')
主な操作の全株式の四半期を得るために、
取得する上場企業の10、完全な財務指標
import tushare
import datetime
import os
import timedelta
def fetch_finance_indicator(code):
filename = 'your path'
if not os.path.exists(filename):
end_date = datetime.strftime(datetime.now(), '%Y%m%d')
outputflag = True
api = tushare.pro_api()
while outputflag:
data = api.fina_indicator(ts_code=code, end_date=end_date)
if data.empty == True:
outputflag = False
else:
next_end_date = datetime.strptime(
data.iloc[-1]['end_date'], '%Y%m%d') - timedelta(hours=24)
end_date = datetime.strftime(next_end_date, '%Y%m%d')
if os.path.exists(filename):
data.to_csv(filename, header=None, mode='a')
else:
data.to_csv(filename)
四、Tushareインデックスインターフェイス
1、基本的なインデックス情報
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.index_basic(market='CSI')
print(data)
基本的な情報のインデックスを取得します。
MSCI:MSCI指数
CSI:CSI
SSE:上海証券取引所の指数
SZSE:深セン証券取引所指数
CICC:インデックスでの金
SW:SWインデックス
2、インデックス毎日市場
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.index_daily(ts_code='399300.SZ', start_date='20190101', end_date='20190910')
print(data)
日々の市場のインデックスを取得し、インターフェースは、バーを介して取得することができます。サーバー上の圧力としては、現在のルールでは、単一の検索は8000行までかかる、あなたは完成の開始日と終了日を設定することができるということです。引用符のインデックスデータは、インターフェースの共通市場を介して取得することができます。
3、毎週の市場指数
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.index_weekly(ts_code='000001.SH', start_date='20180101', end_date='20190329',
fields='ts_code,trade_date,open,high,low,close,vol,amount')
print(data)
インデックス毎週の市場を取得し、バッチで取得することができる最大の単一の行1000は、合計量が限定されるものではありません。
4、毎月の市場指数
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.index_monthly(ts_code='000001.SH', start_date='20180101', end_date='20190930',
fields='ts_code,trade_date,open,high,low,close,vol,amount')
print(data)
毎月の市場のインデックスを取得し、毎月更新され、1000年最大のシングルラインレコード、複数の買収、合計は制限しません。ユーザーがより多くのポイント、より高い周波数、少なくとも600点を取得することができる必要があります。
5、インデックス構成要素と重み
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.index_weight(index_code='399300.SZ', start_date='20180901', end_date='20190930')
print(data)
インデックスの構成成分と重みのすべての種類、月次データを取得します。日本指数の構成と重みのために、あなたは少なくとも400ポイントを取得できる必要があります。
五、Tushare市場参照データ・インタフェース
1、香港株式市場は、10を通じて株式を上場します
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.ggt_top10(trade_date='20190925')
print(data)
上海証券取引所など、日々のトランザクションデータ、を介して取得した香港株式市場は、深センでは、データを詳細に説明しました。
2、信用取引の概要
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.margin(trade_date='20190925')
print(data)
証拠金取引日は、集約されたデータを取得します。
3、信用取引の詳細
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.margin_detail(trade_date='20190925')
print(data)
上海と深センのマージンは、毎日の詳細を取得します。
4、トップテン株主
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.top10_holders(ts_code='600000.SH', start_date='20190101', end_date='20191231')
print(data)
保有およびその他の情報の数や割合など、上場企業の10株主前にデータを取得します。
5、トップ10取引可能な株主
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.top10_floatholders(ts_code='600000.SH', start_date='20190101', end_date='20191231')
print(data)
上場企業のテン株主は、前のデータを取得します。
6、ビルボード毎日詳細
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.top_list(trade_date='20190925')
print(data)
ビルボード日々の取引の詳細、10000最大の単一は、ユーザーが少なくとも300ポイントを取得できる必要があります。
7、ビルボードの機関取引の詳細
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.top_inst(trade_date='20190925')
print(data)
ビルボード代理トランザクションの詳細は、最大の単一10000は、ユーザーが少なくとも300ポイントを取得できる必要があります。
8、ブロック取引
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.block_trade(trade_date='20190925')
print(data)
ブロックは、5,000以上の点無制限毎分回の数を制限するものと解釈300ポイント調整可能な合計金額を、限定するものではなく、最大の1000取引します。
9、株価はデータを占めます
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.stk_account(start_date='20190101', end_date='20191231')
print(data)
600ポイントを取るように調整株式口座開設データ、1週間の統計期間を、取得します。
10、株主の数
import tushare as ts
if __name__ == '__main__':
# 设置Token
ts.set_token('b31e0ac207a5a45e0f7503aff25bf6bd929b88fe1d017a034ee0d530')
# 初始化接口
ts_api = ts.pro_api()
data = ts_api.stk_holdernumber(ts_code='300209.SZ', start_date='20190101', end_date='20191231')
print(data)
上場企業の株主数は、随時公開されたデータ、データを取得します。3000単一の最大値は、総量は、積分器600は、統合の、5,000以上の積分無制限毎分100回、ベースの検索を取るように調整可能であり、限定されるものではありません。