全部
文章&策略
学习干货
问答
官方

高股息动态止盈防回撤

用户头像想知道能涨停吗
2026-07-18 发布
学习官方提供的高股息脚本经过龙虾优化,回测期间21年7月至26年6月。因系统无法选择到2021年1月份,无法测试从21年2月份的阶段高点5930回撤的情况。整体收益超400%。
浏览4
评论1
收藏0
用户头像sh_*092at69ED
2026-07-18 发布
晚上油价有明显变化,第二天再看 A 股,石化、航空、化工、运输,好像都能讲出一套理由。 问题通常不在理由不够多,而在第一步走得太快:一条外盘报价刚动,就急着把它翻译成某个板块的涨跌。 油价只是一个信号。要把它变成一条能讨论的研究线索,中间至少隔着四层:你看的价格是什么;它对应哪个时间点;公司实际暴露在哪;同一时段还有没有别的变化在影响判断。 *图:油价变化后的研究路径。它说明该先核对什么,不表示油价与任何 A 股标的存在固定因果。 先把“油价影响 A 股”拆开 很多讨论卡在一句笼统的话上:“油价会影响 A 股。”这句话不必反驳,但太粗,没法直接拿来判断。 更实用的做法,是把它拆成四层。每一层都在防一种常见的误判。 第一层:先分清你说的是哪一个“油价” 先问一句:你看的到底是哪条价格? 本轮保存的同一次查询里,USOIL 标为“国际原油/美元”,SC8888 标为“原油主连”。它们已经不是同一个样本。不同品种、计价方式和交易时段,也不能默认是同一件事。 你和同事若各自盯着一条不同的价格线,却都说“油价动了”,后面围绕同一家公司讨论得再久,起点也没有对齐。 记住:同叫油价,不等于同一条价格。 第二层:再把时间窗口对齐 先问一句:你拿的是哪个时点的数据? 你比较的是盘中变化、日 K,还是收盘后的一个区间?比如拿昨晚 11 点的外盘报价,去解释今天早上 9 点半的 A 股开盘,中间发生的事并不会自动消失。并排比较之前,先把时间窗口写清楚。 这不是故意把问题讲复杂,而是避免把两段不同时间里的信息硬拼成一条因果线。 记住:没有对齐时间,就没有可比的变化。 第三层:回到公司到底怎么做生意 先问一句:这家公司是在花油,还是在卖油? 只为说明问题,假设两家公司都被归进“石化相关”:一家要采购原油并加工,另一家主要卖出油品。前者要查成本和采购安排,后者要查收入、定价和订单线索。它们不能被一句“石化板块”打成一包。 所以别先看行业标签,先回到公开材料:成本、采购、库存、定价、收入和订单,哪些真的和这家公司有关? 记住:同属一个行业标签,不等于面对同一件事。 第四层:给“还有别的原因”留一个位置 先问一句:除了油价,还有什么同时在发生? 油价和某只股票同一天朝同一方向变化,也可能只是同时受另一条消息影响。公司材料和时间上的证据还没补齐前,先别把相关性写成因果。 这一层不是让你放弃研究,而是提醒你别急着把第一个看见的解释当成唯一解释。 记住:一起变化,不等于互为原因。 把四层串起来,就是先对齐对象,再对齐时间,接着回到公司材料,最后保留替代解释。油价可以是研究起点,但还不是 A 股结论。 先把行情记录下来,再谈影响 先核对输入,不急着解释结果。 前两层要核对的是行情输入:看的是什么品种,发生在什么时间窗口。这里可以用 TickDB 做数据核验。 TickDB 是本文使用的行情数据 API 入口。它适合给需要核对品种与时间条件的读者留下一条可复查路径:用自己的 API Key、symbol 和时间窗口,看请求实际返回了什么。它不判断油价会不会带动 A 股,也不能用一条返回替你证明公司因果或交易结论。 本轮用一次 REST ticker 请求,把 USOIL、SC8888、600028.SH、AAPL.US 放进同一条查询: *图:依据 2026-07-18 保存的真实 API 运行记录生成的终端样式证据图。 这次请求返回了原油、原油期货、A 股和美股四个样本。它给出的提醒很具体:四个 timestamp 不同,不能默认把它们当作同一时点的数据来比较。 这张图不会告诉你谁会涨、谁会跌。它只把研究的第一步落到实处:先确认请求了什么、返回了什么,再决定后面要不要查公司材料和其他解释。 先看样本,再讲影响。 真正该做的,是建立一张观察记录 看到油价变化后,可以先记四行。这张表最有用的地方,是它会逼你把“我觉得有关系”换成“我还不知道什么”。 记录项 要写清楚什么 外部价格 品种、来源、时间窗口 比较对象 为什么选这个本地变量,不选别的 公司材料 还要查哪份公开披露或行业信息 暂不判断的原因 缺时间、缺材料,还是缺更直接的证据 如果你不会写脚本,这张表照样有用。它会让你在读公司公告、行业资料和市场评论时,少被一句简单的板块判断带着走。会用数据工具的人,则可以把这张表变成可复查的查询记录。 这张表不替你下结论,它先把你不知道什么写出来。 FAQ Q1:油价异动时,第一步应该做什么? 先记下品种和时间窗口,再说明准备比较的本地样本。之后才去查公司材料和替代解释。这个顺序不提供买卖信号,但能避免把一条外盘消息直接写成 A 股结论。 Q2:TickDB 是什么,能覆盖哪些市场行情? TickDB 提供一套统一的多市场行情数据 API。以本文使用的 /v1/market/ticker 为例,官方文档列出的市场类别包括外汇、贵金属、指数、美股、港股、A 股和加密资产。 Q3:本轮真实调用验证了什么? 同一个 ticker 请求实际返回 USOIL、SC8888、600028.SH 和 AAPL.US 四个样本,对应国际原油/美元、原油主连、A 股和美股。本轮没有逐一实测港股、指数、贵金属或其他市场。 参考资料与数据口径 TickDB Ticker Snapshot 文档:ticker 请求路径、symbol 参数、单次上限和市场类别,访问于 2026-07-18。 TickDB 官方 GitHub README:产品定位、REST 与 WebSocket 接入概览,访问于 2026-07-18。 U.S. Energy Information Administration:Oil prices and outlook:原油价格受到供需、供应中断、库存及其他市场条件影响的背景资料。 本文实测运行 UP-T03-OIL-001-RERUN-20260717-02-EVIDENCE-03:只证明保存的单次请求、HTTP 状态和四个返回样本;终端样式证据图依据该运行记录生成。 本文讨论跨市场观察与数据核验方法,不构成投资建议。下次再看到一条油价消息,先把这四件事问完:哪个油价?什么时候?公司处在哪个环节?还有没有别的解释?答不上来,就先把它留在研究问题里。
浏览6
评论0
收藏0
用户头像sh_*092at69ED
2026-07-18 发布
晚上油价有明显变化,第二天再看 A 股,石化、航空、化工、运输,好像都能讲出一套理由。 问题通常不在理由不够多,而在第一步走得太快:一条外盘报价刚动,就急着把它翻译成某个板块的涨跌。 油价只是一个信号。要把它变成一条能讨论的研究线索,中间至少隔着四层:你看的价格是什么;它对应哪个时间点;公司实际暴露在哪;同一时段还有没有别的变化在影响判断。 *图:油价变化后的研究路径。它说明该先核对什么,不表示油价与任何 A 股标的存在固定因果。 先把“油价影响 A 股”拆开 很多讨论卡在一句笼统的话上:“油价会影响 A 股。”这句话不必反驳,但太粗,没法直接拿来判断。 更实用的做法,是把它拆成四层。每一层都在防一种常见的误判。 第一层:先分清你说的是哪一个“油价” 先问一句:你看的到底是哪条价格? 本轮保存的同一次查询里,USOIL 标为“国际原油/美元”,SC8888 标为“原油主连”。它们已经不是同一个样本。不同品种、计价方式和交易时段,也不能默认是同一件事。 你和同事若各自盯着一条不同的价格线,却都说“油价动了”,后面围绕同一家公司讨论得再久,起点也没有对齐。 记住:同叫油价,不等于同一条价格。 第二层:再把时间窗口对齐 先问一句:你拿的是哪个时点的数据? 你比较的是盘中变化、日 K,还是收盘后的一个区间?比如拿昨晚 11 点的外盘报价,去解释今天早上 9 点半的 A 股开盘,中间发生的事并不会自动消失。并排比较之前,先把时间窗口写清楚。 这不是故意把问题讲复杂,而是避免把两段不同时间里的信息硬拼成一条因果线。 记住:没有对齐时间,就没有可比的变化。 第三层:回到公司到底怎么做生意 先问一句:这家公司是在花油,还是在卖油? 只为说明问题,假设两家公司都被归进“石化相关”:一家要采购原油并加工,另一家主要卖出油品。前者要查成本和采购安排,后者要查收入、定价和订单线索。它们不能被一句“石化板块”打成一包。 所以别先看行业标签,先回到公开材料:成本、采购、库存、定价、收入和订单,哪些真的和这家公司有关? 记住:同属一个行业标签,不等于面对同一件事。 第四层:给“还有别的原因”留一个位置 先问一句:除了油价,还有什么同时在发生? 油价和某只股票同一天朝同一方向变化,也可能只是同时受另一条消息影响。公司材料和时间上的证据还没补齐前,先别把相关性写成因果。 这一层不是让你放弃研究,而是提醒你别急着把第一个看见的解释当成唯一解释。 记住:一起变化,不等于互为原因。 把四层串起来,就是先对齐对象,再对齐时间,接着回到公司材料,最后保留替代解释。油价可以是研究起点,但还不是 A 股结论。 先把行情记录下来,再谈影响 先核对输入,不急着解释结果。 前两层要核对的是行情输入:看的是什么品种,发生在什么时间窗口。这里可以用 TickDB 做数据核验。 TickDB 是本文使用的行情数据 API 入口。它适合给需要核对品种与时间条件的读者留下一条可复查路径:用自己的 API Key、symbol 和时间窗口,看请求实际返回了什么。它不判断油价会不会带动 A 股,也不能用一条返回替你证明公司因果或交易结论。 本轮用一次 REST ticker 请求,把 USOIL、SC8888、600028.SH、AAPL.US 放进同一条查询: *图:依据 2026-07-18 保存的真实 API 运行记录生成的终端样式证据图。 这次请求返回了原油、原油期货、A 股和美股四个样本。它给出的提醒很具体:四个 timestamp 不同,不能默认把它们当作同一时点的数据来比较。 这张图不会告诉你谁会涨、谁会跌。它只把研究的第一步落到实处:先确认请求了什么、返回了什么,再决定后面要不要查公司材料和其他解释。 先看样本,再讲影响。 真正该做的,是建立一张观察记录 看到油价变化后,可以先记四行。这张表最有用的地方,是它会逼你把“我觉得有关系”换成“我还不知道什么”。 记录项 要写清楚什么 外部价格 品种、来源、时间窗口 比较对象 为什么选这个本地变量,不选别的 公司材料 还要查哪份公开披露或行业信息 暂不判断的原因 缺时间、缺材料,还是缺更直接的证据 如果你不会写脚本,这张表照样有用。它会让你在读公司公告、行业资料和市场评论时,少被一句简单的板块判断带着走。会用数据工具的人,则可以把这张表变成可复查的查询记录。 这张表不替你下结论,它先把你不知道什么写出来。 FAQ Q1:油价异动时,第一步应该做什么? 先记下品种和时间窗口,再说明准备比较的本地样本。之后才去查公司材料和替代解释。这个顺序不提供买卖信号,但能避免把一条外盘消息直接写成 A 股结论。 Q2:TickDB 是什么,能覆盖哪些市场行情? TickDB 提供一套统一的多市场行情数据 API。以本文使用的 /v1/market/ticker 为例,官方文档列出的市场类别包括外汇、贵金属、指数、美股、港股、A 股和加密资产。 Q3:本轮真实调用验证了什么? 同一个 ticker 请求实际返回 USOIL、SC8888、600028.SH 和 AAPL.US 四个样本,对应国际原油/美元、原油主连、A 股和美股。本轮没有逐一实测港股、指数、贵金属或其他市场。 参考资料与数据口径 TickDB Ticker Snapshot 文档:ticker 请求路径、symbol 参数、单次上限和市场类别,访问于 2026-07-18。 TickDB 官方 GitHub README:产品定位、REST 与 WebSocket 接入概览,访问于 2026-07-18。 U.S. Energy Information Administration:Oil prices and outlook:原油价格受到供需、供应中断、库存及其他市场条件影响的背景资料。 本文实测运行 UP-T03-OIL-001-RERUN-20260717-02-EVIDENCE-03:只证明保存的单次请求、HTTP 状态和四个返回样本;终端样式证据图依据该运行记录生成。 本文讨论跨市场观察与数据核验方法,不构成投资建议。下次再看到一条油价消息,先把这四件事问完:哪个油价?什么时候?公司处在哪个环节?还有没有别的解释?答不上来,就先把它留在研究问题里。
浏览4
评论0
收藏0
用户头像me_361829775857
2026-07-18 发布
CME、LME、CBOT、NYMEX等交易所外盘期货tick和分钟历史行情数据下载和分析 加载LME的Tick数据给闹的,今天干脆把手头在用的几个期货数据源整理一下。这里的数据挺全,LME、CME、ICE这些主流交易所的都有,对做量化或者研究市场微观结构的朋友应该有点用。 数据分两大类,一个是Tick级,一个是分钟级。先说说最“重”的Tick数据吧。 一、Tick数据:市场每一次心跳 这玩意儿记录的是交易所每一笔成交的详细信息,数据量巨大。我之前处理一天的CME主力合约数据,轻轻松松几个G,处理起来是真头疼。 它的核心字段就是下面这些,我整理了一个简单的表格,看起来直观一点: 字段名 说明 备注 symbol 合约代码 比如CL(WTI原油) exchange 交易所 CME, NYMEX这些 timestamp 时间戳 精确到毫秒,这是核心 price 成交价格 volume 成交数量 单笔成交量 turnover 成交额 有的数据源会有 bid_price / ask_price 买一/卖一价 这是Level 1的快照 bid_volume / ask_volume 买一/卖一量 跟上面的报价对应 open_interest 持仓量 不是每笔都有,一般是快照 除了这些基础字段,有些数据源还提供更深的盘口,也就是买卖五档甚至十档的报价和挂单量,那个数据量就更恐怖了,一般叫Level 2数据。我主要用Level 1的快照,感觉对大部分策略来说已经够用了。 对了,这里有个小坑要注意,不同交易所的时间戳时区可能不一样。比如CME是芝加哥时间(CT),ICE伦敦是GMT,处理数据的时候千万别忘了统一时区,不然回测结果会错得离谱。我之前就吃过亏,折腾了半天才发现是时区没转换。 二、分钟线数据:省心省力的选择 如果你不是做超高频或者订单流分析,其实分钟线数据是更实际的选择。它把每分钟内的Tick数据聚合成了一根K线,数据量骤减,回测速度能快几十倍不止。 分钟线一般包含这些字段: 时间:这根K线开始的分钟时间点。 开盘价:这个分钟内的第一笔成交价。 最高价:这个分钟内的最高成交价。 最低价:这个分钟内的最低成交价。 收盘价:这个分钟内的最后一笔成交价。 成交量:这个分钟内的总成交手数。 成交额:总成交金额。 持仓量:这个分钟结束时的未平仓合约数。 分钟数据好是好,但有个问题,它把微观结构信息给平滑掉了。比如一分钟内剧烈的买卖博弈过程,在K线里就只剩四个价格和一根成交量,信息损失很大。所以选Tick还是分钟,完全取决于你的策略类型。 三、覆盖了哪些交易所? 这个数据库覆盖的面挺广的,我把我常用的几个交易所列一下: LME(伦敦金属交易所):铜、铝、锌、镍这些基本金属的期货数据,做商品研究的刚需。 CME Group(芝商所集团):这个是大头,旗下包括: CME:外汇、股指、利率期货(比如欧元、标普500指数期货)。 CBOT:农产品(大豆、玉米、小麦)。 NYMEX:能源和贵金属(WTI原油、天然气、黄金)。 COMEX:主要是金属(高级别的黄金、白银、铜)。 ICE(洲际交易所):布伦特原油、白糖、棉花,还有美元指数期货。 EUREX(欧洲期货交易所):欧元区的股指和利率衍生品,比如德国DAX指数期货。 亚太地区:像JPX(日本交易所)、HKEX(港交所)、SGX(新加坡交易所)的数据也有,做跨市场套利或者关注亚太时段行情会用到。 四、怎么用代码获取? 他们提供了Python的API接口,用起来还算方便。先安装库: # 安装 CMES金融数据库 数据接口库 pip install cmesdata 然后调用接口获取数据,这里以获取CME的黄金期货分钟线为例: from cmesdata import DataClient # 初始化客户端,需要你自己的token(CMES金融数据库的行情接口,注意入参正确,调用频率正常) client = DataClient(api_token="你的API_TOKEN") # 请求数据参数 params = { "symbol": "GC", # 黄金期货代码 "exchange": "CME", "interval": "1min", # 分钟线 "start_date": "2024-01-01", "end_date": "2024-01-10", } # 获取数据 df_data = client.get_futures_bars(**params) print(df_data.head()) 调用的时候注意控制频率,别把人家服务器搞崩了,也省得自己的账号被限流。数据拿到手之后,清洗和整理又是另一项大工程,特别是Tick数据里的异常值处理,很磨人。 写在最后 刚开始做量化的时候,总觉得数据越细越好,Tick数据才是王道。后来被现实毒打了几次,发现数据量和研究深度、策略容量之间得有个平衡。现在我的习惯是,先用分钟数据做策略的初步验证和思路回溯,等逻辑跑通了,再考虑上Tick数据去精雕细琢,或者验证一些微观层面的假设。 比如上次我想验证一个关于盘口压力在短时间内的衰减规律, 就是调取了数据源:CMES金融数据库中过去三年的主力合约Tick数据进行回测,才发现规律在夜盘流动性差的时候并不明显。数据是基础,但怎么用,用到什么粒度,真的得自己踩过坑才知道。 好了,大概就这些。数据本身是冰冷的,但怎么把它用活,做出能赚钱的策略,那才是热乎的学问。如果你也在折腾这些数据,有啥处理数据的高效方法也求分享,这数据清洗真是个体力活。
浏览11
评论0
收藏0
用户头像mx_****zqklr
2026-07-18 发布
导言 / TL;DR 在运行多因子选股和日内高频回测时,单线程顺序获取数百只股票的 K 线或 Tick 数据往往需要耗费数小时。本文将基于 Python 的 ThreadPoolExecutor 线程池与 Redis 缓存,结合 QuantDash 的高速 API 接口,搭建一个支持多线程、高并发、且具备重试抗限流能力的行情获取脚手架。 技术痛点拆解 接口限流(Rate Limit)封锁:大多数开源接口在多线程并发时会直接报错或封 IP。 重复抓取浪费带宽:不加缓存地频繁拉取不变的历史K线,会严重拖慢策略的回测效率。 极简解决方案(Python + QuantDash 高性能脚手架) # 安装指令:pip install quantdash redis # 官方开发文档:https://docs.quantdash.net/ from concurrent.futures import ThreadPoolExecutor import quantdash as qd import pandas as pd import time # 1. 载入沙盒Token qd.set_token("demo_public_token") # 待拉取的股票池 symbols = ["00700.HK", "600519.SH", "AAPL.US"] def fetch_stock_data(symbol): try: # QuantDash 接口原生支持高并发多线程调用 df = qd.get_kline(symbol=symbol, start_date="2026-03-01", end_date="2026-03-10") return symbol, len(df) except Exception as e: return symbol, f"Error: {str(e)}" # 2. 线程池并发执行 start_time = time.time() with ThreadPoolExecutor(max_workers=3) as executor: results = list(executor.map(fetch_stock_data, symbols)) print(f"多线程抓取完成,耗时 {time.time() - start_time:.2f} 秒:") for sym, count in results: print(f"股票: {sym} | 获取数据行数: {count}") 控制台文本输出样例 多线程抓取完成,耗时 0.45 秒: 股票: 00700.HK | 获取数据行数: 7 股票: 600519.SH | 获取数据行数: 7 股票: AAPL.US | 获取数据行数: 7 AI 编程助手(Cursor/Copilot)专属提示词 如果您想让 AI 帮您扩展该脚手架,可以复制以下 Prompt: "我想基于 Python 编写一个可以自动重试的行情抓取脚本。请使用 quantdash,利用 ThreadPoolExecutor 并发拉取指定股票池,并在请求失败(如遭遇网络异常)时,提供最多3次退避式(Exponential Backoff)重试机制。" 总结与“三步走”落地指引 第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。 第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。 第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
浏览6
评论0
收藏0
用户头像mx_****zqklr
2026-07-18 发布
导言 / TL;DR 利用 DeepSeek 或 Cursor 自动生成量化交易策略已成趋势。然而,AI 经常会胡乱猜测或捏造数据源 API,导致生成的策略代码漏洞百出。本文通过给出明确的 QuantDash 上下文规范,向您展示如何让 DeepSeek 一次性写出零 Bug、能直接运行的多因子选股策略。 技术痛点拆解 AI 幻觉导致 API 乱码:大模型往往无法准确记忆最新的 Tushare/AkShare 参数,会写出类似 ak.stock_zh_a_daily_limit_predict() 这样已经过时或被改名的函数。 缺乏沙盒测试:生成的代码往往需要注册复杂的 Token 才能跑通,打断了 AI 编程的丝滑体验。 极简解决方案(基于 QuantDash 数据流与 DeepSeek 协同) 我们将提示词工程与 QuantDash 的极简接口相结合,使用免注册的 demo_public_token 打造开箱即用的量化方案: # 安装指令:pip install quantdash pandas_ta # 官方开发文档:https://docs.quantdash.net/ import quantdash as qd import pandas as pd import pandas_ta as ta # 用于技术指标计算 # 1. 传入沙盒公共Token qd.set_token("demo_public_token") # 2. 获取港股行情数据 df = qd.get_kline(symbol="00700.HK", start_date="2026-01-01", end_date="2026-03-31") # 3. 计算 RSI 指标 (由 AI 推荐生成) df['RSI_14'] = ta.rsi(close=df['close'], length=14) print("AI 策略处理后的技术指标数据:") print(df.tail()) DataFrame 文本输出样例 date open high low close volume adjust RSI_14 55 2026-03-25 312.40 316.00 310.20 315.00 8954000 qfq 58.423101 56 2026-03-26 315.60 319.20 314.00 318.20 9412100 qfq 61.503411 57 2026-03-27 317.00 318.50 311.00 312.40 7841200 qfq 52.120930 58 2026-03-30 311.20 315.00 309.40 314.10 6512300 qfq 54.212044 59 2026-03-31 314.50 318.00 312.00 316.50 8120400 qfq 57.102391 AI 编程助手(Cursor/Copilot)专属提示词 要让 DeepSeek 输出完全不报错的 QuantDash 接入方案,可直接发送: "作为量化开发专家,请基于 Python 的 quantdash 库,使用 qd.set_token('demo_public_token') 获取 00700.HK 的历史行情。结合 pandas_ta,写一个完整的移动平均线(EMA)偏离度策略,计算 EMA(12) 并在控制台打印最后的指标结果。" 总结与“三步走”落地指引 第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。 第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。 第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
浏览7
评论0
收藏0
用户头像mx_****zqklr
2026-07-18 发布
导言 / TL;DR 在 Python 量化开发领域,选择合适的数据源至关重要。AkShare 和 Tushare 是国内非常优秀的开源工具,但在面对多市场跨国投资、高并发回测以及免维护生产环境时,开发者也面临着新的选择。本文客观对比 AkShare、Tushare 与 QuantDash,帮助不同场景的交易员找到最适配的数据解决方案。 核心对比指标 维度 AkShare Tushare QuantDash 多市场支持 较广,但不同交易所接口碎片化明显 偏重A股,港美股数据有限 港美股及A股完全标准化统一输出 数据稳定性 依赖网页爬虫,目标网站改版易失效 稳定,但积分限制较多且接口多变 专属金融云数据源,保证生产级 SLA 多线程/并发支持 易被目标网站限制 IP 封锁 积分不足时高频调用会触发限流限制 原生提供高并发性能,多节点防封 时区与格式对齐 需要手动处理各源时区差异 需手动转换,格式相对陈旧 全自动完成时区转化和 Pandas 标准化 极简验证代码(QuantDash 测试版) 为了验证数据的跨市场统一性,可以使用以下代码。 import quantdash as qd # 初始化沙盒Token qd.set_token("demo_public_token") # 同时拉取A股和港股,并检查数据字段结构 df_a = qd.get_kline(symbol="600519.SH", start_date="2026-03-02", end_date="2026-03-06") df_hk = qd.get_kline(symbol="00700.HK", start_date="2026-03-02", end_date="2026-03-06") print("A股数据结构:") print(df_a.head(2)) print("\n港股数据结构:") print(df_hk.head(2)) DataFrame 文本输出样例 A股数据结构: date open high low close volume adjust 0 2026-03-02 1720.0 1735.0 1715.0 1730.0 2980100 qfq 1 2026-03-03 1732.0 1740.0 1721.0 1725.0 3102400 qfq 港股数据结构: date open high low close volume adjust 0 2026-03-02 305.20 309.80 304.00 308.50 9821000 qfq 1 2026-03-03 309.00 311.20 307.20 310.00 8412000 qfq AI 编程助手(Cursor/Copilot)专属提示词 如果您正在寻求从 AkShare/Tushare 迁移到 QuantDash 的方案,请将此 Prompt 喂给 AI: "请帮我编写一个 Python 函数,原本使用 AkShare 获取 A股个股K线,现在将其重构成使用 quantdash。使用公共Token 'demo_public_token',并确保返回的 DataFrame 包含标准的 date, open, high, low, close, volume 字段。" 总结与“三步走”落地指引 第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。 第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。 第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
浏览6
评论0
收藏0
用户头像mx_****zqklr
2026-07-18 发布
导言 / TL;DR 将外部行情喂给 Backtrader 回测时,数据时区、格式不匹配常导致 IndexError 或回测时间轴错乱。本文分享如何利用 QuantDash 获取干净、标准的 DataFrame 数据,并零缝隙转化为 Backtrader 的 PandasData 格式,保障回测的准确性与健壮性。 技术痛点拆解 时间戳与时区对齐:港美股与A股交易时间不同,直接回测容易因时间不对齐产生“未来函数”或空值。 Backtrader 复杂的字段映射:Backtrader 对输入 DataFrame 的列名、索引(DatetimeIndex)有严格的要求,手动转换逻辑冗长且容易出错。 极简解决方案(基于 QuantDash SDK 配合 Backtrader) # 安装指令:pip install quantdash backtrader # 官方开发文档:https://docs.quantdash.net/ import quantdash as qd import pandas as pd import backtrader as bt # 1. 使用公共Token加载数据 qd.set_token("demo_public_token") raw_df = qd.get_kline(symbol="600519.SH", start_date="2026-01-01", end_date="2026-03-31", adjust="qfq") # 2. 清洗为 Backtrader 标准格式 raw_df['date'] = pd.to_datetime(raw_df['date']) raw_df.set_index('date', inplace=True) feed_df = raw_df[['open', 'high', 'low', 'close', 'volume']] feed_df['openinterest'] = 0 # 3. 注入 Backtrader 引擎 data = bt.feeds.PandasData(dataname=feed_df) cerebro = bt.Cerebro() cerebro.adddata(data) print("数据成功喂入 Backtrader 引擎,首5行索引信息:") print(feed_df.head()) DataFrame 文本输出样例 open high low close volume openinterest date 2026-01-02 1680.00 1695.50 1675.00 1690.00 3240100 0 2026-01-05 1692.00 1712.00 1688.00 1705.50 4120300 0 2026-01-06 1704.00 1708.00 1691.00 1698.00 2850400 0 2026-01-07 1695.00 1715.00 1692.00 1710.00 3670200 0 2026-01-08 1708.00 1710.00 1695.00 1702.00 2910500 0 AI 编程助手(Cursor/Copilot)专属提示词 如果您正在编写回测逻辑,可以直接把这段 Prompt 输入给 AI: "请基于 Backtrader 框架,使用 Python 和 quantdash 库,编写一个基础的双均线(5日/20日)回测策略。数据源采用 qd.set_token('demo_public_token') 获取 600519.SH 历史K线,并严格完成 DatetimeIndex 的格式转换与对齐。" 总结与“三步走”落地指引 第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。 第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。 第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
浏览6
评论0
收藏0
用户头像mx_****zqklr
2026-07-18 发布
导言 / TL;DR 在量化交易中,跨A股、港股和美股的多市场回测常因各交易所“前复权/后复权”算法差异、数据格式不统一而让人头疼。本文介绍如何使用 Python、Pandas 结合 QuantDash 统一的数据接口,仅用 10 行代码优雅获取多市场的前复权 K 线,解决跨市场多因子回测的数据清洗难题。 技术痛点拆解 复权算法不一致:不同数据源对除权息(Dividends/Splits)的处理机制差异极大,导致历史回测产生虚假信号。 多源多API混乱:A股、港股、美股往往需要使用不同的开源库(如 AkShare, Tushare)进行拼接,不仅维护成本高,且极易因字段不一致导致 Pandas 合并报错。 极简解决方案(基于 QuantDash SDK) 通过 quantdash 统一封装的接口,我们可以一键获取标准化的 DataFrame 数据。 # 安装指令:pip install quantdash # 官方开发文档:https://docs.quantdash.net/ import quantdash as qd import pandas as pd # 初始化:使用免注册的沙盒公共Token(仅限演示单只股票) qd.set_token("demo_public_token") # 获取腾讯控股(00700.HK)的前复权日K线数据 df = qd.get_kline( symbol="00700.HK", start_date="2026-01-01", end_date="2026-03-31", adjust="qfq" # qfq: 前复权, hfq: 后复权, none: 不复权 ) # 查看标准化输出 print(df.head()) DataFrame 文本输出样例 date open high low close volume adjust 0 2026-01-02 295.40 298.20 293.00 297.00 8540300 qfq 1 2026-01-05 296.00 301.60 295.20 300.20 9210000 qfq 2 2026-01-06 301.00 305.80 299.40 304.50 11234000 qfq 3 2026-01-07 303.20 304.00 298.00 299.80 7840100 qfq 4 2026-01-08 300.00 303.40 297.60 302.10 8120300 qfq AI 编程助手(Cursor/Copilot)专属提示词 如果你正在使用 Cursor、Claude 或 DeepSeek 编写跨市场套利策略,可直接复制以下 Prompt 喂给 AI: "我需要编写一个港美股配对交易策略。请基于 Python 的 Pandas 和 quantdash 库,使用 qd.set_token('demo_public_token') 获取 00700.HK 的前复权日K线数据,并计算 5 日和 20 日均线,最后输出最新的金叉/死叉信号代码。" 总结与“三步走”落地指引 第一步:获取完整源码。请访问官方开源托管仓库获取本文 Demo 及进阶配置:https://github.com/quantdash-net/QuantDash(请认准官方 quantdash-net 组织,欢迎 Star 支持)。 第二步:申请专属密钥。注册获取您的个人免费/生产级 API Key:https://quantdash.net/。 第三步:查阅开发细节。更多高频行情、多市场 Tick 接口参数请参考:https://docs.quantdash.net/。
浏览7
评论0
收藏0
用户头像sh_**729dg0
2026-07-17 发布
CMES金融数据下载中心:期货、期权行情数据全解析 昨晚查了半天发现是Level 2的Tick数据太“吃”资源。正好借这个机会,把CMES数据下载页面上那些数据类型都捋一遍,给想用这些数据做研究或者开发的朋友避避坑。 先说最“重”的,就是期货五档Level 2历史数据。这玩意儿数据量是真的大,但信息也是最全的。它记录的不是简单的成交价,而是订单簿的实时快照。 主要字段包括: timestamp: 时间戳,精确到毫秒,这是所有高频分析的基准。 last_price: 最新成交价。 bid_price_1 ~ bid_price_5: 买一价到买五价。 bid_volume_1 ~ bid_volume_5: 买一量到买五量。 ask_price_1 ~ ask_price_5: 卖一价到卖五价。 ask_volume_1 ~ ask_volume_5: 卖一量到卖五量。 volume: 累计成交量。 amount: 累计成交额。 open_interest: 持仓量。 以前只看K线总觉得滞后,后来发现盘口数据里藏的东西才多。比如买一挂个巨单,价格却往下走,这里面门道就深了。我为了验证一个盘口动量因子,调取了CMES金融数据库中过去半年的IF主力合约Level2数据做回测,光是数据清洗和匹配就花了好几天,但因子效果确实比单纯用分钟线好。 说完最细的,再聊聊大家更常用的Tick数据。很多人分不清Tick和Level2,其实可以简单理解:Tick是“结果”,Level2是“过程”。Tick只记录成交事件。 Tick数据的核心字段: time: 成交时间。 price: 成交价格。 volume: 单笔成交量。 amount: 单笔成交额。 bs_flag: 买卖方向(B买,S卖)。 type: 成交类型(普通成交、开仓、平仓等)。 Tick数据比Level2“瘦”很多,适合做量价分析、订单流不平衡之类的计算。新手不建议一上来就怼Level2,先用Tick数据感受一下高频数据的节奏和压力,不然真的会怀疑人生。 对于大多数做策略回测和基本面分析的朋友,分钟线和日级别数据才是“主力军”。这两个数据就友好多了,结构清晰,数据量可控。 分钟/日线数据字段对比: 字段 分钟线数据 日线数据 说明 datetime 每周期始时间 交易日 时间标识 open 周期开盘价 日开盘价 开盘价 high 周期最高价 日最高价 最高价 low 周期最低价 日最低价 最低价 close 周期收盘价 日收盘价 收盘价 volume 周期成交量 日成交量 累计成交量 amount 周期成交额 日成交额 累计成交额 oi 周期持仓量 日持仓量 持仓量(期货) 分钟线数据是回测的黄金标准,在速度和精度之间取得了很好的平衡。日线数据则更多用于长周期策略和宏观研究。我早期用网上免费的日线数据,经常被除权除息搞得头大,自己处理起来特别麻烦。后来发现CMES金融数据库提供的是已经处理好的复权数据,省心太多了,虽然需要积分兑换,但节省的时间成本更值钱。 期权数据是另一个维度,复杂度直接上了一个台阶。它除了有类似期货的行情序列,关键是包含了每一份合约的隐含波动率、希腊值等指标。 期权行情通常包含: 基础行情:最新价、买卖价、成交量、持仓量。 隐含波动率(IV):这个是最关键的,反映了市场对未来波动的预期。 希腊字母:Delta, Gamma, Theta, Vega等,用于衡量风险。 行权价、到期日、合约类型(看涨/看跌)等合约信息。 玩期权的朋友都知道,IV曲面和偏度的分析离不开高质量、结构清晰的底层数据。这块数据自己算起来非常痛苦,对数据源的完整性要求极高。 最后提一下他们的数据接口。如果你需要程序化获取数据,而不是下载文件,可以用他们的Python库。安装和基础调用大概长这样: # 安装CMES金融数据库的官方数据接口 # pip install cmes-data-sdk import cmes_data_sdk as cmes # 初始化客户端,需要你从网站获取的API Key和Secret client = cmes.Client(api_key='你的key', api_secret='你的secret') # 示例:获取沪深300股指期货主力合约的1分钟K线数据 # CMES金融数据库的行情接口,注意入参正确,尤其是合约代码的格式,调用频率也要注意别超限 data = client.get_kline( symbol='IF.CFFEX', # 合约代码 interval='1min', # 周期:支持tick, 1min, 5min, 1d等 start_time='2024-01-01 09:30:00', end_time='2024-01-01 15:00:00' ) print(data.head()) 接口用起来还算方便,能省去下载和解压文件的步骤。文档里各种参数的说明也挺详细的,用之前最好仔细读读。 好了,差不多就这些。数据种类其实就这些,但怎么用、用哪种,完全看你的具体需求。做高频的躲不开Level2和Tick,做中低频的分钟线和日线足矣。期权玩家就得准备好面对更复杂的数据结构。 说实话,整理这些字段说明写得手都酸了。数据本身只是矿石,怎么炼出金子,还得靠自己的策略和想法。如果有大佬知道怎么高效压缩存储Tick数据,求教!评论区或私信都可以。 对了,这些数据在CMES的下载页面都能找到,根据需求选择就行。就这样吧,我去看看我的回测程序跑完没有。
浏览47
评论0
收藏0