[Tushare+Python] AH股轮动策略基础
摘要:为做AH股轮动策略需进行基础数据处理,这里代码主要涉及AH溢价计算及相关数据清洗。
前言
核心思路:计算AH股溢价率并计算每个股票当前溢价率在其历史分位值上位置,为后续策略提供基础信息。
一、记录尚未解决的问题
- 合并AH股数据需要找到唯一索引key,经几次merge,发现可按公司fullname进行交集合并。截至2021年6月10日,同时在AH股上市的公司(除去ST)共130家。而按fullname合并可以获得126家数据,对于初步探索尚可接受。 后续可找出这4家再手动调整。
- H股数据尚未复权(已解决)
- 因AH除权除息日期可能不同,除权因子也可能不同,采用何种复权方式以及如何处理除权除息还需考虑
二、数据处理清洗
代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import tushare as ts
import time
import datetime as dt
pro= ts.pro_api()
'''
P1:
obtain tickers of AH share, named as stock_list_H,stock_list_A
'''
# step 1.1 : obtain all stock_ticker in A and H
df_H_bas = pro.hk_basic(fields='ts_code,fullname,list_date').rename(columns= {'list_date':'list_H','ts_code':'ts_code_H'})
df_A_bas= pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,fullname,area,industry,list_date,is_hs').rename(columns= {'list_date':'list_A','ts_code':'ts_code_A'})
# step 1.2 : inner merge
df_com = pd.merge(df_H_bas,df_A_bas,how= 'inner',on = ['fullname&