全部
文章&策略
学习干货
问答
官方
用户头像sh_***1145dp
2026-10-19 发布
股票API接口的费用、权限与接入限制 股票API接口怎么收费,付费后能用哪些数据,接入时又有哪些限制?**费用通常取决于数据类型、套餐和计费周期;权限需要逐项确认市场、接口及历史范围;接入限制则要分别检查调用频次、单次数据量和实时订阅额度。**拿到密钥或购买一个套餐,都不能直接推导出“所有股票数据随便用”。 先给出可落地的答案:Tushare 个人历史分钟数据公开价为 2,000元/年,属于独立权限;TickDB 官网基础版公开价为 99美元/月,列示 60次API调用/分钟、50个同时订阅、1个WebSocket连接。两者的数据范围与交付方式不同,不能只按价格高低选型。免费项目也要看边界:前者的低积分档开放有限数据,后者列示7天精选品种试用。下面按“费用—权限—容量”逐项拆开。价格与文档核对日期为2026年10月18日,下单前以最新页面和账户实际权益为准。 股票API接口多少钱?先看买到的具体数据 **先按同一种数据、同一种用途和同一个计费周期对价,才能判断成本。**日线、历史分钟和实时分钟并非同一项权益;积分门槛与独立付费权限也不能混用。 Tushare 官方权限页列出的部分个人档位如下: 项目 公开费用或门槛 选型时要确认的边界 120积分档 0元/年 不复权日线;50次/分钟、每天8,000次 2,000积分及以上档 200元/年起 按接口要求判断可用范围,不能视为全接口通行证 历史分钟数据 2,000元/年 独立权限,不能用普通积分档直接替代 实时分钟数据 1,000元/月 月费项目,不能误读为年费 同页对机构用户另有价格说明,列示为个人价格的10倍。采购时还应确认账号主体及具体适用项目;“机构价格”本身不等于获得对外转售数据的许可。 对于月度订阅服务,要把价格与容量放在一起看。例如前述基础版的60次/分钟与50个同时订阅,是两个不同维度的上限:一个约束请求频次,一个约束实时订阅数量,不能相互替代。官网展示的试用也有期限和品种范围,不能理解为全市场永久免费。 最终预算还要计入历史补数、重复请求和断线恢复带来的用量。只有把“数据类别、使用主体、使用范围、更新频率、计费周期”写在同一张需求单上,报价才有可比性。 来源:Tushare 官方《权限说明》及相关积分档位;订阅价格取自上述服务官网定价区,均于2026年10月18日核对。 有API Key就有权限吗?还需要确认数据范围和用途 **API Key首先用于身份验证;账户有效不代表所有市场、所有接口和所有历史区间都已开放。**即使某次请求成功,对外展示、再分发等用途仍需依据服务条款或合同另行确认。 实际接入可以分成三个层次:先看密钥和套餐是否有效,再测试目标市场、接口和日期范围,最后确认项目的数据使用范围。 以 TickDB 为例,官方APIKey管理接口可以查询套餐标识、状态、到期时间和剩余秒数。下面是文档中的最小请求,替换占位密钥后可在自己的环境执行: curl -H "X-API-Key: YOUR_API_KEY" \ "https://api.tickdb.ai/v1/apikeys/subscriptions" 成功响应的业务状态码为0。重点检查plan、status、expires_at和remaining_seconds;其中active表示密钥有效,不代表该响应已经列明全部数据权限或授予对外使用权。本文仅核对文档,未使用付费账户执行该请求。 图1:接入核对示意。账户状态查询只是第一步;市场、接口、历史范围及实际用途仍需分别确认。非官方界面截图。 错误响应也能帮助区分问题:官方文档将请求频率超限、交易产品未开放、历史范围超限、接口无权访问以及频道无权订阅分别定义为不同业务错误。客户端应同时检查HTTP状态与业务码,而不是把所有失败都当成网络问题反复重试。 开源股票数据接口同样要分清许可边界。zhangxiangliang/stock-api仓库采用MIT许可,README说明其数据来自第三方,并列有使用限制和免责声明。代码许可解决的是项目代码的使用条件,不能替代上游数据的使用授权,也不能证明服务有商业级可用性承诺。 来源:官方《APIKey管理》《错误码说明》及 stock-api README,2026年10月18日核对。 接入限制怎么看?先把业务需求换算成调用量 **至少分别检查每分钟请求数、每日或滚动窗口额度、单次返回量,以及WebSocket连接数与订阅数。**它们限制的是不同资源,一项满足并不意味着整体可用。 假设要轮询500只股票,每5秒刷新一次,接口允许每次请求50只,每天运行240分钟:每轮需要10次请求,平均每分钟120次,每天28,800次。再预留20%的重试与恢复余量,预算为144次/分钟、34,560次/日。这里的运行时长和批量大小都是示例参数,不代表任一供应商对所有接口的承诺。 下面的代码只做离线预算,可按实际接口修改参数: from math import ceil symbols = 500 batch_size = 50 # 按目标接口实际支持值修改 refresh_seconds = 5 active_minutes = 240 # 本例假定运行时长 headroom = 0.20 # 预算余量,不是实测失败率 requests_per_round = ceil(symbols / batch_size) average_rpm = requests_per_round * 60 / refresh_seconds rounds_per_day = ceil(active_minutes * 60 / refresh_seconds) daily_requests = requests_per_round * rounds_per_day print("每轮请求数:", requests_per_round) print("平均每分钟请求数:", average_rpm) print("含余量每分钟预算:", ceil(average_rpm * (1 + headroom))) print("基础每日请求数:", daily_requests) print("含余量每日预算:", ceil(daily_requests * (1 + headroom))) 图2:假设轮询场景的请求预算,非接口实测。平均频次之外,还需检查突发限制、连接数和订阅数。 把这个需求代入 TickDB 基础版公开额度,基础轮询就已超过60次/分钟;若改用实时订阅,同时关注500只也超过50个同时订阅的额度。这里得到的是“当前方案超出该档容量”的判断,下一步应调整刷新策略、缩小关注范围或核对其他套餐,而不是仅因能成功请求一只股票就认定方案可上线。 批量大小也会改变结论:如果目标接口每次只能查1只,同样500只、5秒刷新就需要平均6,000次/分钟。即使平均量不超额,把一轮请求集中发出也可能触发短窗口限制;多个进程共用账号时,还需确认额度是否共享。 历史补数要另算。Tushare 的stk_mins文档列示单次最多8,000行、每分钟500次、滚动24小时累计30万次,且需独立权限。这里的8,000是返回行数,不是8,000只股票;补数计划还要按标的、日期和每条记录的粒度拆批。 遇到官方页面口径不同,也不要自行取较宽松的数值。例如Tushare日线接口页列示500次/分钟,而低积分档权限页列示50次/分钟。应记录差异,并用账户所属档位、实际接口及服务方确认结果确定有效额度。 来源:上述服务官网定价区、Tushare《股票历史分钟行情》《日线行情》及权限说明,2026年10月18日核对。 购买前,怎样验证这个股票数据接口适合项目? **先用目标数据和真实部署环境做小规模验证,再决定套餐。**验证至少覆盖以下几项: 数据是否符合任务:选取实际要用的市场、标的、复权方式、粒度和历史日期,检查字段、时区、交易日及空值。 权限是否覆盖需求:测试目标接口与历史范围,并单独确认对外展示、共享或再分发等实际用途。 容量是否足够:将正常刷新、历史补数、重试和恢复分别预算,检查频次、返回量及实时订阅限制。 部署条件是否影响调用:在正式部署地区测试网络和搜索功能;stock-api README明确提示部分搜索功能存在境外IP限制,不能只依据本地调试结果判断。 如果项目只需要低频日线研究,可先核对免费档的覆盖与额度;如果需要历史分钟回测,应重点确认独立权限、历史范围和批量返回限制;如果需要多标的实时展示,就应把订阅数、连接数、恢复策略和展示用途一起列入验收。选择依据是项目需求与实际权益是否匹配,而不是“有免费接口”或“套餐标注实时”这一个条件。
浏览17
评论0
收藏0
用户头像mx_**3746h8
2026-10-19 发布
我的研究-研究环境 会弹出python 3.5 ,python3.8的选项,我一般选择3.8,能运行,今天选择了默认的3.5,它就不再弹出环境选择,也就不能运行了,怎么让它重新弹出选择项,能选3.8?多谢
浏览10
评论0
收藏0
用户头像sh_***174w0d
2026-10-19 发布
引言:捕捉主力资金的“不自觉”痕迹 在股票市场中,尽管部分技术指标可以造假,K线形态可以人工画图,但再强大的主力资金在启动主升浪之前,也很难彻底掩盖所有强势信号。因为这些信号中的每一个,反应的都是市场的真实共识与资金的强力介入。 成交量是真金白银砸出来的,涨停板与跳空缺口更是大资金意志的直接体现。当市场形成共识、四大核心信号齐聚共振时,往往预示着个股即将迎来行情爆发,甚至成为连续涨停的起点。 特征一:20个交易日内出现过“涨停信号” 股价能够封上涨停板,绝非散户资金零散买入所能推升,特别是行情启动前的“首板”,必定是主力资金的主动拉升行为。 “首板”不仅是股价脱离底部震荡盘整区间的标志,更是主力资金向市场宣誓进攻意图的“立桩信号”。散户资金缺乏一致性与资金体量,无法形成将股价推至涨停的合力。因此,对于短线交易者而言,应当树立明确的选股门槛:只有在最近20个交易日内出现过涨停信号的股票,才有资格进入自选股池。涨停是主力资金释放的直接信号,没有涨停基因的股票,短期内很难具备爆发力。 特征二:出现逆势或独立的“连续阳线” 在股价加速冲高之前,K线形态上通常会先出现连续的阳线,形态上表现为至少4连阳甚至5连阳。正所谓“连续小涨要大涨”,这种走势并非自然的随机波动,而是主力资金在不动声色地进场吸筹。 ●大盘环境:横盘震荡甚至持续下跌,市场整体抛压较重、情绪萎靡。 ●主力吸筹:个股能够逆势收出阳线,甚至伴随板块逆势走强,完全承接住大盘的抛压。 如果连续阳线的走出能够获得板块走势的配合,说明资金不仅在锁仓个股,还在推动整个板块形成合力,这便是一个极其强势的资金运作信号。 特征三:成交量“持续性”放大 成交量是反映交易活跃度与资金进出最直接的指标。个股在大涨前,成交量通常会比平时放大1倍甚至2-3倍。 这里的核心关键在于“持续性”: ●非一日之功:这种放量绝非一两天的单日脉冲,而是持续性地维持在较高的量能水平。 ●筹码分布与协同:这表明主力资金已经在底部吸收了足够的筹码,个股交易突然全面活跃。有时还会伴随整个板块逐渐走热,带动个股协同启动,随时准备展开大拉升行情。 特征四:留下“向上跳空缺口” 在股价处于低位上涨的过程中,价格如果出现一个向上的跳空缺口,其本质代表着有大资金愿意付出溢价,即以高于前一天最高价的价格强行抢筹进场。 ​ “缺口不补,后市如虎。” 若后续股价始终没有跌破该缺口价位,K线之间就会留下这一微小的缺口。能够将股价强行维持在缺口上方,并依托5日、10日等短期均线展开动态支撑、缓慢向上推升,绝对不是散户行为,而是主力资金强力控盘与持续进攻的体现,属于极其明确的短期强势进攻信号。 四特质共振与实战选股策略(综合应用) 在实战选股中,上述四大信号单拿出一个都是强势指标;而一旦四大特征同时具备,就必须高度重视,这往往是行情启动、主升浪就在眼前的强烈信号。相反,若一支股票这四个信号一个都没有出现,短线策略可以直接放弃。 为了获得更稳健的胜率,还需结合以下辅助筛选条件: 1.股价位置:个股整体股价位置不能过高,处于低位或突破初期的蓄势阶段,加速拉升阶段尚未到来。 2.题材预期:所属板块和题材具备明确预期,板块整体逻辑未被透支,且尚未走完加速见顶行情。 典型主升浪启动案例时序拆解 在主升浪彻底爆发前,主力资金往往会按照以下节奏完成四大信号的共振搭建: 阶段一:建仓与立桩(20日内出现首板**/**多板) 个股在底部盘整期或反弹初期,20个交易日内多次拉出涨停板,率先激活市场关注度并完成筹码换手,确立主力资金深度介入的格局。 阶段二:放量与进攻(跳空缺口 + 持续放量) 随后,股价在低位关键突破位置走出向上跳空缺口,且缺口数日不补。成交量较此前常态量能持续放大1至2-3倍,资金溢价抢筹态势极其明显。 阶段三:共振与主升爆发(低位6连阳启动) 在主升浪拉升前夕,个股依托短期均线走出坚定的低位6连阳,承接住大盘所有抛压。四大信号全部集齐共振,随后瞬间爆发出猛烈的主升浪拉升行情。 选股实战对照表 入选特征清单(四大信号共振) ●涨停基因:最近20个交易日内出现过涨停(主力首板立桩标志)。 ●吸筹连阳:出现低位4连阳、5连阳甚至6连阳(逆势小涨积累筹码)。 ●持续放量:成交量较平时放大1倍或2-3倍,且保持持续的高量能水平。 ●进攻缺口:低位留有向上跳空缺口且坚决不补,股价沿着均线获得动态支撑并缓升。 剔除标准(直接放弃或避险) ●无信号标的:四大特征全无的股票,缺乏资金关注度,短线无爆发基础,直接放弃。 ●位置处于高位:股价已经完成主升浪拉升,处于高位加速派发阶段。 ●预期尽失:题材板块已进入末端加速见顶行情,行业或概念预期走完。 结语与核心要点总结 这套通过四大特征识别主力信号的方法虽然简单,但逻辑扎实,经过了市场多年的反复验证。在实际操作中,严守选股标准,方能在行情启动前夕精准捕捉主升浪。 1.涨停筛选门槛:将“20交易日内出现涨停”作为短线自选股的硬性门槛,以此确认主力资金“立桩”的主动进攻意图。 2.连阳确认吸筹:依靠低位4-5连阳及逆势走势,识别主力不动声色的吸筹过程与板块承接力。 3.量缺释放进攻:通过1-3倍的持续放量与“缺口不补”的跳空形态,结合均线支撑,确认大资金溢价抢筹的强势进攻意图。 4.四特共振择机:四大信号齐备、股价位置不过高且题材预期未完时,即为主升浪爆发的最佳布局节点;无信号股票则直接放弃。
浏览29
评论0
收藏0
用户头像9点半量化
2026-10-19 发布
真金白银砸出来的“A股生存法则” 你是否有过这样的体验?隔夜外围市场大涨,盘前利好消息铺天盖地,全网财经博主都在高喊“牛市来了”。9点25分集合竞价结束,个股大幅高开,你生怕错过暴富机会,心头一热便急不可耐地冲了进去。然而,9点30分正式开盘后,股价却一路震荡下行,拉出一根刺眼的长阴线,把你结结实实地套在了山顶。 这种“高开低走、利好变利空”的戏码,在A股市场反复上演。哪怕在“924”大行情爆发之前,市场就已经无数次验证了这个规律。许多散户频频遭遇这样的困境,本质上是因为看穿了盘面表象,却没看透背后的主力博弈机制。 在A股这片充满暗礁的战场上,老股民口中流传的“组训”,绝不是教科书里空洞无物的教条,而是无数交易者付出了“真金白银的学费”、经历过惨烈割肉后才凝结出的法则。今天,我们就深挖主力资金的运行脉络,拆解这5条能帮你保住本金的“A股组训”。 组训一:高开不追——量化割肉与外围兑现的底层逻辑 面对盘前利好满天飞、外围全线暴涨的情景,老股民的第一反应绝非盲目看多,而是保持高度警惕。为什么“高开千万不能追”?从机构博弈与资金结构的角度来看,其背后存在两层核心逻辑: **1.**短线资金结构与量化算法机制:当前A股的短线资金面很大程度上由量化资金主导。量化模型的核心逻辑是高频低迟滞的“均值回归”——即“跌多了抄底,吃个高开就砸盘”。算法模型不谈“格局”,一旦个股大幅高开,便会瞬间触发自动化止盈离场指令,将高开的流动性转化为筹码抛压。 **2.**时差交易与利好先期兑现:当重大利好在假期或盘后释放时,A股处于休市状态,但港股及股指期货仍在交易。外围资金早已提前拉升,消化了利好预期。等A股正式开盘时,外围抢筹阶段已经结束,盘面顺理成章地沦为机构借利好变现离场的集中抛压点。 近期市场的实际表现也印证了这一点:例如在某些周五交易日中,尽管外围大涨、利好频出,但A股盘中并没有明显放量。这表明场内跟风资金正变得越来越聪明,外围的诱多拉升已经很难轻易骗散户进场接盘了。 “高开不追的根源,在于短线主导的量化资金吃高开就砸盘,以及外围市场时差交易导致的开盘即兑现。” 实战应对策略: 面对大幅高开,切忌在开盘瞬间凭冲动直接入场。正确的做法是“耐下心来等上半小时”。在开盘后前30分钟的剧烈波动期里,仔细观察成交量能是否持续放大、分时图涨跌加速度是否衰竭,以及核心情绪标的的承接力度,确认主力资金真实意图后再作决定。 组训二:中线操作——清醒区分周期,别把“趋势投机”当“长线抄底” 绝大多数散户之所以频频遭遇满仓深套,根本原因在于模糊了交易周期,没想明白自己做的是短线、中线还是长线。 短线与长线的标准逻辑往往是“跌多了抄底、反弹了分批卖”;但中线趋势交易的逻辑却完全相反。在实际市场中,大部分散户在股票处于低位潜伏期时根本注意不到,只有当个股走出清晰的上升趋势并进入趋势加速阶段时,散户才会蜂拥而至。 这意味着,大多数散户本质上做的是趋势加速阶段的投机。这类中线趋势股一旦拐头向下,趋势宣告终结,在量化资金助跌的放大效应下,就会陷入无休止的循环下跌。如果你把中线趋势投机做成了“越跌越买/越埋”的越跌越补策略,最终结局必然是满仓深套。 因此,中线趋势操作的核心纪律是“越跌越减”。只要趋势走坏、拐头向下,就必须坚决降低仓位,绝不能在趋势下跌中硬扛。 组训三:分步止损——执行“三步止损线”,防范假摔同时绝不硬扛 明确了中线趋势操作“越跌越减”的原则后,如何落地执行止损?直接一笔清仓往往会让交易者面临两难:如果遇到上升趋势中的“假摔”或技术性回踩,一笔切掉后股价迅速回升,大多数散户根本没有心理勇气再加仓买回。 因此,应当将技术指标(如跌幅比例与关键均线)与分步减仓法深度结合,建立系统化的动态三步止损框架: 第一条止损线(试探性减仓):当股价破位(例如单日跌幅达5%,或微幅跌破5日均线),图形初次走坏但尚存修复希望。此时先减仓20%-30%,既规避了继续破位的风险,又保留了底仓;若股价止跌并重回上升通道,减掉的仓位还可寻找机会加回。 第二条止损线(大幅度砍仓):当股价跌破关键支撑位(如跌破20日均线或累计跌幅达10%),图形已基本无救,再想创出新高只能期盼奇迹发生。此时应大幅砍仓,仅留极少底仓观察。 第三条止损线(彻底清仓出局):当股价跌破生命线(如跌破60日均线或破位进入无支撑区),技术形态完全坍塌,宣告趋势“死刑”。此时无需再抱有任何幻想,直接一笔清仓走干净,彻底规避无底洞般的沉没成本。 组训四:年末不炒股——看清资金面的宏观与微观双重收紧 每逢岁末年初,老股民往往劝导大家“收手休息、规避风险”,不要盲目去“火中取栗”。这并非迷信经验,而是由年末市场资金面的双重结构性收紧所决定的: 宏观层面:每年年末,宏观金融市场的资金面普遍偏紧。银行及各类金融机构面临结账与考评压力,部分博弈资金会选择从股市中提现撤出,转向固收等安全渠道锁定年化收益。 微观层面:场内各类参与主体均有极强的变现抛售需求。游资与私募机构需要兑现全年利润发发放奖金,公募基金面临年末业绩排名结算与应对潜在赎回的压力,散户也有资金回笼的需求。整个市场在微观层面呈现出强烈的“砸盘变现”特征。 在缺乏增量资金入场、场内存量资金加速流出的博弈环境里,贸然重仓操作的胜率极低。学会适时空仓休息,本身就是极其高级的风险控制能力。 组训五:大涨别上头——禁止盘中“开香槟”,警惕情绪过热与诱多套牢 “大涨别上头”与“高开不追”在交易心理学上一脉相承。散户情绪最亢奋、喊看多声音最响亮的时候,往往就是市场阶段性见顶的时刻。 在市场大涨或连续拉升阶段,主力资金诱多的手段花样繁多。通过盘中拉抬指标股制造“牛市已来”的幻象,吸引散户入场接盘,是主力资金高位出货的惯用套路。 如果交易者在盘中或盘前被狂热情绪裹挟,盲目乐观“开香槟”,甚至随意加大杠杆或重仓追高,就极易落入主力资金预先设下的“情绪过热陷阱”。历史上看,但凡散户感到“普天同庆、全员喊牛市”的时刻,行情往往就已经走到了阶段性的顶部。保持理智与敬畏,坚决不在狂欢中加仓,是保护本金安全的最后一道心理防线。 总结与心法:防套的精神重于死记硬背 市场千变万化,“凡事皆有例外”。任何交易规条都不能机械套用——如果某只个股的技术形态、资金结构与催化剂完全符合你经过实战检验的交易模型,该出手时照样可以果断出手。 老股民用真金白银换来的这5条组训,其核心目的绝不是让你机械地死记硬背,而是要引导你透过盘面迷雾,领悟背后**“时刻警惕主力资金下套”**的防套核心精神,看清资金运行的真实意图。 面对下一次全网喊涨、盘前利好满天飞的高开开盘,你是否能耐下心来,守住纪律,等那关键的上半小时?
浏览20
评论0
收藏0
用户头像sh_*219t3e
2026-09-23 发布
亲测最好用的AI编写量化策略工具,可以让 AI 直接生成同花顺Supermind上可运行的策略代码,代码质量远高于直接使用 DeepSeek、GPT等平台。 😃Supermind AI工具入口:https://easyquant.ai/ 大家可以直接向AI描述策略,然后一键生成可运行的完整策略代码,也可以把它当做一个API 查询工具。
浏览489
评论13
收藏0
用户头像mx_***992igv
2026-05-18 发布
一、量化实验室是什么? 量化实验室是SuperMind量化平台最新推出的AI功能,它不是再给你一堆冷冰冰的工具,而是用AI Agent把你的投研想法变成现实——无论是复杂的因子研究,还是策略的代码生成与回测,统统交给它。 继续加码:特惠延续!每周体验额度翻2倍!(原50 Credits/周,限时升级至100 Credits/周)。活动截止至 2026-07-12 23:59:59,快来试试AI如何重塑你的量化研究! 1.1 因子研究 支持从研究想法、已有公式或研报逻辑出发,Agent自动生成因子表达式并回测验证。适合把“我想研究某个市场规律”这类想法,快速变成可以检验的数据结果。 1.2 策略代码生成 用自然语言描述策略逻辑,Agent自动生成可执行源码并回测: 支持Python策略和公式策略两种类型 Python策略适合选股、多因子、择时、风控、资金管理等复杂逻辑 公式策略适合单标的择时、技术指标、期货或股票的轻量策略 生成策略源码后自动执行回测,结果文件里能看到指标、交易记录和策略表现 支持多轮对话,哪里不满意就直接说,Agent继续改代码、重新跑结果 二、支持的策略类型 量化实验室支持两种策略类型:Python策略和公式策略。两者定位不同,各有适用场景。 2.1 Python策略 Python策略自由度更高,适合把一套完整交易框架写出来: 多股票选股:支持从指数成分股、行业板块或全A股票池中筛选股票 多因子模型:打分排名、因子回归、因子中性化 复杂风控:动态止损、移动止盈、仓位控制、个股持仓上限 灵活调仓:日、周、月任意频率,支持条件触发 完整回测:生成策略源码后直接执行回测,沉淀结果报告 2.2 公式策略 公式策略基于同花顺指标公式语法,更适合单标的、技术指标型策略: 单标的回测:主要针对单只股票、指数或期货合约 技术指标:MACD、KDJ、布林带等经典指标 交易信号:金叉死叉、突破、超买超卖、ATR波动突破 期货策略:日内交易、趋势跟踪、止损止盈规则 2.3 两者对比 能力 Python策略 公式策略 选股范围 全市场动态股票 提前指定单只标的 择时逻辑 任意复杂 指标信号、突破信号等 风控体系 动态止损、移动止盈、仓位管理 简单止盈止损 资金管理 等权、市值加权、风险平价 简单资金调整 因子研究 多因子打分、排名、回归 不支持 编程语法 Python 同花顺公式 回测结果文件 strategy_backtest_*.md funcat_backtest_*.md 适用场景 A股选股、多因子策略 股票/期货单标的择时 2.4 如何选择? 想做A股选股、多因子策略 → 选Python策略 想做股票/期货日内、单标的技术指标择时 → 选公式策略 不确定 → 选Python策略,通用性更强 三、使用方法 3.1 整体流程 进入量化实验室 → 选择Agent → 描述策略 → AI生成代码 → 自动回测 → 查看结果 → 多轮优化 3.2 第一步:进入量化实验室 打开 同花顺SuperMind量化平台 注册登录(同花顺账号通用) 点击上方导航栏「我的研究」-「量化实验室」 3.3 第二步:选择Agent 根据你的需求选择合适的Agent: Agent 适用场景 量化助手 生成Python策略或公式策略,并执行回测(最常用) 因子研究Agent 从研究想法出发,生成因子 因子复现Agent 把公式/伪代码翻译成可执行表达式 生成策略代码时,直接选择「量化助手」即可。在使用时,最好在描述中明确说“生成Python策略”或“生成公式策略”,否则Agent可能会理解错方向。 3.4 第三步:描述你的策略 用大白话把策略逻辑讲清楚,关键是这几个要素: 要素 说明 示例 买什么 股票池 "沪深300成分股"、"全A股剔除ST" 什么时候买 开仓条件 "金叉买入"、"突破20日高点" 什么时候卖 平仓条件 "死叉卖出"、"亏损5%止损" 怎么分钱 资金管理 "等权重"、"按因子加权" 回测区间 起止时间 "2023年到2024年" 回测频率 运行频率 "日频"、"5分钟频率" 基准指数 对比基准 "沪深300"、"中证500" 描述示例: 写一个Python策略: - 股票池:沪深300成分股 - 买入:5日均线上穿20日均线,次日开盘买 - 卖出:5日均线下穿20日均线,次日开盘卖 - 资金:每笔买入5万 - 回测:2023-2024年,初始资金1000万,日频 公式策略可以这么说: 生成一个公式策略: - 标的:300033.SZ - 信号:收盘价上穿20日均线买入,下穿20日均线卖出 - 风控:亏损5%止损,盈利后从最高点回撤3%止盈 - 回测:2023-2025年,日频 3.5 第四步:查看回测结果 AI生成代码并执行回测后,策略源码和回测结果会保存到文件中: Python策略:strategy_backtest_*.md 公式策略:funcat_backtest_*.md 报告通常包含: 核心指标:总收益率、年化收益率、最大回撤、夏普比率、胜率、盈亏比、交易次数 净值曲线:策略收益 vs 基准收益 3.6 第五步:多轮优化 不满意?直接告诉AI怎么改: # 加个过滤条件 在刚才基础上,加个成交量过滤,金叉时成交量要大于5日均量的1.5倍 # 优化风控 再加个动态止损:从最高点回撤5%止损,同时3%移动止盈 # 调整参数 把MACD参数改成(8,17,9),回测时间延长到2024年 每一轮AI都会自动修改代码、重新回测、出新报告。反复调整,直到满意为止。 当然,AI生成的代码也需要用户自己甄别。它能大幅降低从想法到回测的门槛,但重要参数、交易假设和异常结果仍然建议自己再检查一遍。 3.7 剩余额度查看与充值 我们为每位用户提供了一定的免费体验额度,如有更大的使用需求,也可以订阅付费套餐。 四、实战案例 案例1:双均线公式策略 策略思路:最经典的趋势跟踪策略。收盘价上穿20日均线买入,下穿20日均线卖出,再加上止损止盈。这个案例适合用公式策略快速上手。 你怎么说: 生成一个公式策略: 1. 回测标的: - 标的:同花顺 - 频率:日频 - 回测区间:2023-01-01 至 2025-01-01 2. 开仓条件: - 计算20日收盘价均线MA20 - 当收盘价从下方上穿MA20时买入 3. 平仓条件: - 当收盘价从上方下穿MA20时卖出 - 买入后亏损达到5%时止损 - 买入后盈利创新高,再从最高点回撤3%时止盈 案例2:动量选股+止损策略 策略思路:选近期涨得好的股票(动量效应),但排除涨太多的(避免追高),加上硬性止损保护。 你怎么说: 生成一个Python选股策略: 1. 选股条件: - 股票池:中证500成分股 - 剔除ST股、停牌股、上市不足120日的股票 - 过去20日收益率排名前20%(动量强) - 过去5日平均换手率大于3%(确保流动性) - 排除过去20日涨幅超过30%的股票(避免追高) 2. 开仓条件: - 每周一开盘时,根据上述条件筛选出目标股票池 - 买入所有符合条件的股票,以开盘价执行 3. 平仓条件: - 每周一调仓时,不在新目标池中的股票全部卖出 - 个股亏损达到8%,无论是否到调仓日,立即止损卖出 - 个股盈利达到20%止盈 4. 资金分配: - 初始资金100万 - 持仓上限20只股票 - 采用等权重分配:总资金/持仓股票数 = 每只股票的分配金额 - 如果筛选出的股票超过20只,按动量排名取前20只 - 买入时按100股整数倍取整 5. 回测参数: - 回测区间:2022-01-01 至 2024-12-31 - 基准指数:中证500 - 初始资金:100万 - 回测频率:分钟 案例3:资金流向+波动率复合策略 策略思路:跟着主力资金走,但要选波动适中的股票(资金流入说明有人看好,波动适中说明走势稳健)。 你怎么说: 设计一个Python策略: 1. 选股条件: - 股票池:全A股(剔除ST股、停牌股、上市不足120日的次新股) - 因子1 - 资金流向:过去5日主力资金净流入(大单+特大单买入 - 大单+特大单卖出)/ 总成交额 > 0 - 因子2 - 波动率:过去20日收益率的年化波动率,要求处于全市场中位数±1个标准差之间 - 两个条件同时满足才入选 2. 开仓条件: - 每两周的第一个交易日开盘时执行选股 - 买入所有符合条件的股票 3. 平仓条件: - 每两周调仓时,不在新目标池中的股票全部卖出 - 个股亏损达到10%,立即止损 - 个股持有超过30个交易日仍未盈利,考虑卖出(避免长期套牢) 4. 资金分配: - 初始资金100万 - 持仓上限15只股票 - 采用等权重分配:可用资金/新买入股票数 - 卖出股票释放的资金,在下一个调仓日再分配 - 保留5%的现金作为缓冲,避免频繁满仓操作 5. 调仓频率: - 每两周调仓一次(即每10个交易日) 6. 回测参数: - 回测区间:2023-01-01 至 2024-12-31 - 基准指数:中证800 - 初始资金:100万 - 回测频率:分钟 案例4:多因子打分排名策略 策略思路:综合多个维度给股票打分,选出综合表现最好的。类似基金公司的量化选股模型。 你怎么说: 创建一个多因子Python策略: 1. 选股条件: - 股票池:沪深300成分股 - 剔除ST股、停牌股 - 三个因子,各自权重: - PE_TTM(市盈率,越低越好):权重30% - ROE(净资产收益率,越高越好):权重40% - 过去60日收益率(动量,越高越好):权重30% - 对每个因子进行标准化打分(0-100分) - 加权计算综合得分 = PE得分×30% + ROE得分×40% + 动量得分×30% - 选择综合得分排名前20的股票 2. 开仓条件: - 每月第一个交易日开盘时执行选股 - 买入综合得分前20名的股票 3. 平仓条件: - 每月调仓时,不在新目标池中的股票全部卖出 - 个股亏损达到15%,立即止损 - 如果某只股票连续两个月综合得分跌出前30名,下个月强制卖出 4. 资金分配: - 初始资金100万 - 固定持仓20只股票 - 采用等权重分配:总资金/20 = 每只股票5万元 - 调仓时,先卖出需要清仓的股票,再买入新股票 - 买入顺序按综合得分从高到低,确保高分股票优先获得资金 - 如果资金不足,优先买入得分最高的股票 5. 调仓频率: - 每月第一个交易日调仓 6. 回测参数: - 回测区间:2022-01-01 至 2024-12-31 - 基准指数:沪深300 - 初始资金:100万 - 回测频率:日频 五、常见问题 Q:AI生成的代码一定正确吗? A:不一定。AI能显著提高从想法到回测的速度,但生成代码、回测参数和交易假设仍然需要自己甄别,尤其是用于真实交易前。 Q:生成的代码有bug怎么办? A:直接告诉AI“回测报错了,错误信息是xxx”,它会根据报错继续修改代码并重新回测。 Q:生成后还能继续改吗? A:可以。比如“加一个成交量过滤”“把止损从8%改成5%”“回测区间延长到2025年”,都可以在同一个会话里继续说。 Q:策略能导出到本地吗? A:可以。Python策略会沉淀Python源码和 strategy_backtest_*.md 报告,公式策略会沉淀公式策略结果和 funcat_backtest_*.md 报告。 Q:可以免费使用吗? A:我们为每位用户每周提供了50 Credits的体验额度,可以满足多个策略代码生成任务。2026-07-12 23:59:59前体验额度限时2倍! 六、总结 传统方式 量化实验室方式 学Python语法 → 学量化框架 → 写代码 → 调试 → 回测 说策略想法 → 生成Python/公式策略 → 自动回测 → 看报告 耗时:几天到几周 耗时:几分钟 不管你是量化新手想入门,还是老手想快速验证想法,SuperMind量化实验室都值得一试。尤其是策略代码生成这一步,它把“我有个策略想法”和“我看到了回测结果”之间的距离,压到了几分钟。 【重磅更新】 支持生成和执行通用代码 除策略代码外,量化实验室目前也支持生成通用python代码并执行,例如可以做数据处理、分析、可视化输出等。 与量化平台其他功能进行交互 supermind-cli 是Agent与SuperMind 量化平台进行交互的skill,可以让用户快速完成策略管理、回测与自选板块管理等。 管理个人策略仓库 将AI 生成的策略同步至云端仓库,或拉取其他策略的代码。推送后可以在“我的策略”-“策略研究”中看到这个策略。 示例:“把刚才写好的双均线策略推送到策略仓库里,命名为神奇均线”、“帮我看看云端现在有哪些策略” 异步回测 推送完成后可以发起异步回测任务。回测完成之后可在“我的策略”-“策略研究”-“回测列表”中查看回测详情。 示例:“用过去两年的数据跑一下这个策略的回测,初始资金500W” 维护自选板块 新增、更新或查询自选板块,添加后同花顺行情客户端可见。 示例:“帮我把这几只白酒股加到自选板块里”、“查一下我现在的自选板块都有哪些股票” 相关链接: AI Lab帮助文档 API文档 因子研究指南 回测引擎说明
浏览11046
评论16
收藏9
用户头像Fxdund
2026-10-19 发布
做美股行情工具或者量化策略的人,几乎都会纠结同一个问题:实时行情到底该用HTTP轮询还是WebSocket推送?网上的说法五花八门,有人说不轮询就是不懂行情,有人说WebSocket才是正经解法。与其听别人讲,不如自己写代码测一遍——把两种方式接到同一个数据源上,用统一的口径量一量延迟、请求量、资源占用,结论自然就出来了。 这篇就是一次完整的测量过程记录:怎么设计测试、REST侧怎么测、WebSocket侧怎么测、结果怎么对比、最后什么场景该选哪个。 为什么延迟这事值得认真测 很多做美股的朋友一开始觉得"延迟差个一两秒无所谓"。这取决于你的策略: 日频选股:收盘后拿数据,延迟完全不敏感 分钟级监控:一两秒延迟可以接受,但要稳定 盘口、事件驱动、套利类策略:延迟直接决定策略能不能成立 另外延迟不是只看"快不快",还要看抖不抖。一个接口平均100毫秒但偶尔跳到5秒,对策略的伤害比稳定200毫秒还大。所以测量的时候,别只记平均值,最大值和分布也要记。 测试设计:先定好口径再动手 延迟测试最容易出问题的地方是口径不统一。测REST和测WebSocket,如果"延迟"的定义不一样,对比就没有意义。 我建议统一用这个口径: 延迟 = 数据到达本地的时间 - 行情数据自身的生成时间戳 两种方式都对比这个差值。REST响应里有最新成交时间戳 t(毫秒),WebSocket推送的报价消息里也有 t。本地收到数据时记一个 time.time() * 1000,减去 t,就是这次数据的"端到端延迟"。 测量样本至少跑几百条,同时记录三组数:最小值、平均值、P95。只看平均会掩盖抖动,P95才能反映最差情况有多差。 还有一个公平性问题:两边要订阅同一批标的、在同一个时段测。美股盘中和盘后的推送频率完全不一样,跨时段对比出来的数字没有意义。 REST轮询怎么测 REST这边思路很简单:循环调用报价接口,每收到一次响应就计算一次延迟,连续跑N次,把延迟序列存下来。 import time import requests API_BASE = "https://api.itick.org" TOKEN = "your_token_here" headers = {"accept": "application/json", "token": TOKEN} def measure_rest_polling(symbol="AAPL", region="US", rounds=200): latencies = [] for _ in range(rounds): # 记录请求发出前的时间(毫秒) t0 = time.time() * 1000 resp = requests.get( f"{API_BASE}/stock/quote", headers=headers, params={"region": region, "code": symbol} ) data = resp.json()["data"] # 行情时间戳 t 是毫秒 latency = t0 - data["t"] latencies.append(latency) time.sleep(1) # 模拟真实轮询间隔 return latencies lats = measure_rest_polling() lats.sort() n = len(lats) print(f"样本数: {n}") print(f"最小: {lats[0]:.0f}ms, 平均: {sum(lats)/n:.0f}ms, P95: {lats[int(n*0.95)]:.0f}ms") 这里有个细节值得注意:t0 记的是"请求发出前",但请求从发出到响应回来还有一个网络往返时间。严格说,REST轮询拿到的价格是上一次成交的价格,等你处理完这笔数据,行情可能已经又走了一段。所以REST的"有效延迟"天然比WebSocket大——它多了一个完整的请求-响应周期,哪怕你每秒刷一次也一样。 另外轮询频率是有上限的。一秒一刷,一小时就是3600个请求,一整天开着,请求量非常可观。对个人开发者来说,这既是成本问题,也是被限流的问题。 WebSocket推送怎么测 WebSocket这边,数据是服务端主动推过来的,测量逻辑变成:每收到一条报价消息,就用消息里的 t 和本地接收时间算延迟。 import json import threading import time import websocket WS_URL = "wss://api.itick.org/stock" TOKEN = "your_token_here" authenticated = False latencies = [] def on_message(ws, message): global authenticated payload = json.loads(message) if payload.get("resAc") == "auth" and payload.get("code") == 1 and not authenticated: authenticated = True ws.send(json.dumps({ "ac": "subscribe", "params": "AAPL$US", "types": "quote" })) threading.Thread(target=heartbeat, args=(ws,), daemon=True).start() return if payload.get("resAc") == "pong": return data = payload.get("data") or {} if data.get("type") == "quote": now = time.time() * 1000 latency = now - data["t"] latencies.append(latency) def heartbeat(ws): while True: time.sleep(30) ws.send(json.dumps({"ac": "ping", "params": str(int(time.time() * 1000))})) ws = websocket.WebSocketApp( WS_URL, header=[f"token: {TOKEN}"], on_message=on_message ) ws.run_forever() 跑一段时间,比如等几百条消息进来,然后离线分析 latencies: lats = sorted(latencies) n = len(lats) print(f"样本数: {n}") print(f"最小: {lats[0]:.0f}ms, 平均: {sum(lats)/n:.0f}ms, P95: {lats[int(n*0.95)]:.0f}ms") WebSocket的延迟有两个特点:一是推送频率跟着行情走——盘口活跃的时候消息多,清淡的时候消息少,不像轮询那样固定节奏;二是连接建立后只占一个长连接,不管订阅多少个标的,请求量都是恒定的,这是它跟轮询最本质的区别。 对比维度,不只是延迟 把两边都测完,你会得到两组数字。但选择方案不能只看延迟,我建议用四个维度一起看: 维度 REST轮询 WebSocket推送 延迟 多一个请求-响应周期,端到端延迟偏高 服务端主动推送,延迟低且稳定 请求量 与轮询频率成正比,长时间运行成本高 连接建立后恒定,不随标的数量增长 资源占用 每次请求都要建连、HTTP开销 一个长连接常驻,需要维护心跳 复杂度 简单,一个requests循环就够 需要处理鉴权、心跳、断线重连 结论其实很清晰:低频、短时、脚本化场景用REST,高频、长时、多标场景用WebSocket。日频任务、一次性拉快照、测试脚本,REST足够;盘中盯盘、事件驱动、跨标的实时监控,走WebSocket。 实测之外的几个坑 测量过程中顺便把几个老坑也验证了一遍,写下来免得大家再踩: 鉴权时序。 WebSocket连接建立不等于可以订阅,必须等 resAc:"auth" 且 code:1 再发subscribe。我见过直接连上就订阅的代码,数据一条都收不到,程序还不报错。 心跳不能省。 文档要求每30秒发一次心跳,不发的话长连接会被服务端断开。跑测量脚本一挂几小时,心跳漏了,后半段数据就全没了。 时间戳单位。 报价和K线的时间戳都是毫秒,直接用 time.time()(秒)去减会得到一个巨大的负数。统一用毫秒口径,或者写个工具函数转换,别在业务代码里随手除。 交易状态要判断。 美股盘前、盘中、盘后的行情特征差别很大,ts 字段标识交易状态。做延迟测试最好选正常交易时段,不然测出来的分布毫无参考价值。 小结 "轮询还是推送"这个问题,答案不在网上,在你的测量脚本里。把口径定好、两边各跑一遍、四维度对比,你的场景该用哪个自然就清楚了。对大多数做美股行情的个人开发者来说,最终方案通常是:REST拿快照和历史数据,WebSocket做盘中实时监控,两者各司其职。 数据源的具体参数和返回字段说明,写代码的时候边写边翻官方文档对照,比自己猜参数靠谱多了。 GitHub:https://github.com/itick-org/
浏览32
评论0
收藏0
用户头像sh_**0331gdEKI
2026-10-17 发布
我的策略在回测中除了大盘行情在极端不好的情况下,可能选不出股票,绝大多数都能选出股票来,但回测的代码直接转到模拟盘上,出现当天一只股都选不出来,或者选一二只。我又用代码回测比如:模拟盘是星期四,没有选出一只股,我星期五用同一个代码去回测星期四的行情,出来几十只可用的股票。这是怎么回事呢?这个很严重,直接影响收益。要不,不开仓一只股没选出来,要不一二只。回测完全 不是这种情况。这个问题怎么解决啊?是什么原因?
浏览58
评论4
收藏0
用户头像sh_*599ojc
2026-10-17 发布
同一个盘口接口,苹果返回1档,寒武纪5档,腾讯10档,比特币1000档。直觉会说比特币最深、苹果最浅。可把挂单换成钱一算,比特币1000档挂的钱,还不到腾讯10档的三分之一。这篇讲清档数到底由什么决定、盘口深度该怎么比,最后给行情App三条显示规矩和一段跨市场盘口代码。 10月16日晚上11点33分,美股正在交易,港股和A股已经收盘。我用同一个盘口接口,查了四个标的:苹果、寒武纪、腾讯、比特币。 返回的档数分别是:1、5、10、1000。 如果只看档数,结论似乎很明显:比特币的盘口最深,苹果最浅。但把每一档的价格乘上数量,换成挂单金额: 比特币1000档,买卖两侧合计约2,450万美元;腾讯10档,约7,890万美元。1000档的钱,不到10档的三分之一。苹果只有1档,买一卖一合计才约4万美元,可它10月16日全天的成交额有约206亿美元。 所以,档数不是深度。档数是交易所规则和数据权限决定的;深度要看两个数:盘口覆盖了多宽的价格,这段价格里挂了多少钱。 这篇适合谁: 做行情App、交易工具、看板的产品经理和开发者:盘口要显示几档、空档怎么处理、数量怎么标; 拿“支持多少档”比较数据供应商的采购和技术负责人; 用盘口估算滑点、做盘口因子的量化开发者。 不写代码的读者,读完前三部分就够了,第四部分可以直接转给技术同事。 一、档数是规则和权限,不是市场深度 很多人默认,五档、十档、一千档,是数据“好”和“更好”的区别。其实档数主要由两件事决定:交易所怎么发行情,你买的是哪一级数据。 A股:Level-1是五档,Level-2才是十档 上证所信息网络公司的接口说明书写得很清楚:Level-1行情快照里,买卖盘字段是“申买五价、申卖五价”;Level-2快照是“申买十价、申卖十价”,另外还有逐笔数据和买一卖一的前50笔订单。我们平时在大多数行情软件里看到的五档,就是Level-1。 港股:十档属于Level 2,更深要另买 港交所的行情产品按层级划分:Level 2及以上提供十个价位的市场深度;超过十档的汇总深度在更高一级的产品里;完整的逐笔订单只在Full Book里。 美股:公共合并行情只有最优价 美股分散在十几家交易所交易,公共合并行情(SIP)的“核心数据”,是各家交易所的最优买卖价和对应数量,也就是常说的top of book。更深的盘口,主要要从各交易所单独购买专有数据。所以很多美股行情服务只给1档,并不说明美股浅。 加密:1000档挤在很窄的价格里 比特币的最小价格变动是0.01美元,每一档之间几乎没有间隔。1000档听起来很多,其实只覆盖了中间价上下约0.3%。 推到这里,结论就清楚了:拿档数去比较数据源,比的是各家买了哪一级数据,不是在比市场;拿档数去比较不同市场,更是在比交易所规则。 那深度到底该怎么比? 二、看深度,要看两个数:覆盖多宽,挂了多少钱 档数不能比,是因为每一档的“宽度”和“厚度”都不一样。能跨市场比的,是两个数。 第一个数:可见盘口覆盖了多宽的价格 腾讯10档,买卖各覆盖中间价上下约0.43%;比特币1000档,买盘0.31%、卖盘0.25%;寒武纪5档,买盘0.35%,卖盘只有0.05%;苹果1档,只有最优价,什么范围都看不出来。 第二个数:中间价附近挂了多少钱 我用“中间价上下0.1%以内的挂单金额”来比: 标的 买方(中间价下方0.1%内) 卖方(中间价上方0.1%内) 腾讯 7.22万股,约3,014万港元 13.15万股,约5,496万港元 比特币 76.19 BTC,约622万美元 83.62 BTC,约683万美元 寒武纪 400股,约37万元 3,600股,约329万元 苹果 只有1档,算不出来 同左 读法:同样是中间价附近0.1%,各市场能吃到多少钱。数据为10月16日盘口快照,A股、港股为收盘后最后一份盘口。 还有一个细节,能看出“档多不等于每档有量”:比特币第2到第5档,每档只挂着约0.0001 BTC,不到10美元。这些“灰尘单”把档数撑满了,对深度几乎没有贡献。 这不是一时的巧合。我在周六上午11点29分又取了一次比特币盘口,还是1000档,覆盖范围买盘0.29%、卖盘0.24%,合计挂单约2,600万美元,和周五晚上差不多。 所以,“能不能吃下一笔单子”,要看范围和金额,而不是档数。但即使看了金额,盘口也只是一半的信息。 三、盘口是意愿,成交是事实 盘口是还挂着、等着成交的订单,随时可能撤;成交是已经发生的事实。两者不仅不是一回事,大小还可能完全对不上。 腾讯10月16日的最后一笔成交,发生在16:08:14,价格417.8,数量114.24万股。这个时间正落在港股收市竞价的随机收市窗口里,是竞价撮合出来的一笔。而收盘后能看到的10档卖盘,加起来只有76.02万股。 一笔成交比整个可见盘口还大,原因很简单:收市竞价里积累的订单,不会提前全部挂在连续竞价的盘口上。只看盘口去估算“这只股票收盘时能成交多少”,会低估好几倍。 苹果的逐笔成交是另一种情况。我取的20笔成交,全部落在同一秒(北京时间23:33:30),数量从1股到160股不等,价格大多在344.71到344.85之间;其中有一笔10股的成交价是345.534,比同一秒其他成交高出约0.23%。 对做App的人来说,这意味着三件事: 成交明细和盘口分开显示,不要用成交去“修正”盘口; 同一秒的多笔成交,按接口返回的顺序排,不要按价格重排; 偏离当时买卖价较多的成交,可以单独标出来,不要直接拿它刷新最新价。 把前三部分落到界面上,就是下面三条规矩。 四、行情App显示盘口的三条规矩 规矩一:有几档显示几档 接口给了5档就显示5档,给了1档就显示1档。不要补0,不要复制最后一档,也不要用空行凑满十档。补出来的档位,用户和策略都会当成真实挂单来算,这就是在制造假深度。 规矩二:数量写单位,再换算成金额 A股盘口的数量通常按手计(1手为100股,按接口实测推断,接入时以文档确认),港股、美股按股,加密按币。寒武纪买一显示的“2”,是200股,不是2股。单位不写清,用户估算能成交多少时会差100倍。要跨市场比较,就统一换算成金额。 规矩三:深度用“范围 + 金额”表达,不用档数 想告诉用户盘口有多深,就显示“中间价上下0.1%内挂了多少钱”,或者“可见盘口覆盖了多宽的价格”。不要在产品介绍里写“支持1000档深度”,那只说明交易所规则和数据层级。 另外,今天是周末,打开App,A股和港股的盘口还停在周五收盘那一刻。盘口旁边要写明它属于哪个交易日、哪一刻,不要让用户以为这是现在的挂单。 这三条规矩落到各个市场,是这张表: 市场 常见档数 数据层级 数量单位 显示建议 A股 5档 Level-1;Level-2为10档 手(推断) 换算成股和金额;不补到10档 港股 10档 Level 2;更深需另购 股 显示金额;收市竞价成交单独标注 美股 1档 公共合并行情只有最优价 股 不暗示深度;成交明细单独显示 加密 最多1000档 交易所提供 币 用范围和金额表达;过滤灰尘单 读法:档数一列只说明规则,判断深度看最后一列。 怎么做 TickDB 为开发者和 AI 应用提供统一的全球行情数据接口,让团队通过一套接入获取多市场实时与历史数据,更快构建行情、分析和监控产品。 文中四个市场的盘口,是用它的同一个盘口接口、在同一时刻取到的:接口按市场返回原生档位,美股1档、港股10档、A股5档、加密最多1000档,有几档返回几档,不做补齐;外汇和指数不提供盘口。 下面这段代码不比档数,而是算每个盘口的覆盖范围和中间价上下0.1%内的挂单金额: # 测试环境:Python 3.11 / 2026-10-17(用 10/16 四个市场的真实盘口验证) # 用途:跨市场比较盘口深度,不比档数,比“覆盖范围”和“中间价附近挂了多少钱” import os from decimal import Decimal import requests LOT = {"SH": 100, "SZ": 100} # A股盘口数量按手计(推断,接入时以文档确认),换算成股 def get_book(symbol): r = requests.get("https://api.tickdb.ai/v1/market/depth", params={"symbol": symbol}, headers={"X-API-Key": os.environ["TICKDB_API_KEY"]}, timeout=10) # Key 只放服务端 body = r.json() if body.get("code") != 0: raise RuntimeError(body.get("message")) return body["data"] def depth_stats(book, width=Decimal("0.001")): mult = LOT.get(book["symbol"].rsplit(".", 1)[-1], 1) bids = [(Decimal(p), Decimal(q) * mult) for p, q in book["bids"]] # 有几档用几档,不补齐 asks = [(Decimal(p), Decimal(q) * mult) for p, q in book["asks"]] mid = (bids[0][0] + asks[0][0]) / 2 near = lambda side, ok: sum(p * q for p, q in side if ok(p)) return { "levels": (len(bids), len(asks)), "range_pct": (float((bids[0][0] - bids[-1][0]) / mid * 100), float((asks[-1][0] - asks[0][0]) / mid * 100)), "notional_near_mid": (float(near(bids, lambda p: p >= mid * (1 - width))), # 中间价下方 0.1% 内的买单金额 float(near(asks, lambda p: p <= mid * (1 + width)))), # 中间价上方 0.1% 内的卖单金额 } if __name__ == "__main__": for s in ["AAPL.US", "700.HK", "688256.SH", "BTCUSDT"]: print(s, depth_stats(get_book(s))) 设置环境变量 TICKDB_API_KEY 后运行,Key 只放在服务端。用10月16日的四份盘口跑,腾讯中间价上方0.1%内的卖单约5,496万港元,比特币约683万美元,和第二部分的表格一致。 档数说明的是规则和权限,深度要用范围和金额来量。盘口告诉你有人愿意在哪里买卖,成交告诉你实际发生了什么,两样都要看,也都要分开看。 今天就可以打开你们App的盘口页看一眼:有没有补出来的空档,数量写没写单位,周末的盘口有没有写明是哪一天的。 参考资料 上证所信息网络有限公司,《上海证券交易所历史数据接口说明书》v1.1.2,2023年12月13日。sseinfo.com 香港交易所,Real-time Datafeeds 产品说明。hkex.com.hk Sidley Austin,《SEC Proposes Overhaul of Market Data Infrastructure》,2020年4月9日。sidley.com 数立方投研服务平台,《level1和level2数据的区别》。datacube.foundersc.com TickDB 官方文档,盘口接口说明。docs.tickdb.ai 苹果、寒武纪、腾讯、比特币的盘口与逐笔成交:TickDB 实测,2026年10月16日23:33(北京时间);比特币另于10月17日11:29复测。
浏览121
评论0
收藏0

穷的没钱花了,哪个老板能帮帮内含策略代码

用户头像mx_***212o7g
2026-10-15 发布
专职在家了,自己没钱玩
浏览95
评论2
收藏0
策略回测收益图