文档 / DOCS

使用文档

这份文档按一条完整路径写:装好 → 数据进库 → 跑第一次回测 → 看懂结果。功能名、菜单名、参数名、默认值与文件路径都取自随包程序与工程文档;关键口径标注依据强度,没验证的如实写成边界。

依据强度只有三种说法。

已实测:实际跑过并复现过结果。代码追踪:只读源码与工程文档确认,没有在生产数据上重跑。未实测:写明原因(缺真实样本、缺环境或依赖可选)。

01

安装与启动

INSTALL & START

Windows 下是免安装目录:把整个 RetQuant 文件夹拷到本机,双击里面的 RetQuant.exe 即可运行。不要只单独拷 exe——依赖、内置配置和帮助都在同目录的 _internal 里,缺了会启动失败。

程序不往安装目录写用户数据。行情、策略、运行记录与设置都放在当前用户的文档目录,替换或删除程序目录不会带走它们。

数据目录

默认根目录是 文档\AStockBacktest(即 %USERPROFILE%\Documents\AStockBacktest)。需要换位置时设置环境变量 ASTOCKBT_DATA_DIR,整库换位置可再设 ASTOCKBT_DATA_DB。

backtest.db
旧路径的行情缓存与运行记录;未开启统一库读取时,引擎仍从这里取数。
retquant_data.db
统一数据层:K 线主表 kline_bar、覆盖区间 kline_coverage、标的信息 stock_info、事件 event_data 与迁移标记 data_meta。通达信本地分钟导入写在这里。
minute.db
分钟数据的独立库,与日线缓存分开。
strategies / factors / templates
策略、因子与模板文件。
exports / snapshots / logs
导出物、指数成分快照、日志。
settings.json
本机设置:默认数据源与兜底顺序、复权模式、并发与缓存上限、窗口大小、行情计划任务开关。
training
交易训练记录,每次训练一个 <session_id>.json。

程序目录里另有一份 config\config.json,保存 Tushare token、数据源优先级、列映射与黑名单等全局配置。它不在文档目录里,升级替换程序目录前请单独备份。

升级时什么会被保留:文档目录下的数据、策略、导出与设置不会被覆盖;程序目录被整体替换。升级后首次启动会自动补齐缺失目录并按需迁移表结构,旧库不需要手工重建。

第一次启动

启动后先到「系统 → 数据源」确认主源可用,再到「研究 → 策略与因子 → 数据库」更新行情。具体顺序见下一节。

来源:app/config.py、app/data_store.py、app/pages/registry.py、build.spec、docs/RETQUANT_DATA_LAYER.md(代码追踪)

02

数据:导入与本地库

DATA & STORAGE

数据分两条路进来:在线数据源负责日线,通达信本地盘后数据负责分钟线。两条路都先把数据落到本机,回测与选股只读本地。

在线源与 token

入口是「系统 → 数据源」。默认主源是 akshare;可选的替补源包括 baostock、eastmoney、tencent、sina 等。多个源是替补关系:主源失败才按优先级切下一个,一次任务只采用一个源,不合并、不叠加。

Tushare 需要账号 token:在「系统 → 数据源」的「凭据(需要 token 的数据源)」里粘贴后点「保存」,值写入 config\config.json 的 tushare_token。没填 token 时该源自动跳过,不报错,也不影响其他源。

换源后旧缓存不会自动变成新源数据,需要重新拉取;不同源的复权算法与字段口径不同,跨源比较前必须先统一口径。

通达信本地盘后数据

入口是「研究 → 策略与因子 → 数据库」,向下滚动到「通达信本地分钟数据」区。它只读通达信 PC 版盘后下载的 vipdoc 二进制文件,不联网、不限流,只支持 Windows。

先说清范围:通达信盘后下载只提供 1 分钟和 5 分钟两种文件,因此本地导入目前只处理分钟线(.lc1 / .lc5);15/30/60 分钟由 5 分钟按交易时段聚合,跨午休不合并。日线不走这条路,用上面的在线源或数据库页的行情下载。

选目录

点「选择文件」可多选分钟文件,或直接选 vipdoc 目录建索引。目录必须同时含 sh 与 sz,否则按路径错误拒绝。打开页面会自动识别默认目录(上次路径 → 注册表 → 常见安装名,只做根层浅扫);多个候选会让你确认,不会静默挑一个。

扫描与重建索引

目录模式首次扫描后落索引,之后读索引直连文件;通达信更新文件后点「重建索引」,只重扫变动项。

预览

勾选沪/深与周期后先点「预览」。预览只统计文件数、标的数与时间区间,不写库。

开始增量导入

点「开始增量导入」,后台写入统一库的 kline_bar(source='tdx_local_download'),进度与日志实时显示,可停止。默认只补缺不覆盖;勾「校验并修正」才覆盖同键旧值。

补齐复权因子(可选)

点击导入区下方的「补齐复权因子」后,程序从通达信 gbbq 推导因子,并与 Baostock 官方因子逐日对账(需联网;无网络时保持 1.0)。结果只有三种:推导通过对账、官方因子可用、无因子。无因子时 adj_factor=1.0、adj_ok=0,界面标「仅可用于不复权视图」,不编因子。因子只写 adj_factor,不改 OHLC。

本地没有的文件不会伪造。目录缺失或为空时按提示先在通达信完成盘后数据下载;1 分钟历史通常只有最近数月,5 分钟更长,更早的分钟历史这个模式给不了。

本地库怎么分工

目前有两个库,不要混着理解:

  • backtest.db:旧路径的按源行情缓存与运行记录,默认读取入口。
  • retquant_data.db:统一数据层,表结构见上一节;通达信分钟、事件与覆盖区间写这里。

统一库读取默认关闭,关闭时读取路径与旧版逐位一致。打开方式:「研究 → 策略与因子 → 数据库」页末尾的「统一数据层(retquant_data.db)」区,点「启用统一库读取」。打开后日线/分钟优先读统一库,未命中自动回落 backtest.db / minute.db。换读取入口后新旧结果不可直接比较。

备份

数据库页有「备份 db」按钮;更稳妥的做法是直接复制整个数据目录(程序未运行时)。升级前同时备份 config\config.json。数据缺失时页面显示空白而不是 0——「缺失留空、不插值、不用均值或 0 填充」是固定规则。

来源:app/resources/help/data_sources.md、app/resources/help/modules/database.md、app/ui_minute.py、app/ui_data_layer.py、app/data_store.py、docs/RETQUANT_DATA_LAYER.md、docs/MINUTE_DATA_PYTDX.md(代码追踪)

03

复权与价格口径

PRICE CALIBER

库内只存不复权原始价与复权因子,入库不做复权运算;三种视图在读取层实时换算:

hfq 后复权
hfq = raw × adj_factor。默认视图,收益、净值、年化、回撤与图表用它;新增分红不会改写历史。
qfq 前复权
qfq = raw × adj_factor ÷ 最新 adj_factor。只适合看图、判断当前价格位置;新增分红后整段历史会漂移,同一策略今天与明天跑可能不同。
none 不复权
none = raw。交易所真实挂牌价,撮合、涨跌停、限价与费用仿真用它,并与库内 limit_up / limit_down(交易所原始价)比较。

为什么这样分

收益看的是「持有这段资产赚了多少」,分红送转必须折算进价格序列,否则除权跳空会被当成亏损;撮合看的是「当时真实挂的是什么价」,必须用不复权原始价,否则涨跌停价、最低 5 元佣金门槛与限价校验都会算错。两件事用两套价格数组,各管一段:

撮合 / 费用 / 权益
成交价、涨跌停价、限价、费用、现金、权益估值全部用不复权原始价。
信号与图表
入场/退出/择时/大盘闸门等信号生成,以及图表展示,用复权视图(界面可切)。
开关
pit.adjust.raw_matching 默认 true;置 false 回到旧的单套复权价格口径,结果不可与原始价口径直接比较。
对齐校验
原始价与复权价共享同一 dt 序列,长度、顺序、索引逐日一致;不一致直接抛错,不做静默补齐。

默认复权模式是 hfq,可在「量化回测」第 ① 步与设置页的「复权模式」切换;切换后因子、回测与 K 线跟随同一口径。旧设置里显式保存过 qfq 的不会被静默改写,结果页会提示口径差异。

原始价撮合时,结果页固定提示「净值口径为真实资金,不可与后复权价格空间直接比较」。这不是装饰,是防止把资金曲线直接当成复权价格涨幅来读。

通达信本地数据先按不复权入库(因子 1.0),可在导入页点「补齐复权因子」,用 gbbq 推导并与官方因子对账;推导不通过或无因子时保持 1.0,界面标「仅可用于不复权视图」。在线通达信协议源(mootdx / easy-tdx)只提供不复权日线,因子同样固定 1.0。需要后复权收益时,请换用带因子的在线源。

来源:docs/ADJ_FACTOR_GBBQ.md、docs/ENGINE_V2_DESIGN.md、docs/A_SHARE_RULE_COVERAGE.md §17、app/data_store.py、app/pit_backtest.py、app/app_constants.py(已实测 + 代码追踪)

04

第一次回测

FIRST BACKTEST

入口是「研究 → 执行与实验 → 量化回测」。页面是一个三步向导:① 数据与区间 → ② 策略 → ③ 成本与执行。

① 数据与区间

数据源
默认 akshare。必须与今日选股用的源一致,否则「口径不一致」直接报错,软件不会自动替你切换。
复权
默认 hfq。同样必须与选股上下文一致。
起止日期
默认起点 2020-01-01,终点留空表示到最新交易日。
股票池
在左侧股票池勾选范围,点「更新行情」写本地缓存。池太小或没数据时,回测会没有可交易标的。

② 策略

这一步是唯一必填。到「研究 → 策略与因子 → 策略库 → 策略研究」编辑策略,配置买入条件、择时条件与「排名调仓」(因子权重、权重上限、选前 N、调仓周期),保存后点【发送至回测向导】,草稿会出现在只读预览里。没有配置排名调仓时,引擎走旧版单标的路径,多标的轮动不会按预期工作。

③ 成本与执行

新建回测默认用真实费率口径(precise)+ A 股真实撮合(a_share_true),不改也能跑。字段与默认值如下:

初始资金
默认 100,000 元。
佣金率
默认 0.0003(万 3),买卖双向。
单笔最低佣金
默认 ¥5;按 max(成交额 × 佣金率, 5) 收取。
印花税(仅卖出)
默认 0.0005;按成交日分段,2023-08-28 之前为 0.001,之后为 0.0005。
过户费(双向)
默认 0.00001。
规费(双向)
默认 0.00002;可单独关闭,不并入佣金。
滑点
默认 0.001;按成交金额比例,买入加价、卖出减价。
单票上限 / 成交量参与率
单票上限默认 1.0(不约束);成交量参与率默认 1.0。按整手取整。
冲击成本
模型存在(linear / sqrt),默认 legacy,即冲击系数 0、不计冲击成本。

执行约束的默认开关:涨停禁买、跌停禁卖、停牌禁买、停牌锁仓全部开启;连续停牌锁仓上限默认 10 个交易日,超过后解除锁仓并记日志。全部可在第 ③ 步修改。

点「检查并开始」提交。校验不通过会跳到对应步骤并说明是哪个字段。每次运行生成新的 run_id,追加写入,不覆盖旧记录。

向导里的「收藏本次配置」只记录策略名、资金、费率、滑点等关键参数,不保存日期区间与股票池,不能当作完整复现快照。要复现请用运行历史里的同一条记录。

来源:app/resources/help/modules/backtest.md、app/pages/backtest_wizard.py、app/config.py、app/match_guard.py、app/ledger.py(代码追踪)

05

A 股规则清单

A-SHARE RULES · 18

18 条规则按三档判定:已实现(默认链路可用并有代码)、部分实现(模块具备能力,但默认链路、数据链路或某一侧不生效)、未实现(端到端无可用实现)。按覆盖表的分批落地记录(§12–§17)逐条核对,当前分布为 已实现 12 条 / 部分实现 4 条 / 未实现 2 条。

口径:截至仓库覆盖表最新记录(2026-11-13 批次)· 依据 docs/A_SHARE_RULE_COVERAGE.md(§2.1 审计表 + §12–§17 落地记录)

已实现 12 条

  • 01

    T+1:当天买入不能当天卖出

    决策日收盘出信号、次一交易日开盘成交;01-05 买入、01-09 才卖出,比真实 B+1 开盘可卖保守 1 个交易日。依据:已实测

  • 02

    涨跌停:主板 ±10%

    按代码前缀静态取 10%,无 ST 分支、无生效日期分段;舍入用银行家舍入,极端价位可能与交易所四舍五入差 1 分。依据:代码追踪

  • 03

    涨跌停:创业板 / 科创板 ±20%

    30 / 688 / 689 段统一 20%;未区分创业板 2020-08-24 注册制改革前的 10%。依据:代码追踪

  • 04

    涨跌停:ST ±5%

    引擎已按逐日 st_flag 判档,结果页披露 ST 交易日与缺失天数;生产库缺真实 ST 状态数据时落板块基础档位,并标注「ST 5% 未生效」。依据:代码追踪未实测:缺真实 ST 样本

  • 05

    涨跌停:北交所 ±30%

    92 / 8 / 4 段按 30%;北交所 ST / 风险警示档位无单独分支。依据:代码追踪

  • 06

    停牌:停牌日不能成交

    买入侧默认拦截(成交量 0 → 顺延或放弃),卖出侧由 suspend_lock 锁仓;缺行分支始终 continue,不再按冻结价成交。依据:已实测

  • 07

    最小交易单位(按板块整手)

    主板 / 创业板 100 股整数倍;科创板 200 股起、之后 1 股递增;北交所 100 股起、之后 1 股递增。卖出按持仓全额。依据:已实测

  • 08

    佣金(含最低 5 元)

    precise 为默认费用模型,max(成交额 × 费率, 5.0);legacy 仍保留,但需显式选择。依据:代码追踪

  • 09

    印花税(卖出单边)

    按成交日逐笔分段:2023-08-28 前 0.001,之后 0.0005,仅卖出。依据:代码追踪

  • 13

    信号日 ≠ 成交日(防前视)

    决策日收盘 → 次日开盘;任何「决策日晚于或等于成交日」的调用直接抛错,不靠调用方约定。依据:已实测

  • 14

    新股上市前 5 个交易日无涨跌停

    按日 listed_days ∈ [0,5) 时价格限制置空;缺失日不启用该规则,不做推算。依据:代码追踪未实测:缺真实新股样本

  • 15

    退市整理期档位

    list_status=退市整理 的交易日强制回板块基础档位,覆盖 ST 5%;状态缺失时退化为「数据提前终止推断退市」。依据:代码追踪未实测:缺真实退市样本

部分实现 4 条

  • 10

    过户费(沪深是否都收)

    沪深同费率 0.00001、双向、默认计入;2022-04 前沪深差异分段仍未做。依据:代码追踪

  • 11

    滑点(固定还是动态)

    固定比例、买卖对称,默认 0.001;冲击成本模型存在但默认关闭,成交价未 clamp 到当日高低价或涨跌停价。依据:代码追踪

  • 12

    集合竞价 / 开盘价 / 收盘价成交口径

    只有「次日开盘价 ×(1±滑点)」;集合竞价、收盘价与均价口径未实现,结果页标注「未启用」。依据:已实测

  • 16

    分红再投资 / 复权口径

    现金分红、送转与差别化红利税已入账(持股 >1 年免征、1 个月至 1 年 10%、1 个月以内 20%);分红只记现金,仍无「分红再投资」选项。依据:代码追踪

未实现 2 条

  • 17

    融资融券

    代码库内无融资 / 融券 / 保证金实现;日线回测语义下标记为不支持。依据:代码追踪

  • 18

    科创板 / 创业板盘后固定价格交易

    无 15:05–15:30 盘后固定价格成交模型,需要分钟或订单簿数据。依据:代码追踪

结果页会让规则「说清楚自己有没有生效」

结果页固定披露四块:涨跌停档位来源与覆盖度(含 ST 交易日与缺失天数、新股与退市整理期覆盖天数)、停牌买入拦截次数、非标准整手标的、未启用项。状态列缺失或某日缺失会写入日志与运行元信息,不静默降级。

来源:docs/A_SHARE_RULE_COVERAGE.md(§2.1、§12–§17)、app/match_guard.py、app/engine.py、app/ledger.py、app/config.py

06

结果解读

READ RESULTS

结果页先看哪几块

顶部是统一口径说明(退市处置、复权口径、财务 as-of、成交时序),下面依次是:

  • 指标卡:收益、最大回撤、夏普、换手、交易次数等。不要只看年化,同时看回撤、交易次数与费用占比。
  • 净值曲线:账户权益带完整时间轴与金额轴;可切「回撤曲线」与「K 线买卖点」。下方是逐笔明细。
  • 逐笔明细:买入日期、卖出日期、标的、数量、买入价、卖出价、收益、收益率、持仓天数。已平仓交易列出,期末未平仓持仓只计入权益,不列入此表。
  • 风控日志:停牌、涨跌停、T+1、现金不足等被拦截或顺延的记录,带原因码。
  • 贡献归因:收益按标的与交易拆解,用来判断收益是否集中在少数几笔。
  • 偏差体检:样本内/外对比、滚动稳定性、参数搜索次数、成本敏感性、交易样本量五项,每项只有「通过 / 提示 / 无法判断」三档;缺输入时写「无法判断」并给中文说明,不编数字。它只读,不改任何回测数值。

费用区块会写明本次用的是 precise 还是 legacy、各类费率与分项金额、印花税分段日与规费开关。公司行为区块会列出分红、送转、配股未参与明细与红利税档位。

原始价撮合时,净值是真实资金口径,不能直接与后复权价格涨幅比较;分红默认不再投资,只在开启「分红现金流」时按现金计入。

双跑对比

入口是「研究 → 执行与实验 → 研究工具 → 双跑对比」。它用同一份数据、同一策略、同一组参数分别跑老引擎与新内核,只读对比指标、成交与耗时差异。双跑不替换任何一侧,也不改变生产结果,用来核对迁移前后是否一致。

交易训练

入口是「研究 → 执行与实验 → 交易训练」。这是历史日线上的逐日决策练习,与「模拟交易」的台账模式并存、互不影响。

开始前
初始资金 10,000–100,000,000 元(默认取回测默认值)、起始日期、训练天数 N(窗口需 N+1 根日线)、标的模式(指定 6 位代码 / 完全随机)与随机种子。同参数 + 同种子必定抽到同一标的。
随机筛选
窗口交易日 ≥ N+1;停牌日占比 ≤ 10%;日均成交额 ≥ 500 万元(amount 缺失时用收盘价 × 成交量估算)。全程只读本地数据,不联网补数。
操作
只有三个键:买入(可用现金买尽可能多的整手)、卖出(卖出全部已解冻持仓)、空仓(不做委托,但仍记一次决策)。均为当日收盘决策、次日开盘成交。
不能成交
停牌、一字涨跌停、T+1 冻结、资金不足、顺延超过 5 个交易日等都会写明原因,不静默吞掉。
评分卡
总收益、同期买入持有、超额收益、最大回撤、胜率、盈亏比、换手次数、最大单笔亏损、是否跑赢买入持有。
记录
每次训练写入数据目录的 training\<session_id>.json;「历史训练」可载入复盘,逐日回放;「重跑到底」按记录决策重跑并对比五项结果。

模拟交易与实盘对账

「研究 → 执行与实验 → 模拟交易」是台账模式:推送交易意图、记录待执行与流水。自动撮合尚未接入,净值曲线读取的是最近一次回测的净值,不是模拟账户真实业绩。

「观察 → 实盘对账」把交易意图与真实成交逐笔对照:可手工录入或按模板导入 Excel/CSV,输出成交价差、费用差、漏单与多单。它不连接券商、不修改回测结果。

来源:app/resources/help/modules/backtest.md、training.md、reconcile.md、docs/MATCHING_DECISION_TABLE.md、app/pages/dual_run.py(代码追踪)

07

常见问题

FAQ

选股名单为空或提示「无数据」

先在「量化回测」左侧股票池点「更新行情」,确认缓存日期覆盖今天;再到「系统 → 数据源」对主源做单源测试,全部失败就换一个免费源。股票池太小、条件太严、停牌或全部被排除也会为空,展开「排除原因」列看具体原因。名单非空但全是「不可交易」,多半是停牌、涨跌停或数据缺失,不是软件故障。

提示「口径不一致」

选股要求数据源与复权口径和回测上下文一致。到数据源页与「量化回测」对齐 source / adjust 后重跑;软件不会自动替你切换口径。这是保护,不是故障。

停牌或涨跌停的订单没成交

这是预期行为。停牌日不成交,订单按配置顺延或取消;一字涨停不能买、一字跌停不能卖;顺延超过上限会作废并写原因。回测里的顺延与取消由执行约束开关控制,交易训练里连续 5 个交易日无法成交则作废。

复权因子缺失怎么办

无因子时 adj_factor=1.0、adj_ok=0,该标的只能看不复权视图,界面会标「该标的无复权数据」或「仅可用于不复权视图」。需要后复权收益时,换用带因子的在线源,或按工程文档用 gbbq 推导 / 官方因子回填。软件不编因子。

回测数字与其他软件不同

先对齐五件事再比较:复权视图(hfq / qfq / none)、费用口径(precise 含印花税、过户费、规费与最低佣金;legacy 只收佣金)、滑点(默认 0.001)、成交时序(D 日收盘决策、D+1 开盘成交,T+1 比真实 B+1 保守 1 天)、数据源与股票池(不同源覆盖区间不同,当前名单有幸存者偏差)。任何一项不同,数字就不可直接比较。

回测很快但交易次数为 0

检查策略是否配置了排名调仓(没有配置时走旧版单标的路径)、买卖条件是否同时成立、股票池与数据是否覆盖区间,以及是否被 T+1、涨跌停、停牌或现金约束全部挡住。看风控日志最快。

Tushare 需要什么

只需要账号 token,填在「系统 → 数据源 → 凭据」。没填时该源自动跳过,不影响其他源;行情、选股、回测失败与网络有关时,先做单源测试,缓存命中时不会联网。

数据缺失为什么显示空白而不是 0

平台规则是「缺失留空、不插值、不用均值或 0 填充」。空白代表确实没有数据,不代表数值为零。

来源:app/resources/help/faq.md、app/resources/help/concepts/rules.md、app/resources/help/limitations.md、docs/A_SHARE_RULE_COVERAGE.md

08

边界与免责

LIMITS & DISCLAIMER

下面这些是当前版本明确的边界。已实现的功能也会标注依赖条件;没验证的不写成「已支持」。

不支持

融资融券 / 配资券

无杠杆、无融券、无保证金模型,两融类策略与本品结果不可直接比较。

科创板 / 创业板盘后固定价格交易

日线语义下无 15:05–15:30 盘后成交模型,尾盘类策略存在偏差。

集合竞价撮合

成交口径只有「次日开盘价」,无集合竞价、收盘价或均价可选,结果页标注「未启用」。

券商通道与自动下单

软件不包含券商 API、自动下单或任何真实交易通道;模拟交易页也不会自动撮合。

宽基历史成分自动抓取

公开渠道未找到稳定可抓取的宽基历史公告接口,已提供手动 CSV 导入;上证 50 / 沪深 300 已内置逐期成分,其余池需手动导入。

简化口径与影响方向

红利税在除权日按毛分红计提

制度上为卖出时补缴,软件在除权日计提;金额方向一致,但现金流时点提前。

配股默认不参与

run_meta 与结果页写明「配股未参与」;持有期间配股会带来权益偏差。

冲击成本默认 0

未计冲击成本时,高换手、大资金策略的实际收益可能更低,回测偏高。

分红默认不再投资

分红只记现金;长期持有与分红再投资场景的收益可能偏低。

停牌期间按最后价估值

长期停牌按最后价估值,净值可能虚高;结果页会标注 stale 标的数。

日线级撮合

不是逐笔盘口;盘口冲击、尾盘集合竞价与日内路径无法真实刻画。

幸存者偏差

没有历史成分快照时沿用当前名单,已退市标的缺失,收益可能被高估;界面与报告会提示。

未实测(写明原因)

真实联网取数

多源替补与单源测试代码可用,但生产环境下所有免费源的连通性、限流与字段变化未逐一长期验证(未实测:依赖外部网络与第三方接口)。

真实大模型问答

AI 实验室依赖为可选项,当前安装包未内置 XGBoost;真实大模型问答/训练链路未端到端验证(未实测:依赖可选组件与外部模型)。

分钟线与集合竞价端到端

通达信本地分钟数据的目录识别、解析与入库可用;分钟级回测与集合竞价撮合未做端到端验证(未实测:引擎按日线语义撮合)。

真实 ST / 新股 / 退市样本

规则分支与状态列链路已接入,但生产库缺真实状态数据,未用真实样本验证(未实测:缺 stock_status_daily 等真实数据)。

非管理员账户

数据写在当前用户文档目录,受限账户下的目录权限与计划任务未验证(未实测:缺受限账户环境)。

代码签名与干净虚拟机冒烟

当前未做代码签名,也未在干净虚拟机上完成安装冒烟(未实测:发布流程未覆盖)。

免责声明

本软件是量化研究与回测工具,仅供个人学习研究与复盘训练,不构成任何投资建议,不对接任何券商交易渠道。历史回测无法预测未来,模拟记录不等于真实成交;数据可能缺失、延迟或存在口径差异,使用者需自行承担投资决策与交易风险。全部数据保存在本机,不上传云端。通达信本地数据版权归通达信及交易所所有,仅限本人个人研究使用,禁止二次分发、转售。

来源:app/resources/help/limitations.md、app/app_constants.py、docs/A_SHARE_RULE_COVERAGE.md(§3.3、§12.6、§15.5)、docs/RETQUANT_DATA_LAYER.md