Repository navigation
SimpleQuant 1.5.0
下载
首次安装请点击下载(已安装 0.1.1 及以后版本的程序会自动检测并下载更新):
| 系统 | 安装包 |
|---|---|
| Windows 10 / 11(64 位,无需管理员权限) | SimpleQuant-1.5.0-Setup.exe |
| macOS 11 及以上(Apple 芯片:M1 / M2 / M3 / M4…) | SimpleQuant-1.5.0-macos-arm64.dmg |
| Linux(x86_64) | SimpleQuant-1.5.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- 增量包)供程序自动更新使用,无需下载。
更新内容
- 改进:多因子选股(沪深300、中证500、上证50)的基准改用全收益指数(H00300、H00905、H00016,中证指数官网,分红再投资)。之前用的是价格指数,不含分红,而策略收益含分红再投资,超额收益每年约多算一个股息率(沪深300 约 2%~3%)。超额收益会变小:例如沪深300 中按市盈率倒数选 10 只、每月调仓,2022 年起基准由 −11.4% 变为 +0.4%,超额收益由 +69.3% 变为 +57.5%;中证500 同样做法 2020 年起超额收益由 +13.4% 变为 −2.1%。策略本身的收益不变。全收益指数在更新数据时一起下载,已有数据第一次载入时自动补下载;没下载到时退回价格指数并提示。模拟盘资产曲线中已记录的基准一并改为全收益指数。可转债的基准仍为中证转债指数
- 改进:AKShare 数据源的股票与 ETF 复权一律改为等比复权(分红再投资,与 BaoStock、多因子选股一致):股票为东方财富不复权价 × BaoStock 复权因子,ETF 由不复权价与新浪累计分红计算。之前用的是东方财富自带的复权价,属于加法复权(复权价 = 不复权价 + 上市以来的累计分红),每天的涨跌幅被压缩,分红越多越明显:红利 ETF 510880 的单日涨跌只有真实的约三分之二,2015 年起持有收益由 +68.6% 变为 +101.5%;510300 2013 年起由 +99.6% 变为 +109.2%;159915 基本不分红,不变。按百分比的止损、持仓收益率、波动率因此更准确。择时回测的结果会变化。已下载的数据保持不变,回测时提示「加法复权」,在「数据」页勾选「忽略本地已有数据,重新下载」即可更新;取不到复权因子时(如北交所股票)仍用东方财富的复权价并提示。已有的择时模拟盘账户保持原来的加法复权(不改写已有成交),新开的账户用等比复权。导出的 Python 脚本同样改为等比复权。方案文件记录复权算法,导入时与本机数据不同会提示
- 改进:择时回测按真实股价凑 100 股一手(与多因子选股相同)。复权数据下载时附带不复权收盘价(AKShare、BaoStock 日线),下单时按真实股价计算能买几手,成交明细、期末持仓、模拟盘信号显示真实股数和成交价(K 线图上的买卖点仍按复权价)。之前按复权价凑整手,后复权价远高于实际的标的一手所需资金被高估:例如贵州茅台后复权价约为实际的 6.5 倍,30 万元资金按复权价一手要 73 万元、无法买入,现在按实际约 1100 元一股可以买入 200 股;中国银行的收益基本不变,但成交明细由「15000 股 × 6.34 元」变为实际的「27100 股 × 3.51 元」。调仓时持仓与目标相差不足一手不买卖,避免为零头支付最低佣金。较早下载、没有不复权价的数据仍按复权价计算,重新下载即可;已有的模拟盘账户保持原来的方式。导出的 Python 脚本同样按真实股价计算
本软件仅供学习与研究使用,不构成任何投资建议。
Download
For a fresh install: SimpleQuant-1.5.0-Setup.exe (Windows), SimpleQuant-1.5.0-macos-arm64.dmg (macOS, Apple silicon) or SimpleQuant-1.5.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
- Improved: the benchmark for multi-factor selection (CSI 300, CSI 500, SSE 50) is now the total return index (H00300, H00905, H00016 from the CSI website, dividends reinvested). It used to be the price index, which excludes dividends while the strategy reinvests them, so excess return was overstated by roughly the dividend yield each year (about 2–3% for CSI 300). Excess returns get smaller: for example, the top 10 CSI 300 stocks by earnings yield, rebalanced monthly from 2022, now have a benchmark of +0.4% instead of −11.4% and an excess return of +57.5% instead of +69.3%; the same strategy on CSI 500 from 2020 goes from +13.4% to −2.1% excess. Strategy returns themselves are unchanged. The total return index is downloaded with data updates, and fetched automatically the first time existing data is loaded; if it cannot be downloaded, the price index is used with a note. Benchmarks already recorded in paper-trading equity curves are switched to the total return index as well. Convertible bonds still use the CSI Convertible Bond Index
- Improved: stock and ETF adjustment from the AKShare source is now always proportional (dividends reinvested, matching BaoStock and stock selection): stocks are Eastmoney raw prices × BaoStock adjustment factors, and ETFs are rebuilt from raw prices and Sina cumulative dividends. Eastmoney's own adjusted prices, used until now, are additive (adjusted price = raw price + cumulative dividends since listing), which compresses daily percentage moves, more so the more dividends were paid: the dividend ETF 510880 showed only about two thirds of its real daily moves, and buy-and-hold from 2015 goes from +68.6% to +101.5%; 510300 from 2013 goes from +99.6% to +109.2%; 159915 pays almost no dividends and is unchanged. Percentage stop-losses, position returns and volatility are therefore more accurate. Timing backtest results will change. Data already downloaded is kept as it is, with an "additive" note in backtests; re-download it on the Data page (tick "Ignore local data and re-download") to update. When the factors are unavailable (e.g. Beijing Stock Exchange stocks), Eastmoney's adjusted prices are still used, with a note. Existing timing paper-trading accounts keep additive adjustment (their recorded fills are not rewritten); new accounts use proportional adjustment. Exported Python scripts use proportional adjustment as well. Plan files record the adjustment method, and importing one onto data with a different method shows a note
- Improved: timing backtests size 100-share lots at the real share price (as stock selection already does). Adjusted data now comes with the unadjusted close (AKShare and BaoStock daily bars), orders are sized by how many lots the real price allows, and the fill list, final positions and paper-trading signals show real share counts and prices (trade markers on the price chart stay on the adjusted price). Lots used to be sized at the adjusted price, which overstated the cost of a lot when back-adjusted prices are far above the real ones: Kweichow Moutai's back-adjusted price is about 6.5 times the real price, so with 300,000 CNY one lot "cost" 730,000 and nothing was bought, whereas now 200 shares at about 1,100 CNY are bought; Bank of China returns barely change, but the fill list shows the real "27,100 shares × 3.51" instead of "15,000 × 6.34". When rebalancing, differences smaller than one lot are left alone to avoid paying the minimum commission on odd shares. Data downloaded earlier without unadjusted prices still uses the adjusted price until re-downloaded; existing paper-trading accounts keep the old behaviour. Exported Python scripts size lots the same way
This software is for learning and research only and is not investment advice.