融资融券数据接口深度解析用Python构建杠杆资金分析系统融资融券是A股杠杆资金的核心数据。跟普通成交数据不同融资融券数据直接反映了市场多空力量的对比——融资是做多杠杆融券是做空杠杆。我之前写了一套融资融券数据分析工具把个股的两融历史走势、全市场的两融总量和明细数据系统地分析了一遍这篇文章聊聊具体实现。先说数据来源。融资融券数据主要分三块。第一块是融资融券标的股列表路径base/rzrqGpList返回所有融资融券标的的代码、名称、交易所。第二块是个股融资融券历史走势路径time/rzrq/{股票代码}返回近两年的融资融券数据字段非常丰富。第三块是全市场融资融券交易总量路径all/rzrqtt返回沪深两市的融资融券概览。第四块是全市场融资融券交易明细路径all/rzrqdt返回各股票的融资融券明细。特别说明融资融券历史走势接口支持传入zz获取沪深300数据、sh获取上证数据、sz获取深证数据。importjsonimportosimportpandasaspdimportnumpyasnp data_dirD:/stock_datadefread_rzrq_list():file_pathos.path.join(data_dir,base,rzrqGpList)ifnotos.path.exists(file_path):returnNonewithopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,jys]returndfdefread_rzrq_history(dm):file_pathos.path.join(data_dir,time,rzrq,dm)ifnotos.path.exists(file_path):returnNonewithopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[jyrq,rzrqye,rzrqyecz,spj,zf,zf3,zf5,zf10,rzye,rzbl,rzmre,mr3,mr5,mr10,rzche,ch3,ch5,ch10,rzjme,jme3,jme5,jme10,rqye,rqyl,rqmcl,mcl3,mcl5,mcl10,rqchl,chl3,chl5,chl10,rqjml,jml3,jml5,jml10]returndfdefread_rzrq_total():file_pathos.path.join(data_dir,all,rzrqtt)ifnotos.path.exists(file_path):returnNonewithopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[rq,sc,rzye,rzmre,rzche,rqye]returndf字段用简写jyrq交易日期rzrqye融资融券余额rzrqyecz余额差值spj收盘价zf涨跌幅rzye融资余额rzbl融资余额占比rzmre融资买入额rzche融资偿还额rzjme融资净买入额rqye融券余额rqyl融券余量rqmcl融券卖出量rqchl融券偿还量rqjml融券净卖出量。3、5、10后缀表示3日5日10日累计值。数据读进来之后第一步是分析个股的融资融券趋势。重点看融资净买入额和融券净卖出量的变化趋势。defanalyze_rzrq_trend(dm,days60):dfread_rzrq_history(dm)ifdfisNoneorlen(df)0:returnNonedf[rzjme]pd.to_numeric(df[rzjme],errorscoerce)df[rqjml]pd.to_numeric(df[rqjml],errorscoerce)df[rzye]pd.to_numeric(df[rzye],errorscoerce)df[rqye]pd.to_numeric(df[rqye],errorscoerce)recentdf.head(days)rz_consecutive_inflow0forvalinrecent[rzjme]:ifval0:rz_consecutive_inflow1else:breakrz_net_totalrecent[rzjme].sum()rq_net_totalrecent[rqjml].sum()rzye_change(recent[rzye].iloc[0]-recent[rzye].iloc[-1])/recent[rzye].iloc[-1]rqye_change(recent[rqye].iloc[0]-recent[rqye].iloc[-1])/recent[rqye].iloc[-1]ifrecent[rqye].iloc[-1]!0else0print(股票{}近{}日融资融券分析.format(dm,days))print(融资连续净流入天数{}.format(rz_consecutive_inflow))print(融资累计净买入{:.2f}元.format(rz_net_total))print(融券累计净卖出{:.2f}股.format(rq_net_total))print(融资余额变化{:.2f}%.format(rzye_change*100))print(融券余额变化{:.2f}%.format(rqye_change*100))return{rz_consecutive_inflow:rz_consecutive_inflow,rz_net_total:rz_net_total,rq_net_total:rq_net_total,rzye_change:rzye_change,rqye_change:rqye_change}个股分析之外全市场的融资融券总量数据也很有价值。全市场融资余额的走势是判断市场情绪的重要指标。defanalyze_market_rzrq():dfread_rzrq_total()ifdfisNoneorlen(df)0:returnNonedf[rzye]pd.to_numeric(df[rzye],errorscoerce)sh_datadf[df[sc]沪市].sort_values(rq)sz_datadf[df[sc]深市].sort_values(rq)total_rzyedf.groupby(rq)[rzye].sum().sort_index()recent_20total_rzye.tail(20)rzye_change(recent_20.iloc[-1]-recent_20.iloc[0])/recent_20.iloc[0]print(全市场融资余额近20日变化{:.2f}%.format(rzye_change*100))print(当前融资余额{:.2f}亿.format(recent_20.iloc[-1]/1e8))returntotal_rzye全市场融资余额连续上升说明杠杆资金在加仓市场情绪偏多。连续下降说明杠杆资金在撤退市场情绪偏空。这个指标是判断大盘中期趋势的好工具。我还写了一个融资融券选股策略。逻辑是筛选融资净买入连续为正但股价还没大涨的股票这类股票有杠杆资金在悄悄吸筹。defrzrq_select_strategy(top_n20):df_listread_rzrq_list()ifdf_listisNone:returnNonecandidates[]for_,rowindf_list.iterrows():dmrow[dm]dfread_rzrq_history(dm)ifdfisNoneorlen(df)10:continuerecent_5df.head(5)rz_jme_positiveall(val0forvalinrecent_5[rzjme].astype(float))ifnotrz_jme_positive:continueprice_change(float(recent_5[spj].iloc[0])-float(recent_5[spj].iloc[-1]))/float(recent_5[spj].iloc[-1])ifprice_change0.05:continuetotal_jmerecent_5[rzjme].astype(float).sum()candidates.append({dm:dm,mc:row[mc],rz_jme_5d:total_jme,price_change_5d:price_change})resultpd.DataFrame(candidates).sort_values(rz_jme_5d,ascendingFalse).head(top_n)returnresult策略逻辑是融资净买入连续5天为正 5日涨幅不超过5%。前一个条件说明杠杆资金在持续买入后一个条件排除已经大涨的股票。这种资金流入但股价没动的股票后续上涨概率较高。几个使用经验。第一融资融券数据是次日更新当天看不到当天的数据所以只能做隔日或更长期的策略。第二融券余额的变化比融资余额更有参考价值因为做空的资金通常更专业。第三全市场融资余额是判断大盘情绪的好指标但不要用在个股上。第四融资净买入额是流量数据比融资余额这个存量数据更敏感。我用的数据来源是ig50的本地数据接口融资融券相关的接口字段非常丰富做这种多维度分析系统很方便。接口说明base/rzrqGpList - 融资融券标的股本地路径数据存放目录/base/rzrqGpList更新频率每天上午8:50主要字段股票代码(dm)、股票名称(mc)、交易所(jys)time/rzrq/{股票代码} - 融资融券历史走势本地路径数据存放目录/time/rzrq/{股票代码}特殊参数传入zz获取沪深300数据sh获取上证数据sz获取深证数据更新频率每天上午8:50数据格式[{},…]按时间倒序近两年数据主要字段交易日期(jyrq)、融资融券余额(rzrqye)、融资融券余额差值(rzrqyecz)、收盘价(spj)、涨跌幅(zf)、3日涨跌幅(zf3)、5日涨跌幅(zf5)、10日涨跌幅(zf10)、融资余额(rzye)、融资余额占比(rzbl)、融资买入额(rzmre)、融资3/5/10日买入额(mr3/mr5/mr10)、融资偿还额(rzche)、融资3/5/10日偿还额(ch3/ch5/ch10)、融资净买入额(rzjme)、融资3/5/10日净买入额(jme3/jme5/jme10)、融券余额(rqye)、融券余量(rqyl)、融券卖出量(rqmcl)、融券3/5/10日卖出量(mcl3/mcl5/mcl10)、融券偿还量(rqchl)、融券3/5/10日偿还量(chl3/chl5/chl10)、融券净卖出量(rqjml)、融券3/5/10日净卖出量(jml3/jml5/jml10)all/rzrqtt - 融资融券交易总量本地路径数据存放目录/all/rzrqtt更新频率每天15:30主要字段日期(rq)、市场(sc)、本日融资余额(rzye)、本日融资买入额(rzmre)、本日融资偿还额(rzche)、本日融券余量金额(rqye)all/rzrqdt - 融资融券交易明细本地路径数据存放目录/all/rzrqdt主要字段日期、股票代码、股票名称、融资余额、融资买入额、融资偿还额、融券余量、融券卖出量、偿还量gitee开源地址github开源地址