富途证券OpenAPI 量化接口,目前已经不能提供,存量中国境内用户还能用,富途行情软件是目前市面上界面最漂亮的行情软件,加上openapi,功能非常强大。
参考官网python版本,终于完成了自选股票K线数据入库。
from futu import *
from Sqlhelper import *
import schedule
class Futuapi:
def __init__(self):
"""
初始化函数
参数: 无
返回值: 无
功能描述:
1. 初始化交易数据上下文环境;
2. 初始化股票代码列表、开始日期字典、表格列表和周期类型列表。
"""
self.quote_ctx = OpenQuoteContext(host='127.0.0.1', port=11112)
self.codes = []#自选股列表
self.start_date = {}#历史数据获取需要
self.table_list = ['m1', 'm5', 'm15', 'm30', 'm60', 'day']#K线周期对应表名
self.type_list = [SubType.K_1M, SubType.K_5M, SubType.K_15M, SubType.K_30M, SubType.K_60M,SubType.K_DAY ]#FUTUAPI的K线周期
def get_user_security(self):#获取自选股列表
"""
获取用户的自选股列表,并对每只股票进行数据初始化。
函数不接受参数,也不直接返回值,但会对类的内部状态进行更新。
"""
# 尝试从API接口获取用户自选股票列表
ret, data = self.quote_ctx.get_user_security("cc")
if ret == RET_OK and data.shape[0] > 0:
self.codes = data.to_dict(orient = 'records')
# 将股票代码数据存储为字典格式,每个股票代码对应一条记录
for i in self.codes: # 遍历每只股票代码
i['label'] = i['code'].replace(".", "")# 生成股票标签,移除股票代码中的点号
dbname = i['label']# 用作数据库名
init_db(dbname)# 创建数据库,LABEL为数据库名
Creat_table(dbname) # 初始化股票数据表
dt = self.get_rehab(i['code']) #获取复权因子
if len(dt)>0:# 如果成功获取复权因子,则添加到股票信息SEFL.CODES中
i['rehab'] = dt
# 清空STOCK数据库中历史数据
delete_all_data_in_s