mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 23:54:21 +08:00
展示层对标专业看盘终端(tick-stock-panel 模式),数据全部来自通达信协议直连: - 市场看板:五大指数实时条(迷你分时)、涨跌统计、四维情绪雷达、 全市场涨跌分布直方图(约 5500 只 22 桶、鼠标跟随浮窗)、涨停雷达、 行业/概念热冷榜(可下钻)、涨幅/跌幅/成交额/换手四联排行榜、异动雷达 - 自选行情:6 位代码即加(symbol-info 自动取名)、SSE 实时全表刷新、 行内迷你分时;SQLite 持久化(watchlist.db,幂等加删) - 个股弹窗:五档盘口 + 1/3/5 日分时 + 日K(MA/BOLL/EMA + MACD/KDJ/RSI 前端本地计算)+ 一键加自选 + 一键全策略寻优 - 板块弹窗:板块分时/日K + 成分股涨跌榜直达个股 - SSE 架构:QuoteStreamer 单循环轮询 fan-out(独立队列 + 背压丢旧、 无订阅休眠、盘中 8s/盘外 60s 降频);前端 pinia 单连接指数退避重连 - fix(codec): SH 000 系大盘指数与 881/885 板块指数报价按 2 位小数解析 (曾缩小 10 倍:科创50 1647.53→164.753);880 统计指数保持 3 位 - fix: 前端批量五档路径 /security/quotes→/quotes、SSE 五档白名单 bid1_vol→bid_vol1、MAC 排行 close 列归一化、日K v-if 撑满、 寻优查看跳转 /→/backtest、FastAPI 0.141 _IncludedRouter 测试适配 新增 27 个单测(streamer/自选/小数位语义),全套 1078 passed
42 lines
2.1 KiB
Python
42 lines
2.1 KiB
Python
"""报价小数位推断(Issue #8 + 看板指数 ×0.1 修复)的语义锁定测试。"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import pytest
|
||
|
||
from easy_tdx.commands.security_quotes import _price_decimal_digits
|
||
from easy_tdx.models.enums import Market
|
||
|
||
|
||
@pytest.mark.parametrize(
|
||
("market", "code", "expected", "why"),
|
||
[
|
||
# ── 大盘指数:点位恒两位小数(科创50 1647.53),原始单位是「分」 ──
|
||
(Market.SH, "000001", 2, "上证指数"),
|
||
(Market.SH, "000300", 2, "沪深300(实测 4611.44,按 3 位曾缩成 461.144)"),
|
||
(Market.SH, "000688", 2, "科创50(实测 1647.53,按 3 位曾缩成 164.753)"),
|
||
(Market.SH, "000905", 2, "中证500"),
|
||
(Market.SH, "000016", 2, "上证50"),
|
||
(Market.SZ, "399001", 2, "深证成指(深市指数走默认分支,一直正确)"),
|
||
(Market.SZ, "399006", 2, "创业板指"),
|
||
# ── 统计指数:字段是计数语义(price×10 还原家数),必须保持 3 位 ──
|
||
(Market.SH, "880005", 3, "全市场行情统计(market_stat 依赖)"),
|
||
(Market.SH, "880006", 3, "涨跌停统计"),
|
||
# ── 板块指数:与大盘指数同口径,两位小数 ──
|
||
(Market.SH, "881106", 2, "行业板块指数(种植业,实测 1039.93)"),
|
||
(Market.SH, "885418", 2, "概念板块指数"),
|
||
# ── 基金/ETF:真实三位小数(Issue #8)──
|
||
(Market.SH, "510300", 3, "沪深300ETF(价格如 4.611)"),
|
||
(Market.SH, "588000", 3, "科创50ETF"),
|
||
(Market.SZ, "159915", 3, "创业板ETF"),
|
||
# ── 股票:两位 ──
|
||
(Market.SH, "600519", 2, "主板"),
|
||
(Market.SH, "688981", 2, "科创板"),
|
||
(Market.SZ, "000001", 2, "深市 000 开头是股票(平安银行),与 SH000001 同码不同义"),
|
||
(Market.SZ, "300750", 2, "创业板"),
|
||
(Market.BJ, "920002", 2, "北交所"),
|
||
],
|
||
)
|
||
def test_price_decimal_digits(market: Market, code: str, expected: int, why: str) -> None:
|
||
assert _price_decimal_digits(market, code) == expected, why
|