一个基于 Python Tkinter 开发的桌面端股票短线交易记录小工具,使用 SQLite 存储数据,支持股票持仓管理、买卖经验总结及日历事件提醒。
- 股票管理:增删查改股票信息,记录技术指标(MACD、KDJ、成交量、BOLL)、买入时间、卖出计划等。
- 分批卖出:支持分多次卖出,可输入价格或涨跌幅百分比自动换算股价,记录卖出理由。
- 待买待卖:用不同颜色标记待买入/待卖出股票,待买入可一键转为持有(自动记录买入交易)。
- 买卖经验:卖出记录可选择标记为经验,提供专门的经验管理界面(增删查改)。
- 日历事件:记录重要事件(如美联储议息会议),重要事件在本周会自动置顶提醒。
- 数据持久化:所有数据保存在本地的 SQLite 数据库文件中。
- Python 3.x (标准库 tkinter, sqlite3)
- SQLite 数据库
- 分层架构:UI (界面)、managers (业务逻辑)、db (数据层)
- 确保系统已安装 Python 3.6 或更高版本。
- 克隆或下载本项目代码。
- 进入项目根目录,运行主程序:
python main.py
- 首次运行会自动在项目目录下创建
swift_trade.db数据库文件。
如果你想将程序打包为单个 EXE 文件,无需安装 Python 环境即可运行,请执行以下步骤:
- 安装 PyInstaller:
pip install pyinstaller
- 在项目根目录运行打包命令:
pyinstaller --onefile --windowed --name "SwiftTrade" main.py - 打包成功后,在
dist文件夹中找到SwiftTrade.exe,双击即可运行。
stock_short_term_tracker/
├── main.py # 程序入口
├── config.py # 数据库路径等全局配置
├── db.py # 数据库初始化与连接
├── models.py # 数据实体类(Stock, Trade, Experience, CalendarEvent)
├── utils.py # 计算公式与校验工具
├── managers/
│ ├── __init__.py
│ ├── calendar_manager.py # 日历事件管理
│ ├── experience_manager.py # 买卖经验管理
│ ├── stock_manager.py # 股票基本 CRUD
│ └── trade_manager.py # 买卖交易处理
├── ui/
│ ├── __init__.py
│ ├── calendar_view.py # 日历视图与事件管理
│ ├── color_config.py # 状态颜色配置
│ ├── experience_view.py # 买卖经验管理窗口
│ ├── main_window.py # 主窗口与菜单栏
│ ├── pending_view.py # 待买入视图及确认买入功能
│ ├── stock_dialog.py # 新增/编辑股票对话框
│ ├── stock_list_view.py # 通用股票列表视图(含右键菜单)
│ └── trade_dialog.py # 卖出操作对话框(支持价格/涨跌幅联动)
└── README.md
- 菜单栏 股票管理 → 全部股票 → 点击 新增股票,填写名称、买入价、股数、技术指标、时间、卖出计划等信息后保存。
- 选中持仓股票 → 右键 卖出 → 填写卖出股数,可选择 直接输入价格 或 输入涨跌幅(%)(自动计算对应股价),填写理由,确认卖出。
- 可勾选 标记为买卖经验 将该笔交易纳入经验库。
- 待买入:添加股票时可选择状态为“待买入”,列表中会有浅蓝色背景。在待买入视图中点击 确认买入,填写实际买入价和股数,股票将变为持有状态并记录买入交易。
- 待卖出:在持有股票上右键选择 标记为待卖出,会以浅橙色背景高亮,该视图可通过菜单进入。
- 菜单栏 买卖经验 → 经验管理,可手动新增经验,或通过卖出时标记自动生成。
- 支持编辑、删除经验,可关联原始交易 ID。
- 菜单栏 日历事件 → 事件管理,打开日历界面。
- 单击选中日期,右侧显示当天事件;双击日期或点击 添加 创建事件。
- 勾选 重要事件 后,在事件所在周的周一起,主界面日历提醒区域会以红色文字置顶显示。
| 状态 | 背景色 |
|---|---|
| 持有 | 白色 |
| 待买入 | 浅蓝色 |
| 待卖出 | 浅橙色 |
| 已卖出 | 浅灰色 |
- 数据库文件
swift_trade.db会生成在项目根目录,请勿随意修改或删除。 - 技术指标字段目前为文本描述,可自行扩展为图表展示(如使用
matplotlib)。 - 本工具为本地单机版,数据不联网,安全性高。
MIT License