行业资讯
【Python量化实战 #04】Python量化技术指标:MACD、KDJ、均线数据接口调用与pandas示例
系列Python 行情数据接入笔记持续更新本文#04 技术指标数据指标可以本地用收盘价重算也可以由数据接口直接给出。本篇演示通过mairui读取 MACD、KDJ、均线等序列并给一个「读字段 → 简单交叉判断」的代码骨架。完整方法列表与参数https://github.com/MaiRuiApi/mairuipipinstallmairui pandas常用方法stock_macd / stock_kdj / stock_ma / stock_boll stock_indicator / stock_indicators index_macd / index_kdj / ... # 指数侧具体参数周期、除权、st/et/lt以仓库文档为准。MACDimportosimportpandasaspdfrommairuiimportClientwithClient(licenceos.environ[MAIRUI_LICENCE])asapi:macdapi.stock_macd(000001.SZ,d,n,st20240101,et20241231,)dfpd.DataFrame(macd)print(df.columns.tolist())print(df.tail())均线与 KDJimportosfrommairuiimportClientwithClient(licenceos.environ[MAIRUI_LICENCE])asapi:maapi.stock_ma(600519.SH,d,n,lt120)kdjapi.stock_kdj(600519.SH,d,n,lt120)print(type(ma),type(kdj))ifma:print(ma[-1])ifkdj:print(kdj[-1])交叉判断骨架非交易建议下面仅演示如何在 DataFrame 上读相邻两行列名必须先按真实返回修改。importosimportpandasaspdfrommairuiimportClientdefmacd_cross_signal(df:pd.DataFrame)-str:# 将 dif/dea 换成你 print(df.columns) 看到的实际列名need{dif,dea}ifnotneed.issubset(set(df.columns)):returncolumns,.join(map(str,df.columns.tolist()))iflen(df)2:returnrows2prev,curdf.iloc[-2],df.iloc[-1]ifprev[dif]prev[dea]andcur[dif]cur[dea]:returngolden_cross_candidateifprev[dif]prev[dea]andcur[dif]cur[dea]:returndeath_cross_candidatereturnno_crosswithClient(licenceos.environ[MAIRUI_LICENCE])asapi:rawapi.stock_macd(000001.SZ,d,n,lt80)dfpd.DataFrame(raw)print(macd_cross_signal(df))未建模滑点、停牌与成本前不要把示例输出当成下单信号。指数指标importosfrommairuiimportClientwithClient(licenceos.environ[MAIRUI_LICENCE])asapi:# 指数代码以接口文档为准idxapi.index_macd(000001.SH,d,lt60)print(idx[-1]ifidxelseNone)本地重算 vs 接口直取方式适用接口直取快速对齐外部口径、少维护指标实现本地重算定制参数、自建因子库混用时记录周期、除权、最少样本长度避免实验不可复现。更多指标名与封装见https://github.com/MaiRuiApi/mairui下一篇#05资产负债表 / 利润表 / 现金流的读取与粗筛结构。
郑州网站建设
网页设计
企业官网