使用tushare計算北上資金持倉成本
tushare是一個金融資料網站,通過呼叫tushare介面,能夠很方便地獲取到各種金融資料,這里我們嘗試通過tushare的介面函式,計算標的北上資金持倉成本,
在使用tushare介面之前我們需要獲取介面權限,即設定token,
token='*********************************'
pro=ts.pro_api(token)
然后我們使用hk_hold介面獲取北上資金的持倉數量,以平安銀行為例,
df1 = pro.hk_hold(ts_code = '000001.sz')
再通過呼叫daily函式獲取平安銀行的行情資訊:
df2 = pro.daily(ts_code= '000001.sz')
由于行情價格會受到除權除息的影響,因此我們需要獲取除權因子來避免計算價格成本的失真,這里通過呼叫adj_factor來獲取除權因子,
df3 = pro.adj_factor(ts_code= '000001.sz')
選擇需要的資料列,將以上3個dataframe通過連接操作成一個整表,并按時間先后順序排列,
df1 = df1[['trade_date','ts_code','vol']]
df2 = df2[['trade_date','open','high','low','close']]
df3 = df3[['trade_date','adj_factor']]
df = pd.merge(df1,df2,on='trade_date',how='left')
df = pd.merge(df,df3,on = 'trade_date',how='left')
df = df[::-1]
df.reset_index(drop=True,inplace=True)

北上資金每日持倉均有變化,我們近似認為每日再最高價和最低價的中間價格成交,然后通過計算每日的成交價格和持倉數量變化就可以知道當日成本,通過連續計算每日的成本就可以確定從第一次買入開始到設定時間的總成本,
df['handle_price'] = (df['high']+df['low'])/2
df.fillna(method='pad',inplace=True)
hold_price = []
days = df.shape[0]
for i in range(0,days):
if i == 0:
hold_price.append(df.loc[i,'handle_price'])
else:
hold_price.append((df.loc[i,'handle_price']*df.loc[i,'vol']-df.loc[i,'adj_factor']*df.loc[i,'handle_price']*df.loc[i-1,'vol']/df.loc[i-1,'adj_factor']+hold_price[-1]*df.loc[i-1,'vol'])/df.loc[i,'vol'])
df['hold_price'] = hold_price
print(df)
我們可以將資料保存到excel,并畫圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/305759.html
標籤:區塊鏈
下一篇:深入淺出IPFS 技術原理
