Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智能定投工具

美股指数(纳斯达克100 / 标普500)智能定投建议生成器

项目结构(SDD 重构后)

NASDAQ/
├── main.py                  # 统一 CLI 入口(python main.py --quiet)
├── smart_invest.py          # 兼容桥接层(旧脚本仍可用)
├── web_config.py            # 兼容桥接层(旧 bat/vbs 仍可用)
├── valuation.py             # 估值计算模块(暂在根目录,Phase 8 迁移)
├── push_service.py          # 兼容桥接层
├── returns.py               # 组合收益计算
├── backtest.py              # 策略回测
├── config.example.json      # 配置模板
├── requirements.txt         # Python 依赖
│
├── src/                     # 核心模块(依赖方向:底层→上层)
│   ├── config.py            # 配置管理(DEFAULT_CONFIG / load / save)
│   ├── data_fetch.py        # 数据获取(唯一数据入口,带缓存)
│   ├── scheduler.py         # 定投频率调度
│   ├── invest_log.py        # 定投记录日志
│   ├── strategy.py          # 策略计算(纯函数:均线/偏离度/档位/信号)
│   ├── holdings.py          # 持仓盈亏计算
│   ├── envelope.py          # 周期预算信封
│   ├── risk.py              # 风险信号(止盈/仓位上限)
│   ├── message.py           # 消息生成与格式化
│   ├── push_service.py      # 推送服务(邮件/PushPlus/企微/钉钉)
│   └── engine.py            # 调度引擎(数据→信号→信封→消息→推送)
│
├── web/                     # Web 配置看板
│   └── server.py            # HTTP 服务器(web_config.py 的实际实现)
│
├── tests/                   # 单元测试(不依赖网络)
│   ├── test_config.py       # 14个测试
│   ├── test_data_fetch.py   # 20个测试
│   ├── test_scheduler.py    # 12个测试
│   └── conftest.py          # pytest 配置
│
├── templates/               # Web 页面模板
│   └── config.html          # 配置看板前端
│
├── docs/                    # SDD 文档
│   ├── spec.md              # 规格说明
│   ├── constitution.md      # 架构约束
│   ├── plan.md              # 重构方案
│   └── tasks.md             # 任务清单
│
├── 智能定投.bat              # 每日运行入口
├── 启动配置网页.bat          # Web 看板启动
├── 打开配置页面.vbs          # 静默启动 Web(无终端窗口)
├── 每日推送.bat              # 定时推送入口
└── 推送测试.bat              # 推送测试
│
├── cache/                   # 数据缓存(自动生成)
└── .last_invest_date        # 上次定投日期记录
└── .invest_log.json         # 定投日志
└── .budget_state.json       # 周期预算状态

依赖方向

engine → message/risk/envelope/holdings → strategy/invest_log/scheduler → data_fetch → config
                                                                  ↑
                                                             valuation(暂在根目录)
  • 底层模块不依赖上层(data_fetch 不 import engine)
  • strategy 是纯函数模块(无状态、无IO)
  • engine 是唯一调度入口

用法

# 生成定投建议(交互模式)
python main.py

# 安静模式(JSON 输出,供自动化读取)
python main.py --quiet

# 推送到微信
python main.py --push

# 保存到文件
python main.py --save

# 启动 Web 配置看板
python web_config.py
# 或双击 "启动配置网页.bat"

# 运行测试
python -m pytest tests/ -v

配置

编辑 config.json(首次运行自动生成),或通过 Web 看板修改。

关键参数:

  • base_amount: 每期基础金额
  • cycle_invest_count: 周期内定投次数
  • strategy_mode: "fixed_table""formula"
  • invest_interval: 定投间隔(工作日数)
  • push_enabled: 是否推送

开发

# 安装依赖
pip install -r requirements.txt

# 运行全部测试
pytest tests/ -v

# 单模块测试
pytest tests/test_config.py -v
pytest tests/test_data_fetch.py -v
pytest tests/test_scheduler.py -v

License

MIT

About

??????100 & ???500 ????????? - ???????????? + Web????????+ ???????+ ??????

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages