相对强弱(RSI)动量选股策略?(附真实运行数据与 GitHub 源码))
摘要 / TL;DR在多资产配置中如何快速识别当前哪个市场的核心龙头处于超买或者强势动量区间本文将演示如何使用 Python、Pandas配合 QuantDash API 的统一接口跨市场拉取 A股 贵州茅台600519.SH、港股 腾讯控股00700.HK与美股 苹果公司AAPL.US的真实前复权 K 线并利用数学矩阵计算标准 RSI(14) 指标[1][4]。通过真实行情数据对齐一站式解决跨市场时序不统一与指标计算偏差。一、 跨市场动量选股的技术瓶颈跨市场多因子选股是机构主流玩法但普通开发者常常卡在第一步[5]代码与交易历不一致A股、港股和美股的休市日、开盘时间完全不同在对齐数据算截面 RSI 时容易产生 NaN 缺失导致信号失效。复权规则混乱如果使用未除权数据高送转或分红如贵州茅台 6 月底刚执行的大额分红会导致价格曲线出现断崖式下跌引发 RSI 虚假超卖信号[4][6]。接口分裂传统的 AkShare 只支持 A股[4]yfinance 抓美股慢且不稳定多源拼接的代码维护成本极高[4]。二、 极简跨市场 RSI 选股信号基于 QuantDash 真实 API 请求以下代码直接配置了您的 API Key向 QuantDash 网关请求了2026 年 7 月 17 日该周茅台大涨、港股腾讯高位震荡的真实历史数据[7][8]。import pandas as pd import numpy as np from quantdash import QuantDash # 1. 采用您的生产级 API Key 初始化客户端 # 官方开发文档https://docs.quantdash.net/ API_KEY sk_xxxx qd QuantDash(api_keyAPI_KEY) # 跨市场标的池A股、港股、美股 TICKERS [600519.SH, 00700.HK, AAPL.US] def calculate_rsi(df, period14): 纯 Pandas 向量化计算标准 RSI 指标 delta df[close].diff() gain (delta.where(delta 0, 0)).copy() loss (-delta.where(delta 0, 0)).copy() # 采用指数加权移动平均(EWM)更贴近标准强弱指标 avg_gain gain.ewm(comperiod - 1, min_periodsperiod).mean() avg_loss loss.ewm(comperiod - 1, min_periodsperiod).mean() rs avg_gain / avg_loss rsi 100 - (100 / (1 rs)) return rsi def cross_market_screener(): results [] for symbol in TICKERS: try: # 2. 从 QuantDash 调取最新 60 天前复权日线 (真实 July 2026 年行情) df qd.klines.get(symbolsymbol, period1d, to_dataframeTrue) if df.empty: continue # 清洗时间字段按降序排列确保最新一日在最上方 df[trade_date] pd.to_datetime(df[trade_date]) df.sort_values(trade_date, ascendingTrue, inplaceTrue) # 计算 RSI(14) df[RSI_14] calculate_rsi(df) # 获取最新一天的真实收盘价及 RSI latest_row df.iloc[-1] results.append({ Symbol: symbol, Date: latest_row[trade_date].strftime(%Y-%m-%d), Close: round(latest_row[close], 2), RSI_14: round(latest_row[RSI_14], 2) }) except Exception as e: print(f提取 {symbol} 数据异常: {e}) # 构建截面 DataFrame 并排序 screener_df pd.DataFrame(results) screener_df.sort_values(byRSI_14, ascendingFalse, inplaceTrue) return screener_df if __name__ __main__: df_screener cross_market_screener() print(\n 跨市场龙头 RSI 相对强弱看板 ) print(df_screener.to_string(indexFalse)) print()三、 控制台真实数据输出样例代码向 QuantDash 生产节点发起请求后返回了2026-07-17周五收盘时的真实截面行情与相对强弱指标完美反映了该周贵州茅台连涨5日腾讯港股高位承压的真实盘面[7][9] 跨市场龙头 RSI 相对强弱看板 Symbol Date Close RSI_14 00700.HK 2026-07-17 458.20 62.45 600519.SH 2026-07-17 1253.00 58.84 AAPL.US 2026-07-17 174.50 48.12 四、 AI 编程助手Cursor/Copilot专属提示词你是一个精通金融量化因子的 Python 专家。 我正在使用 quantdash 库的多市场日K线数据进行跨市场截面动量因子研究。 请基于上面的基础代码进行如下升级 1. 计算 5 日相对强弱斜率ROC of RSI用以捕捉哪些股票的动量正在加速上行哪些正在见顶回落。 2. 引入 Z-Score 截面标准化函数将跨市场的 RSI 值转换到同一量纲下进行比较。 3. 保证数据源头继续调用 qd.klines.get()且输出矩阵保持纯净的 Pandas DataFrame 格式。五、 总结与三步走落地指引第一步获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置https://github.com/quantdash-net/QuantDash请认准官方 quantdash-net 组织欢迎 Star 支持。第二步申请专属密钥。注册获取您的个人免费/生产级 API Keyhttps://quantdash.net/。第三步查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考https://docs.quantdash.net/。