Skip to content

SimpleQuant 1.6.0

Latest

Choose a tag to compare

@AllenPan-Git AllenPan-Git released this 22 Oct 06:10

下载

首次安装请点击下载(已安装 0.1.1 及以后版本的程序会自动检测并下载更新):

系统 安装包
Windows 10 / 11(64 位,无需管理员权限) SimpleQuant-1.6.0-Setup.exe
macOS 11 及以上(Apple 芯片:M1 / M2 / M3 / M4…) SimpleQuant-1.6.0-macos-arm64.dmg
Linux(x86_64) SimpleQuant-1.6.0-linux-x86_64.tar.gz

Intel 芯片的 Mac 最后支持的版本是 0.2.5,已安装的可以继续使用,此后的版本不再提供。

国内下载慢可以用 123 云盘:https://1829763294.share.123pan.cn/123pan/mv2ejv-wbhtA?pwd=ZfDO

macOS 版未经 Apple 公证,第一次打开会被拦下:请在「系统设置 → 隐私与安全性」中点「仍要打开」,或在终端运行 xattr -dr com.apple.quarantine /Applications/SimpleQuant.app。

下方「Assets」中的其余文件(manifest、-from- 增量包)供程序自动更新使用,无需下载。

更新内容

  • 新增:定投。回测页「资金与交易成本」中可填写每期追加金额(每月或每周第一个交易日到账,初始资金视为第一期),并新增两个策略模板:「定期定额定投」每期资金到账即买入;「估值定投」按市盈率历史百分位调整每期投入(默认低于 30% 投 2 倍、高于 70% 投 0.5 倍,少投的资金留作储备、低估时使用,储备按设定的年化收益计息,默认 2%,相当于放在货币基金)。设置追加金额后,总收益按累计投入计算,并显示资金加权年化收益率(XIRR)、累计投入与时间加权收益率;基准为同样的资金、同样的日期买入持有;最大回撤、波动率与夏普比率按扣除追加资金后的净值计算,追加的资金不会被当成收益或掩盖亏损。资金曲线增加累计投入线。参数优化、滚动优化(「延续持仓」方式)、单标的模拟账户与导出 Python 脚本也支持追加资金;模拟盘在追加日的前一天提醒转入资金,收益按累计投入计算;AI 解读按定投的口径(累计投入、XIRR)评价。初始资金最低可填 1000 元(原为 1 万元),方便小额起步的定投。暂不支持:多因子选股、选股与组合模拟账户、导出到聚宽 / 掘金 / QMT。用到定投的方案文件,旧版软件导入时会提示更新
  • 新增:多因子选股的股票池「全 A 股」:沪深两市全部 A 股,按上市、退市日期每月确定当时在市的股票(含此后退市的,避免幸存者偏差);交易日历用上证指数,基准为中证全指全收益指数(H00985)。数据量较大(2020 年起约 5400 只),受 BaoStock 每天 5 万次请求的限制,首次下载日线、财务与分红约需 3 天:每天下载到上限自动停止,次日再点下载从断点继续。暂不支持导出到聚宽 / 掘金 / QMT 在平台上选股,可用「按名单调仓」导出
  • 改进:多因子选股处理股票退市(所有股票池)。最后交易日事先可知的(退市整理期结束、吸收合并停牌换股,即最后交易日距退市日不超过 15 天),持有的在最后一个交易日开盘卖出;停牌后才宣布退市的(交易类退市没有整理期)当时无法预知,不提前卖出。跌停或停牌卖不出、一直持有到退市日的,退市前为 ST、股价低于 1 元或简称带「退」的(困境退市)按 0 计价,其余(吸收合并、主动退市)按最后价格折为现金。之前退市股按最后价格一直挂在持仓里卖不出,资金无法再投入,困境退市的损失也被低估。持有过退市股的回测结果会变化:例如中证500 中市值最小的 10 只、每月调仓,2021 年起由 +0.6% 变为 −5.0%(持有过的 *ST中天、鹏都农牧停牌后退市,按 0 计价);沪深300、中证500 按市盈率倒数或低波动选股的结果不变
  • 改进:选股数据(BaoStock)改为逐只下载,并按天统计请求次数。BaoStock 规定每天请求不超过 5 万次、不能多个连接同时访问,超过后 IP 会被暂停访问(当年第一次 6 小时,之后按次数累加)。当天请求接近上限时下载自动停止,已下载的数据保留,次日再次下载从断点继续;IP 已被暂停时立即停止并说明原因,不再反复重试。选股页的「并行连接数」设置随之去掉
  • 修复:多因子选股按 IC / ICIR 加权、回看期超过 252 个交易日时,回测开始前只多取约 400 天数据,开头一段的权重实际用到的历史比设定短(如设为 504 天,第一年的调仓日只用到约 250 天)。现在按回看期多取数据;本地数据不够早时,在结果中提示受影响的调仓日数。回看期不超过 252 天的结果不变;导入的方案文件仍按其中记录的数据起点回测

本软件仅供学习与研究使用,不构成任何投资建议。


Download

For a fresh install: SimpleQuant-1.6.0-Setup.exe (Windows), SimpleQuant-1.6.0-macos-arm64.dmg (macOS, Apple silicon) or SimpleQuant-1.6.0-linux-x86_64.tar.gz (Linux). Intel Macs are supported up to 0.2.5. Installed copies (0.1.1 or later) update themselves. The macOS app is not notarized: on first launch, allow it under System Settings → Privacy & Security → Open Anyway. The other assets are used by the auto-updater.

Changes

  • New: dollar-cost averaging. On the backtest page, Capital & trading costs now takes a contribution per period (added on the first trading day of each month or week; the initial capital counts as the first installment), with two new templates: "Dollar-cost averaging" buys whenever a contribution arrives, and "Valuation-based DCA" scales each contribution by the P/E percentile (by default 2x below 30% and 0.5x above 70%; money held back is kept as a reserve for cheap periods and earns a set annual rate, 2% by default, like a money market fund). With contributions, total return is measured against the total invested, and the money-weighted annual return (XIRR), total invested and time-weighted return are shown; the benchmark invests the same amounts on the same dates and holds; maximum drawdown, volatility and Sharpe ratio use the unit value with contributions removed, so new money is neither counted as gains nor hides losses. The equity chart adds a total-invested line. Parameter optimization, walk-forward optimization (with "Keep positions"), single-asset paper accounts and exported Python scripts also support contributions; paper trading reminds you to transfer the money the day before and measures returns against the total invested; AI explanations judge DCA results by total invested and XIRR. Initial capital can now be as low as 1,000 (was 10,000), for DCA plans that start small. Not yet supported: multi-factor selection, selection and portfolio paper accounts, and exporting to JoinQuant / MyQuant / QMT. Older versions ask to be updated when importing a plan file that uses DCA
  • New: an "All A-shares" universe for multi-factor selection: every A-share on the Shanghai and Shenzhen exchanges, with membership set monthly from listing and delisting dates (stocks delisted later are included, avoiding survivorship bias); the trading calendar is the SSE Composite and the benchmark is the CSI All Share total return index (H00985). The data is large (about 5,400 stocks from 2020); with BaoStock's limit of 50,000 requests a day, the first download of daily bars, financials and dividends takes about 3 days: it stops at the limit each day and resumes from there when you download again the next day. Selecting on JoinQuant / MyQuant / QMT is not supported for it yet; use the "follow picks" export
  • Improved: multi-factor selection now handles delistings (all universes). When the last trading day is known in advance (the end of a delisting period, or a merger's share-swap suspension, i.e. delisting within 15 days of the last trade), a held stock is sold at the open of its last trading day; stocks delisted only after a suspension (trading-based delistings without a delisting period) could not have been foreseen and are not sold early. If it is limit-down or suspended and still held on the delisting date, it is written off when it was ST, below 1 yuan or renamed with 退 beforehand (distressed delisting), and otherwise (mergers, voluntary delistings) settled in cash at the last price. Previously a delisted stock stayed in the portfolio at its last price, unsellable, locking up the cash and understating losses from distressed delistings. Backtests that held delisted stocks will change: for example, the 10 smallest CSI 500 stocks rebalanced monthly from 2021 go from +0.6% to −5.0% (*ST Zhongtian and Pengdu Agriculture were delisted after suspensions and are written off); CSI 300 and CSI 500 earnings-yield and low-volatility selections are unchanged
  • Improved: stock-selection data (BaoStock) is now downloaded one stock at a time, with requests counted per day. BaoStock allows 50,000 requests a day and no concurrent connections, and suspends the IP beyond that (6 hours the first time in a year, longer after that). The download stops when today's requests near the limit, keeping what was downloaded, and resumes from there the next day; if the IP is already suspended it stops at once with an explanation instead of retrying. The "parallel connections" setting on the selection page is removed
  • Fix: with IC / ICIR weighting and a lookback longer than 252 trading days, only about 400 days of data before the start were loaded, so early rebalances used less history than configured (with 504 days, the first year used only about 250). Enough data for the lookback is now loaded; when local data does not reach back far enough, the result notes how many rebalance dates are affected. Results with lookbacks up to 252 days are unchanged; imported plan files still use the data start they recorded

This software is for learning and research only and is not investment advice.