TECHNICAL DOCS
这份分析是怎么算出来的
这不是一份"使用说明"。它写的是每个数字背后的规则、参数和假设 —— 包括哪些地方做不到、哪些结论不该被当真。看完你应该能判断某个结论值不值得信。
一、数据到结论的链路
一次分析会拉三类数据,然后并行跑四个模块,最后合成页面上的六个板块:
- 日线(750 个交易日,约 3 年)→ 技术位识别 → 买卖区、位置、回测、推演
- 分钟线(当日分时,盘前/盘中/盘后分段)→ 图表工作台、日内信号
- 公开新闻(RSS + 快讯)→ 关键词倾向 → 新闻板块
所有计算在后端完成,前端只做格式化和绘图。图表是手绘 SVG,不引第三方图表库 —— 这样首屏不用等额外资源,也不会有 CDN 挂掉的风险。
二、数据来源与更新
| 数据 | 来源 | 频率 / 延迟 | 用途 |
|---|---|---|---|
| 日线 OHLCV | 主源不可用时自动切换备用源 | 每日收盘后 | 技术位、回测、推演 |
| 当日分时 | Yahoo Finance 1 分钟线,含盘前盘后 | 盘中 5 秒轮询,盘前盘后 1 分钟,休市 5 分钟 | 图表工作台 |
| 报价 | 东方财富与 TradingView 全天盘 | 请求时取得,接口缓存 60 秒;TradingView 可能延迟约 15 分钟 | 首屏报价条、概览 |
| 新闻 | Yahoo Finance RSS、东方财富快讯 | 随抓取 | 新闻板块 |
日线做了拆股与现金分红调整(OHLC 同比例调整,成交量保持源值)。这意味着回测里的历史价格 不是当时的真实报价,而是"如果今天复权回去"的价格 —— 用于计算收益率是对的,用于回忆"当时股价多少"会失真。
关于分时的已知限制。盘前盘后成交量可能缺失或为零;VWAP 只对所显示交易日的常规时段做分钟近似。 来源有延迟标记时展示标记,没有标记时不能推断为零延迟。盘前、盘中、盘后最后一根 距离当前时间超过 3 分钟时,状态条显示滞后分钟数;成交稀疏也可能造成这一现象。
盘中每 5 秒检查图表更新,分钟接口缓存 20 秒。模型与外部信息按 30 秒检查,新闻宏观还受服务端缓存与来源收录速度影响。 没有当日分钟数据时显示等待状态;上一交易日只能主动选择查看,并明确标为历史。
三、买卖区怎么来的
系统先在一段历史里找出若干候选技术位,再把价格相近的候选聚成一个带宽。候选位来自以下几类:
- 前期摆动低点 / 高点:局部极值,看的是"上次在这里停住过"
- 均线:SMA20 / SMA50 / SMA200
- 布林轨:上轨与下轨(20 日,2 倍标准差)
- 斐波那契回撤位:23.6% / 38.2% / 50% / 61.8%
- 成交量密集区:历史上成交最集中的价格带,也就是换手成本区
- 近期低点 / 近期高点:短周期内的极值
每个候选位带一个自身权重,落在同一价格附近的候选会被合并。合并后的区域宽度约为 ±0.6 × ATR —— ATR 是平均真实波幅,用波动性来定"多近算同一个区域"。 波动大的标的区域自然更宽,这不是精度问题,是刻意留的容错。
区域是观察范围,不是挂单价。价格进入带宽即视为"进入该区域",不需要精确到分。
四、置信度评分
置信度是 0–100 的整数,衡量有多少个互相独立的技术依据指向同一个价位。 它是共振度,不是胜率,也不是"到这里反转的概率"。
| 区间 | 含义 | 怎么用 |
|---|---|---|
| 85–100 | 4 个以上独立依据共振 | 值得重点观察,但仍需价格确认 |
| 70–84 | 3 个依据共振 | 可作为主要参考区 |
| 55–69 | 2 个依据 | 次要参考,单独看不构成理由 |
| < 55 | 单一依据 | 仅记录,不建议据此操作 |
90 分的意思是"依据多且集中",不是"90% 会成立"。一个 90 分的买点被直接击穿是正常现象 —— 技术位失效本身就是信息。
五、价格阶梯
把当前价附近的买点、卖点、三条均线按价格竖排,横向条的长度表示该价位距离当前价的远近, 中间那条竖线是当前价。读法:
- 条越长 = 离现价越远,触及需要的幅度越大
- 标签里的数字是该区域的置信度,不是条长
- 「当前」那一行高亮,用来对齐上下关系
六、位置与分位
| 指标 | 定义 |
|---|---|
| 一年区间位置 | (现价 − 一年最低) ÷ (一年最高 − 一年最低) |
| 近三月位置 | 同上,窗口换成 90 个交易日 |
| 历史分位 | 现价在近三年所有收盘价中的百分位。92.3% = 只有 7.7% 的交易日比现在贵 |
| 偏离均线 | 现价相对 SMA20 / SMA50 / SMA200 的百分比偏离 |
| 均线排列 | 多头排列(短 > 中 > 长)/空头排列/纠缠 |
位置决定的是风险预算,不是方向。高位不等于要跌,只意味着同样的止损距离要付出更大的仓位代价。
七、回测的三种做法
同一段历史、同一笔初始资金,跑三种策略做对照:
| 策略 | 规则 |
|---|---|
| 网格策略 | 15 格,区间 ±15%,底仓 40%,网格锚定首日收盘价,不随行情漂移 |
| 趋势跟随 | SMA20 上穿 SMA50 买入,下穿卖出 |
| 买入持有 | 首日观察,下一开盘含费买入,一直持有 |
成交与成本假设:
- 收盘决定信号,下一有效开盘成交;未成交的信号保留待成交
- T+0 回转、1 股起买、无印花税、无过户费
- 佣金 $0.005/股,每笔最低 $1;卖出另计 SEC 规费 0.002%
- 净值按当日实际持仓逐日结算,不做任何未来仓位倒推
- 年化与夏普为简化估算,未做无风险利率的精细处理
回测里没有模拟历史数据接收延迟。实盘里你在收盘后拿到数据、次日开盘下单, 这个时滞在回测中被理想化了 —— 参数调得越好,越要怀疑是过拟合。
日线无法还原盘中路径,所以盘中触及止损还是收盘确认,回测里只能二选一。本站统一用收盘确认。
八、概率推演
从历史日收益里有放回地抽样,拼出 1000 条 20 个交易日的路径,看终值的分布。输出的四个数:
| 字段 | 含义 |
|---|---|
| 上涨占比 | 1000 条路径里终值高于起点的比例 |
| 中位数 | 50% 分位,比均值更抗极端值 |
| 5%–95% 分位区间 | 1000 次里有 900 次落在这个范围 |
| 90% 区间(价格) | 把上面两个分位换算成价格 |
技术面倾向是另一套东西:若干技术指标各自给出 −1 到 +1 的分数,加权求和后放大到 −100 ~ +100。 −100 极度偏空,+100 极度偏多。绝对值小于 20 时页面不上色 —— 弱信号被染成红色会被读成看多。
蒙特卡洛假设收益分布平稳。它不知道财报日、加息、地缘冲突、退市。 任何突发事件都会让这个分布直接失效,而且它不会自己告诉你失效了。
九、交易工作台
看图与操作
控制条只留一行,其余入口收进二级菜单 —— 一屏全是按钮反而看不清图。
| 入口 | 里面有什么 |
|---|---|
| 周期 | 分时 / 5分 / 15分 / 60分 / 日K / 周K / 月K |
| 常规时段 | 只看 09:30–16:00,隐藏盘前盘后(仅分时可用) |
| 指标 | MA / BOLL 叠加,MACD / RSI / KDJ 副图,信号显示筛选,重置视图 |
| 更多 | 上一交易日分时、异常点原值、数据源与刷新说明 |
常规时段开关按接口返回的时段筛选正式盘数据,隐藏盘前盘后。 正常交易日横轴为美东 09:30–16:00,提前收盘日以来源时段为准;实际根数取决于已取得的数据,不补造缺失分钟。
图表交互:拖动平移 · 滚轮或 + / − 缩放 · 双击复位 · 单击锁定十字光标 ·
← → 逐根查看 · Shift + 方向键半屏平移 ·
PgUp / PgDn 缩放 · Esc 解锁。
来源中的空值既可能是没有成交,也可能是数据缺失。图上用蓝色虚线连接缺口两端的已知价格, 虚线只是阅读辅助,不代表缺口中的实际成交,模型也不会据此补造 K 线。
三种分析模式
| 模式 | 周期 | 适合的持有期 |
|---|---|---|
| 日内 | 15 分钟 | 当日平仓,不留过夜 |
| 波段 | 日 K | 数日到数周 |
| 中长期 | 周 K | 数月 |
三态信号
| 状态 | 触发条件 | 图上标记 |
|---|---|---|
| 预警 | 价格接近触发条件但尚未满足 | 空心菱形 |
| 确认 | 收盘价满足多头条件 | 实心三角(向上) |
| 退出风险 | 收盘价跌破退出条件 | 实心三角(向下) |
信号一律收盘确认,盘中不产生确认信号。所以盘中看到的预警可能当天收盘就消失。 图上标注的都是历史规则信号,不是对未来行情的预测。
十、风险预算与股数
建议股数受四个约束同时限制,取最小值:
- 风险约束:总资金 × 单笔风险% ÷ |入场价 − 止损价|
- 现金约束:可用现金 ÷ 入场价
- 仓位约束:总资金 × 单标的仓位上限% ÷ 入场价
- 流动性约束:信号时成交量 × 1%
成交量未知时不给可交易股数 —— 缺一个约束就不该报一个看起来精确的数字。 跳空开盘可能让实际损失超过预算,止损价不是保证成交价。
十一、新闻与倾向
新闻抓回来后先分两类:直接点名该标的的,和全市场层面的。 只有前者参与倾向统计,后者只作为背景,并且明确标注"与标的无直接关联"。
倾向(偏多 / 中性 / 偏空)由关键词规则判定,不调用大模型。规则简单、可复现, 但也意味着它读不懂反讽、读不懂"跌得漂亮"这种表达,准确率有限。
如果一条直接点名的新闻都没有,页面会明说"没有抓到",而不是拿大盘新闻凑满 12 张卡片。
十二、已知局限
- 日线还原不了盘中路径:日内高低点的先后顺序丢失,止损与止盈谁先触发无法判断
- 没有模拟数据延迟:回测按理想时序成交,实盘做不到
- 没有基本面:ETF 与个股的营收、利润、估值均未接入,技术面结论不包含这些
- 没有交易成本之外的市场冲击:大单滑点未建模
- 盘前盘后成交量可能缺失或为零:以来源实际返回为准,缺失不等于没有成交。可用「常规时段」开关筛选正式盘
- VWAP 为分钟近似值:使用所显示交易日常规时段的分钟收盘价乘成交量累计,不是逐笔成交额计算的精确 VWAP
- 缺失分钟用蓝色虚线连接:虚线仅连接已知端点,不代表缺口中的实际成交,也不参与补造数据或模型计算
- 盘中 5 秒轮询有流量代价:分钟接口缓存 20 秒,实际延迟还取决于数据源;流量随返回数据量变化。页面切到后台会自动暂停
- 新闻倾向是关键词规则:不是语义理解,误判率不低
- 参数存在过拟合风险:回测表现越好的参数,越可能是拟合了这段历史
十三、术语表
- ATR
- 平均真实波幅。衡量波动的绝对值,买卖区宽度取 ±0.6×ATR。
- 共振
- 多个互不相同的技术依据指向同一价位区间。共振数越多,置信度越高。
- 置信度
- 0–100 的共振分,不是胜率,也不是反转概率。
- 布林下轨
- 20 日均线减 2 倍标准差,常作为超卖参考位。
- 斐波那契回撤位
- 一段涨跌的 23.6% / 38.2% / 50% / 61.8% 回撤价位。
- 成交量密集区
- 历史上成交最集中的价格带,可理解为市场平均换手成本。
- 历史分位
- 现价在近三年收盘价中的百分位。
- 夏普比率
- 年化超额收益 ÷ 年化波动率,衡量每单位风险的回报。
- 最大回撤
- 净值从峰值到谷底的最大跌幅,是风险指标,不是收益指标。
- EWMA λ=0.94
- 指数加权移动平均的衰减系数,越近的波动权重越大,用于年化波动率估算。
- 蒙特卡洛重抽样
- 从历史日收益里有放回抽样,拼出 1000 条 20 日路径,看终值分布。
- 分位区间
- 5%–95% 表示 1000 次模拟中有 900 次落在该范围内。
本文档描述的是当前实现。规则会随版本调整,以页面上「数据来源」里的生成时间为准。 ← 返回分析