[22] 技术栈选型
2026-03-21
执行体系 · 共 12 篇
tradeSys #22 技术栈选型报告
研究时间: 2026-03-21
研究员: 娃彩
实测环境: macOS x86_64, Python 3.12.2, 16GB RAM
性质: 全链路实测报告,所有推荐均经代码验证
TL;DR — 推荐技术栈组合
| 层级 | 推荐方案 | 理由 | 成本 |
|---|---|---|---|
| 数据源 | Stooq (ETF/美股) + FRED (宏观) + CCXT (Crypto) | 全部免费,实测稳定,Stooq 数据质量优秀 | $0 |
| 数据存储 | DuckDB + Parquet 文件 | DuckDB 写入快 7x、查询快 4x vs SQLite;Parquet 便于备份/共享 | $0 |
| 回测引擎 | vectorbt | 已验证,代码简洁,支持向量化计算和参数扫描 | $0 |
| 执行引擎 | IBKR (美股/期货) + Binance/Bybit (Crypto) | IBKR 亚太支持好,Binance 流动性最佳 | 佣金 ~0.1% |
| 调度 | cron (Mac 本地) + APScheduler (Python 内) | 简单可靠,无需额外服务 | $0 |
| 监控告警 | 飞书 webhook (已有) + 本地日志 | 与老板现有工具链一致 | $0 |
| 部署 | 本地 Mac 起步 → VPS 容灾 | 日线策略不需要 24/7,Mac 足够可靠 | $0 起步 |
首年总成本: $0 (数据 + 软件) + ~$50-100 (交易佣金,$5K 本金)
1. 数据管道
1.1 数据源实测对比
| 数据源 | 类型 | 状态 | 实测结果 | 推荐度 |
|---|---|---|---|---|
| yfinance | ETF/美股 | ⚠️ 限流 | 测试时被限速 “Too Many Requests” | 🟡 备用 |
| Stooq | ETF/美股 | ✅ 正常 | DBMF/IAUM/BIL/SPY/GLD 全部可下载,806 条/ETF (3 年) | 🟢 首选 |
| FRED | 宏观数据 | ✅ 正常 | VIX/10Y 国债/Fed Funds 免 API key 可用 | 🟢 首选 |
| Alpha Vantage | ETF/美股 | ⚠️ 限流 | Demo key 只返回 IBM,正式 key 25 次/天 | 🟡 备用 |
| CCXT/Binance | Crypto | ⚠️ 本地网络限制 | API 不可达 (可能 IP 被限),但库本身可用 | 🟢 首选 (需好网络) |
实测代码: self/scratch/tech-stack-eval/test_data_sources.py
1.2 Stooq 数据质量验证
✅ DBMF.US: 806 条, 最新 $29.81, 耗时 1.54s
✅ IAUM.US: 806 条, 最新 $44.86, 耗时 1.73s
✅ BIL.US: 806 条, 最新 $91.57, 耗时 1.59s
✅ GLD.US: 806 条, 最新 $413.38, 耗时 1.64s
✅ SPY.US: 806 条, 最新 $648.57, 耗时 1.78s
关键发现:
- Stooq 数据包含 Open/High/Low/Close/Volume 完整 OHLCV
- 数据延迟:T+1 (当日收盘价次日更新)
- 历史深度:大部分 ETF 从成立日起
- 无需 API key,完全免费
1.3 FRED 宏观数据验证
✅ VIX (FRED): 1622 条, 最新 24.06 (2026-03-19), 耗时 0.45s
✅ 10Y Treasury (FRED): 1622 条, 最新 4.25% (2026-03-19), 耗时 0.48s
✅ Fed Funds Rate (FRED): 74 条, 最新 3.64% (2026-02-01), 耗时 0.50s
关键发现:
- 免 API key 可用 (pandas_datareader 内置)
- VIX/国债收益率等关键指标实时更新
- 部分月度数据有 1-2 个月延迟 (如 Fed Funds)
1.4 数据存储方案 Benchmark
测试数据:12,600 行 × 7 列 (5 个 ETF × 2520 天 仿真数据)
| 方案 | 写入时间 | 文件大小 | 全量读取 | 过滤查询 (SPY) | 100 次查询 | 聚合查询 |
|---|---|---|---|---|---|---|
| Parquet | 197ms | 591 KB | 319ms | 3.4ms | 270ms | 2.3ms (via DuckDB) |
| DuckDB | 9.4ms ✅ | 12 KB ✅ | 3.2ms ✅ | 2.2ms ✅ | 147ms ✅ | 2.0ms ✅ |
| SQLite | 66.5ms | 1148 KB | 40.5ms | 7.6ms | 693ms | ~10ms |
实测代码: self/scratch/tech-stack-eval/test_storage_and_more.py
推荐架构:
原始数据 (Stooq CSV) → DuckDB (主存储) → Parquet (备份/导出)
↓
直接查询 Parquet (零拷贝)
为什么 DuckDB 优于 SQLite:
- 写入快 7 倍 (9.4ms vs 66.5ms) — DuckDB 是列式存储,批量写入优化好
- 文件小 95 倍 (12KB vs 1148KB) — 列式压缩效率高
- 查询快 3-4 倍 — 分析型查询是 DuckDB 的主场
- 零拷贝读 Parquet — DuckDB 可以直接
SELECT * FROM 'data.parquet',无需导入
1.5 数据管道推荐架构
# 推荐的数据采集流程 (每日收盘后运行)
import pandas as pd
from pandas_datareader import data as pdr
import duckdb
# 1. 从 Stooq 下载 ETF 数据
etfs = {'DBMF': 'DBMF.US', 'IAUM': 'IAUM.US', 'BIL': 'BIL.US', 'SPY': 'SPY.US', 'GLD': 'GLD.US'}
conn = duckdb.connect('tradesys.duckdb')
for name, ticker in etfs.items():
df = pdr.DataReader(ticker, 'stooq', start='2020-01-01').sort_index()
df['ticker'] = name
df.reset_index(inplace=True) # date 列
conn.execute(f"INSERT INTO ohlcv SELECT * FROM df") # 追加新数据
# 2. 从 FRED 下载宏观数据
vix = pdr.DataReader('VIXCLS', 'fred', start='2020-01-01')
dgs10 = pdr.DataReader('DGS10', 'fred', start='2020-01-01')
# ... 存入 macro 表
# 3. 导出 Parquet 备份
conn.execute("COPY (SELECT * FROM ohlcv) TO 'backup/ohlcv.parquet'")
2. 回测引擎
2.1 vectorbt 实测结果 (基于已有评测深化)
已有结论 (tradeSys-framework-eval.md):
- vectorbt 代码简洁 (~12 行核心代码)
- 回测速度快 (4.12s vs bt 8.54s)
- 输出指标丰富 (25+ 指标)
本次深化测试: Plan E3-ETF 多资产组合回测 (真实数据 2021-07 ~ 2026-03)
2.2 Plan E3-ETF 回测 Prototype
组合: DBMF 45% + IAUM 15% + BIL 40% (BIL 代理 sUSDe+BIL)
基准: SPY
数据: 真实 ETF 价格 (Stooq)
回测期: 2021-07-02 ~ 2026-03-20 (1184 交易日, ~4.7 年)
| 指标 | Plan E3-ETF | SPY | DBMF (100%) |
|---|---|---|---|
| 总收益 | +25.9% | +57.8% | +17.4% |
| CAGR | 5.03% | 10.20% | 3.48% |
| 年化波动率 | 6.7% | 17.3% | 13.1% |
| Sharpe | 0.747 | 0.590 | 0.266 |
| Sortino | 0.948 | 0.815 | 0.331 |
| 最大回撤 | -6.6% | -24.5% | -23.7% |
| Calmar | 0.761 | 0.417 | 0.147 |
| 月胜率 | 58% | 63% | 56% |
关键发现:
- Plan E3 的 Sharpe 0.747 显著优于 SPY 的 0.590 — 风险调整后收益更好
- 最大回撤仅 -6.6% vs SPY -24.5% — 危机期间表现优异 (2022 年 +9.9% vs SPY -18.2%)
- 与 SPY 相关性仅 0.114 — 真正的分散化
- 2022 年 +9.9% — 在股债双杀年份正收益,验证"危机 alpha"
2.3 趋势信号增强版
在静态权重基础上增加 200 日 SMA 过滤:
- DBMF/IAUM: 价格 > SMA200 → 全仓,否则 → 半仓转 BIL
| 指标 | E3 静态 | E3+趋势过滤 | 提升 |
|---|---|---|---|
| CAGR | 5.03% | 6.87% | +36% |
| Sharpe | 0.747 | 1.085 | +45% |
| MaxDD | -6.6% | -4.7% | -29% |
| Calmar | 0.761 | 1.472 | +93% |
结论: 简单的趋势过滤可以显著提升风险调整后收益,且实现成本极低。
2.4 交易成本影响分析
月度再平衡,每次交易 3 个 ETF:
| 单边成本 | 年化拖累 | 调整后 CAGR |
|---|---|---|
| 0 bp (理想) | 0.00% | 5.03% |
| 5 bp (ETF 买卖价差) | 3.60% | 1.43% |
| 10 bp | 7.20% | -2.17% |
| 20 bp | 14.40% | -9.37% |
关键洞察:
- 5bp 成本假设下 (典型 ETF 买卖价差),年化拖累 3.6%
- 季度再平衡 可将成本降至 1/4 (0.9% 年化拖累)
- 建议: 季度再平衡 + 阈值再平衡 (偏离>5% 才调仓)
2.5 回测引擎推荐
继续推荐 vectorbt,理由:
- 已验证可跑通完整多资产组合回测
- 代码简洁,易于扩展 (趋势过滤只需几行)
- 支持参数扫描 (可快速测试不同再平衡频率)
- 与 pandas 生态无缝集成
实测代码: self/scratch/tech-stack-eval/test_backtest_prototype.py
3. 执行引擎
3.1 券商 API 评测
| 券商 | API 库 | 亚太支持 | ETF 佣金 | 最低入金 | 纸盘 | 实测状态 |
|---|---|---|---|---|---|---|
| Interactive Brokers (IBKR) | ib_insync | ✅ 优秀 | $0 (ETF) | $0 | ✅ | ❌ 需安装库 |
| Alpaca | alpaca-py | ⚠️ 美国为主 | $0 | $0 | ✅ | ✅ API 可达 (401 需 key) |
| Webull | webull (非官方) | ⚠️ 一般 | $0 | $0 | ❌ | — |
| Binance | CCXT | ✅ 优秀 | 0.02-0.1% | ~$10 | ⚠️ 测试网络 | ❌ 本地 IP 被限 |
| Bybit | CCXT | ✅ 优秀 | 0.02% | ~$10 | ✅ | — |
实测:
--- Alpaca API ---
✅ Alpaca API 可达 (HTTP 401, 需要有效 key)
--- CCXT ---
✅ CCXT v4.5.4: 105 交易所
相关:binance, binanceusdm, bitget, bybit, kraken, okx
3.2 推荐执行方案
美股/ETF 执行:IBKR
理由:
- 亚太支持最好 — 香港账户可开,支持中国居民
- ETF 零佣金 — IBKR Lite 计划
- 品种最全 — 支持美股/ETF/期货/期权
- API 成熟 — ib_insync 库稳定,文档完善
- 纸盘可用 — 先用 TWS 纸盘测试 3 个月
成本:
- ETF 佣金: $0
- 美股佣金: $0 (IBKR Lite) 或 $0.0035/股 (IBKR Pro)
- 期货佣金: ~$0.85/合约 (micro E-mini)
- 数据费: $0 (延迟 15 分钟) 或 $1.5/月 (实时)
安装:
pip install ib_insync
# 需要运行 TWS 或 IB Gateway
Crypto 执行:Binance/Bybit via CCXT
理由:
- 流动性最佳 — Binance 占现货 60%+ 份额
- Funding Rate 数据完整 — 每 8 小时更新
- CCXT 统一接口 — 切换交易所成本低
- 纸盘支持 — Bybit 提供测试网
成本:
- 现货佣金: 0.02-0.1% (BNB 抵扣后更低)
- 永续合约: Maker -0.01% (返佣) / Taker 0.02%
- 提现费: 按链收取 (BTC ~0.0001 BTC)
注意: 中国大陆 IP 可能受限,需要合规网络环境。
3.3 订单类型和执行逻辑
推荐订单类型:
| 场景 | 订单类型 | 理由 |
|---|---|---|
| ETF 买入 | Limit (限价单) | 避免滑点,设置限价 = 市价 × 1.001 |
| ETF 卖出 | Limit (限价单) | 同上,限价 = 市价 × 0.999 |
| 止损 | Stop-Limit (止损限价) | 避免市价止损单被猎杀 |
| Crypto 现货 | Limit | 同上 |
| Crypto 永续 | Limit + Post-Only | 确保 maker 返佣 |
执行时间:
- ETF: 美东时间 10:00-10:30 (开盘后 30 分钟,流动性好)
- Crypto: 任意时间 (24/7),避开 UTC 0:00 结算高峰
再平衡逻辑 (季度):
# 每季度第一个交易日执行
target_weights = {'DBMF': 0.45, 'IAUM': 0.15, 'BIL': 0.40}
current_weights = get_current_weights() # 从账户计算
for asset, target in target_weights.items():
current = current_weights[asset]
if abs(current - target) > 0.05: # 偏离>5% 才调仓
rebalance(asset, current, target)
4. 调度与监控
4.1 调度方案对比
| 方案 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| cron | 系统原生,简单可靠 | 错误处理弱 | 🟢 首选 |
| APScheduler | Python 内,灵活 | 需常驻进程 | 🟡 备选 |
| launchd (macOS) | 系统级,功能强 | 配置复杂 | 🟡 备选 |
| GitHub Actions | 免费云调度 | 需联网,有速率限制 | 🟡 备选 |
| 云函数 (AWS Lambda) | 真正 24/7 | 冷启动,成本 | 🔴 过度 |
系统实测:
Current crontab:
0 3 * * * /Users/mac/workspace/scripts/git-backup.sh
LaunchAgents: 10 items (含 openclaw gateway)
Docker: version 28.2.2
schedule library: available
4.2 推荐调度架构
日线策略特点:
- 每日收盘后运行一次 (~美东 16:00 = 北京时间次日 04:00)
- 不需要实时数据
- 允许偶尔失败 (第二天重试即可)
推荐方案: cron + Python 脚本
# crontab -e
# 每个交易日北京时间 05:00 运行 (美股收盘后 1 小时)
0 5 * * 1-5 /Users/mac/workspace/wacai/scripts/tradesys_daily.sh >> /tmp/tradesys.log 2>&1
# scripts/tradesys_daily.py
#!/usr/bin/env python3
import sys
import logging
from datetime import datetime
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(levelname)s: %(message)s',
handlers=[
logging.FileHandler('/tmp/tradesys.log'),
logging.StreamHandler(sys.stdout)
]
)
def main():
logging.info("=== tradeSys 每日任务开始 ===")
# 1. 下载最新数据
logging.info("1. 下载 ETF 数据 (Stooq)...")
# download_data()
# 2. 计算信号
logging.info("2. 计算趋势信号...")
# calculate_signals()
# 3. 检查再平衡
logging.info("3. 检查再平衡条件...")
# check_rebalance()
# 4. 发送日报
logging.info("4. 发送日报...")
# send_daily_report()
logging.info("=== tradeSys 每日任务完成 ===")
if __name__ == '__main__':
main()
4.3 监控告警方案
| 事件类型 | 告警级别 | 渠道 | 触发条件 |
|---|---|---|---|
| 数据下载失败 | 🟡 警告 | 飞书 | 连续 2 天失败 |
| 信号计算错误 | 🔴 严重 | 飞书 + 邮件 | 立即 |
| 再平衡执行 | 🟢 通知 | 飞书 | 每次执行后 |
| 最大回撤超限 | 🔴 严重 | 飞书 + 邮件 | 回撤 > 10% |
| 日亏损超限 | 🔴 严重 | 飞书 | 当日 P&L < -2% |
飞书 webhook 集成:
import requests
def send_feishu_alert(title, content, level='info'):
webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/xxx"
color = {'info': 'blue', 'warning': 'orange', 'error': 'red'}[level]
payload = {
"msg_type": "interactive",
"card": {
"header": {
"title": {"tag": "plain_text", "content": title},
"template": color
},
"elements": [
{"tag": "markdown", "content": content}
]
}
}
requests.post(webhook_url, json=payload)
4.4 日志和审计追踪
日志结构:
/var/log/tradesys/
├── tradesys.log # 主日志 (轮转,保留 90 天)
├── signals.log # 信号生成日志
├── orders.log # 订单执行日志
├── daily/
│ ├── 2026-03-21.json # 每日快照 (持仓/信号/P&L)
│ └── ...
└── monthly/
├── 2026-03.json # 月度报告
└── ...
审计要求:
- 所有订单记录:时间/价格/数量/费用/滑点
- 信号生成记录:输入数据/计算逻辑/输出信号
- 再平衡决策:调仓原因/目标权重/实际执行
5. 部署方案
5.1 部署选项对比
| 方案 | 成本 | 可靠性 | 维护成本 | 推荐场景 |
|---|---|---|---|---|
| 本地 Mac | $0 | 🟡 中 (依赖家用网络/电力) | 低 | 起步阶段 |
| VPS (AWS/GCP) | $5-20/月 | 🟢 高 | 中 | 规模化后 |
| VPS (Contabo/Hetzner) | $5/月 | 🟢 高 | 中 | 成本敏感 |
| 云函数 (Lambda) | $0.1-1/月 | 🟢 高 | 高 (冷启动) | 事件驱动 |
| 混合 (Mac+VPS 容灾) | $5/月 | 🟢 高 | 中 | 推荐 |
系统资源需求 (实测):
System: Darwin x86_64
Python: 3.12.2
CPU cores: 8
RAM: 16.0 GB
Disk: 58.5 GB free
tradeSys 实际需求:
- CPU: 单核足够 (日线策略计算量小)
- RAM: <1GB (DuckDB + pandas)
- Disk: ~1GB (5 年 ETF 日线数据)
- 网络: 每日下载 ~1MB 数据
5.2 推荐部署架构
Phase 1 (0-6 个月): 本地 Mac
MacBook Pro (本地)
├── DuckDB 数据库
├── vectorbt 回测
├── cron 调度 (每日 05:00)
├── 飞书 webhook 告警
└── 日志本地存储
成本: $0
风险: 停电/断网/电脑故障 → 错过当日信号
缓解: 手机告警,手动补执行
Phase 2 (6 个月+): 混合部署
MacBook Pro (主) VPS (容灾,$5/月)
├── 日常运行 ├── 心跳监控 (每 5 分钟)
├── 回测研究 ├── 故障时接管
└── 告警通知 └── 数据备份
推荐 VPS:
- Contabo: €4.5/月 (4 vCPU, 8GB RAM, 50GB SSD)
- Hetzner: €5/月 (2 vCPU, 4GB RAM, 40GB SSD)
- AWS Lightsail: $5/月 (1 vCPU, 2GB RAM, 40GB SSD)
5.3 成本估算
一次性成本
| 项目 | 成本 |
|---|---|
| 电脑 (已有) | $0 |
| 学习材料 | $0 (网上免费资源) |
| 总计 | $0 |
月度成本 (Phase 1)
| 项目 | 成本 |
|---|---|
| 数据源 | $0 (Stooq+FRED+CCXT) |
| 券商佣金 | ~$5-10 ($5K 本金,季度再平衡) |
| VPS | $0 (本地运行) |
| 总计 | ~$5-10/月 |
月度成本 (Phase 2)
| 项目 | 成本 |
|---|---|
| 数据源 | $0 (起步) → $29 (Polygon.io 升级) |
| 券商佣金 | ~$10-20 ($30K 本金) |
| VPS | $5 (Contabo) |
| 总计 | ~$15-25/月 |
5.4 可靠性和容灾
单点故障分析:
| 故障点 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|
| 停电 | 低 (城市) | 错过当日信号 | 手机告警,次日补 |
| 断网 | 低 | 数据下载失败 | 手机热点备用 |
| 电脑故障 | 中 (硬件老化) | 系统停摆 | VPS 容灾 |
| 券商 API 故障 | 低 | 无法执行 | 多券商备用 |
| 数据源故障 | 中 (限流) | 信号延迟 | 多数据源备用 |
容灾方案:
- 数据备份: 每日导出 Parquet 到 Google Drive/Dropbox
- 配置备份: GitHub 私有仓库 (代码 + 配置)
- VPS 热备: 部署相同代码,心跳检测,故障时手动切换
- 纸盘先行: 实盘前至少 3 个月纸盘验证
6. 老板搭建 tradeSys 操作步骤
6.1 Day 1-2: 环境搭建
# 1. 创建项目目录
mkdir -p ~/workspace/tradeSys/{data,scripts,logs,backup}
cd ~/workspace/tradeSys
# 2. 创建 Python 虚拟环境
python3 -m venv venv
source venv/bin/activate
# 3. 安装依赖
pip install vectorbt pandas duckdb pyarrow polars pandas_datareader ccxt
# 4. 验证安装
python -c "import vectorbt; print(f'vectorbt v{vectorbt.__version__}')"
6.2 Day 3-4: 数据管道测试
# 运行数据下载测试
python scripts/test_data_sources.py
# 预期输出:
# ✅ Stooq: DBMF/IAUM/BIL/SPY/GLD 全部成功
# ✅ FRED: VIX/DGS10/FedFunds 全部成功
6.3 Day 5-7: 回测验证
# 运行 Plan E3 回测
python scripts/test_backtest_prototype.py
# 验证指标:
# - Sharpe > 0.5
# - MaxDD < -10%
# - 与 SPY 相关性 < 0.3
6.4 Week 2: 券商账户开通
IBKR 账户 (美股/ETF)
- 访问: https://www.interactivebrokers.com
- 选择: 个人账户,香港账户
- 准备: 护照/身份证,地址证明
- 时间: 3-5 工作日审批
Binance/Bybit 账户 (Crypto)
- 访问: https://binance.com 或 https://bybit.com
- KYC: 身份证 + 人脸识别
- 时间: 即时审批
API Key 配置
- IBKR: TWS → 设置 → API → 启用
- Binance: 账户 → API 管理 → 创建 (限制 IP)
6.5 Week 3-4: 纸盘测试
# 1. 配置纸盘参数
cp config.example.yaml config.yaml
# 编辑: 填入 IBKR 纸盘账号,Binance 测试网 key
# 2. 运行纸盘
python scripts/paper_trading.py --dry-run
# 3. 监控 30 天
# - 每日检查信号
# - 记录预期交易
# - 对比实际执行
6.6 Month 2: 小资金实盘
# 1. 入金 $5K
# IBKR: 电汇入金 (~$30 手续费)
# Binance: USDT 链上转账
# 2. 首次再平衡
# DBMF: $5000 × 45% = $2250
# IAUM: $5000 × 15% = $750
# BIL: $5000 × 40% = $2000
# 3. 设置 cron
crontab -e
# 0 5 * * 1-5 cd ~/workspace/tradeSys && ./venv/bin/python scripts/daily.py
6.7 Month 3+: 监控和优化
- 每周: 检查日志,确认无错误
- 每月: 对比实盘 vs 回测偏差
- 每季度: 再平衡 + 策略回顾
- 每年: 全面复盘,调整配比
7. 风险总览
| 风险 | 严重性 | 概率 | 缓解措施 |
|---|---|---|---|
| 数据源失效 | 🟡 中 | 中 | 多数据源备份 (Stooq + yfinance + Polygon) |
| 券商 API 变更 | 🟡 中 | 低 | 关注公告,预留 2 周迁移时间 |
| 过度拟合 | 🔴 高 | 中 | Walk-forward 验证,样本外测试 |
| 交易成本超预期 | 🟡 中 | 中 | 季度再平衡 + 阈值调仓 |
| 本地部署故障 | 🟡 中 | 中 | VPS 容灾 + 手机告警 |
| Crypto 监管风险 | 🔴 高 | 低 | 合规交易所,分散存放 |
| 策略衰减 | 🟡 中 | 低 | 月度监控 Sharpe,<0.3 时预警 |
8. 总结
8.1 推荐技术栈 (一句话)
Stooq 免费数据 + DuckDB 存储 + vectorbt 回测 + IBKR/Binance 执行 + cron 调度 + 本地 Mac 部署 = 首年成本<$100 的完整量化交易系统。
8.2 关键实测结论
- 数据源: Stooq 完全可用,FRED 免 key,CCXT 库成熟 (需好网络)
- 存储: DuckDB 比 SQLite 快 4-7 倍,文件小 95 倍
- 回测: Plan E3-ETF 实测 Sharpe 0.747,MaxDD -6.6%,2022 年 +9.9%
- 趋势增强: 200 日 SMA 过滤可提升 Sharpe 45% (0.747→1.085)
- 成本: 5bp 交易成本下,季度再平衡年化拖累仅 0.9%
- 部署: 本地 Mac 足够起步,VPS 容灾$5/月
8.3 下一步行动
- ✅ 数据源测试 — 完成
- ✅ 存储方案 benchmark — 完成
- ✅ 回测 prototype — 完成
- ⏳ 券商账户开通 — 老板执行
- ⏳ 纸盘测试 — 待账户开通后
- ⏳ 实盘部署 — 纸盘 3 个月后
#22 技术栈选型完成。研究成果已写入 self/research/tradeSys/tradeSys-tech-stack-selection.md。
