initial-import: 2026-04-11 21:18:55

This commit is contained in:
cfdaily
2026-04-11 21:18:55 +08:00
commit 5e6b2d73eb
264 changed files with 117047 additions and 0 deletions
+326
View File
@@ -0,0 +1,326 @@
# NAS 全自动部署方案
## 📋 方案概述
本方案提供完全自动化的 NAS 部署和管理,**零手动干预**,包含以下特性:
- ✅ 开机自动挂载
- ✅ 断线自动重连(每分钟检查)
- ✅ 网络恢复后自动挂载
- ✅ 日志记录和监控
- ✅ 一键管理工具
- ✅ SMB 性能优化
---
## 🚀 快速开始
### 一步部署(推荐)
只需运行一条命令,全自动完成所有配置:
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
sudo ./nas_auto_deploy.sh
```
**就这么简单!** 脚本会自动完成:
1. ✅ 检查网络连接
2. ✅ 创建挂载点
3. ✅ 测试挂载
4. ✅ 创建 Launch Daemon 守护进程
5. ✅ 优化 SMB 配置
6. ✅ 启动自动挂载服务
---
## 🛠️ 管理工具
部署完成后,使用 `nas_manager.sh` 进行日常管理:
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
./nas_manager.sh status # 查看状态
./nas_manager.sh mount # 手动挂载
./nas_manager.sh umount # 卸载
./nas_manager.sh restart # 重启守护进程
./nas_manager.sh logs # 查看日志
./nas_manager.sh follow # 实时跟踪日志
./nas_manager.sh help # 显示帮助
```
---
## 📁 文件说明
| 文件 | 说明 |
|------|------|
| `nas_auto_deploy.sh` | 全自动部署脚本(只需运行一次) |
| `nas_manager.sh` | 日常管理工具 |
| `nas_mounter.sh` | 自动挂载守护脚本(自动生成) |
| `logs/nas_mount.log` | 挂载日志 |
| `logs/nas_mount_error.log` | 错误日志 |
---
## 🔧 技术原理
### 架构图
```
┌─────────────────────────────────────────────────┐
│ macOS 启动系统 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ Launch Daemon (com.user.nasmount) │
│ - 开机自动运行 │
│ - 每分钟检查一次挂载状态 │
│ - 断线自动重连 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ nas_mounter.sh (挂载守护脚本) │
│ - 检查网络连接 │
│ - 检查挂载状态 │
│ - 执行挂载/重连 │
│ - 创建目录结构 │
└──────────────────┬──────────────────────────────┘
┌─────────────────────────────────────────────────┐
│ NAS (192.168.2.154) │
│ 共享文件夹: stock │
└─────────────────────────────────────────────────┘
```
### Launch Daemon 配置
- **Label**: `com.user.nasmount`
- **运行时机**: 开机自动运行 + 每分钟检查
- **触发条件**: 当 `${MOUNT_POINT}/.mounted` 不存在时触发
- **日志位置**: `logs/nas_mount.log``logs/nas_mount_error.log`
---
## 📊 状态检查示例
运行 `./nas_manager.sh status` 会显示:
```
============================================
NAS 管理工具
============================================
【状态检查】
网络连接: ✅ 正常 (192.168.2.154)
NAS 挂载: ✅ 已挂载
挂载点: /Users/chufeng/nas/stock
【挂载点内容】
total 0
drwx------ 1 chufeng staff 16K Mar 27 23:00 .
drwxr-xr-x 3 chufeng staff 96B Mar 27 23:00 ..
drwx------ 1 chufeng staff 16K Mar 27 23:00 A股数据
drwx------ 1 chufeng staff 16K Mar 27 23:00 回测结果
drwx------ 1 chufeng staff 16K Mar 27 23:00 代码库
drwx------ 1 chufeng staff 16K Mar 27 23:00 临时文件
【Launch Daemon 状态】
✅ 正在运行
【磁盘使用情况】
Filesystem Size Used Avail Capacity iused ifree %iused Mounted on
//...@.../stock 10T 500G 9.5T 5% 123456 123456789 0% /Users/chufeng/nas/stock
```
---
## 🔍 日志查看
### 查看最近日志
```bash
./nas_manager.sh logs
```
输出示例:
```
[2026-03-27 23:00:00] 开始挂载 NAS...
[2026-03-27 23:00:01] NAS 挂载成功: /Users/chufeng/nas/stock
[2026-03-27 23:00:01] 创建目录结构...
[2026-03-27 23:00:02] 目录结构创建完成
[2026-03-27 23:01:00] NAS 已挂载,无需操作
[2026-03-27 23:02:00] NAS 已挂载,无需操作
```
### 实时跟踪日志
```bash
./nas_manager.sh follow
```
`Ctrl+C` 退出。
---
## 🛡️ 故障排查
### 问题1: 未自动挂载
**检查步骤:**
```bash
# 1. 查看状态
./nas_manager.sh status
# 2. 查看日志
./nas_manager.sh logs
# 3. 手动挂载测试
./nas_manager.sh mount
```
### 问题2: Launch Daemon 未运行
**重启守护进程:**
```bash
./nas_manager.sh restart
```
### 问题3: 网络中断后未重连
Launch Daemon 会每分钟检查一次,最多等待 1 分钟自动重连。
如需立即重连:
```bash
./nas_manager.sh restart
```
---
## ⚙️ 高级配置
### 修改检查间隔
编辑 `/Library/LaunchDaemons/com.user.nasmount.plist`
```xml
<key>StartInterval</key>
<integer>60</integer> <!-- 修改这个数字(秒) -->
```
然后重启:
```bash
sudo launchctl unload /Library/LaunchDaemons/com.user.nasmount.plist
sudo launchctl load -w /Library/LaunchDaemons/com.user.nasmount.plist
```
### 修改 NAS 配置
编辑 `nas_mounter.sh` 顶部的配置部分:
```bash
NAS_IP="192.168.2.154"
NAS_USER="cfdaily"
NAS_PASS="Ccf7561523"
NAS_SHARE="stock"
MOUNT_POINT="/Users/chufeng/nas/stock"
```
---
## 📋 目录结构
挂载成功后,NAS 会自动创建以下结构:
```
/Users/chufeng/nas/stock/
├── .mounted # 挂载标记文件(自动生成)
├── A股数据/
│ ├── 日线数据/
│ ├── 分钟线数据/
│ └── 财务数据/
├── 回测结果/
│ ├── 策略回测/
│ └── 性能报告/
├── 代码库/
│ ├── 策略代码/
│ └── 工具脚本/
└── 临时文件/
├── 下载缓存/
└── 临时数据/
```
---
## 🎯 完整使用流程
### 第一次部署
```bash
# 1. 进入工作目录
cd /Users/chufeng/.openclaw/workspace-jiangwei
# 2. 运行全自动部署(只需一次)
sudo ./nas_auto_deploy.sh
# 3. 验证状态
./nas_manager.sh status
```
### 日常使用
```bash
# 查看状态
./nas_manager.sh status
# 查看日志
./nas_manager.sh logs
# 实时跟踪
./nas_manager.sh follow
```
### 如需手动干预
```bash
# 手动挂载
./nas_manager.sh mount
# 卸载
./nas_manager.sh umount
# 重启守护进程
./nas_manager.sh restart
```
---
## ✅ 验收清单
部署完成后,确认以下项目:
- [ ] 运行 `sudo ./nas_auto_deploy.sh` 无错误
- [ ] `./nas_manager.sh status` 显示 NAS 已挂载
- [ ] `ls -la /Users/chufeng/nas/stock` 可以看到目录结构
- [ ] 重启 Mac 后 NAS 自动挂载
- [ ] 断开网络再恢复后,1 分钟内自动重连
---
## 📞 获取帮助
如遇问题:
1. 查看日志:`./nas_manager.sh logs`
2. 检查状态:`./nas_manager.sh status`
3. 重启守护:`./nas_manager.sh restart`
---
**文档版本**: 1.0
**最后更新**: 2026年3月27日
**作者**: 姜维 伯约
+266
View File
@@ -0,0 +1,266 @@
# Mac mini外接局域网NAS存储调研报告
## 一、调研背景
为满足A股量化回测需求,需评估外接局域网NAS存储到Mac mini的可行性。数据规模:
- 日线数据:2-3GB
- 财务数据:几百MB
- 未来分钟线:几十GB
---
## 二、可行性分析
### 2.1 技术可行性:完全可行
根据调研结果,Mac mini挂载局域网NAS存储有以下成熟方案:
1. **多种扩容方式**
- 云存储服务(便捷但依赖网络)
- 网络挂载第三方存储设备(成本低廉、可扩展性强)
- NVMe固态硬盘(高速但昂贵)
- 雷电4网桥连接全闪NAS(高性能方案)
2. **存算分离架构**
已有成功案例将数据存放在机架服务器上,通过SMB协议远程挂载到Mac Mini M4,实现存算分离,稳定性极高。
---
## 三、性能需求评估
### 3.1 量化回测对存储的需求
量化回测的存储访问模式特点:
- 主要是**顺序读取**历史数据
- 需要按时间先后排序回放行情
- 分钟级数据量较大,需要高效读取
- 财务数据相对较小,访问频率较低
### 3.2 网络性能评估
| 网络配置 | 理论速度 | 实际读写速度 | 评估 |
|---------|---------|------------|------|
| 千兆网口 | 125MB/s | ~110MB/s | **满足日线/财务数据需求** |
| 万兆网口 | 1250MB/s | ~1000MB/s+ | **推荐用于分钟线数据** |
**关键发现**
- 千兆网口下Mac mini读写速度约110MB/s,已达到千兆网口极限
- 通过雷电转万兆网口,配合NAS万兆网口+M.2 SSD存储池,可达到10Gb/s的读写速度,几乎与Mac mini自带存储无异
---
## 四、挂载协议选择
### 4.1 各协议对比
| 协议 | macOS兼容性 | 性能 | 稳定性 | 推荐度 |
|-----|------------|------|-------|--------|
| **SMB** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | **首选** |
| NFS | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 备选 |
| AFP | ⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ❌ 不推荐(已弃用) |
### 4.2 推荐方案:SMB协议
**选择理由**
1. **兼容性最好**Windows、Linux、macOS各平台支持完善
2. **macOS官方支持**Apple现在对SMB的支持优于AFP和NFS
3. **稳定性高**AFP在macOS Sequoia中已被弃用,NFS在macOS上性能较差
4. **自动重连**:可配置开机自动挂载
---
## 五、具体方案与操作步骤
### 5.1 方案一:基础方案(千兆网络)
**适用场景**:日线数据+财务数据,初期投入有限
**硬件要求**
- 支持SMB协议的NAS(群晖、极空间、UNRAID等)
- 千兆局域网环境
- NAS配置普通机械硬盘或SSD
**性能预期**:读写~110MB/s
### 5.2 方案二:高性能方案(万兆网络)⭐推荐
**适用场景**:包含分钟线数据,对回测速度有要求
**硬件要求**
- 支持万兆网口的NAS(如极空间Z423旗舰版)
- 雷电3/4转万兆网口适配器(用于Mac mini)
- 万兆交换机
- NAS配置M.2 SSD存储池或SSD阵列
- 万兆网线(Cat6a或Cat7
**性能预期**:读写~1000MB/s+,接近本地存储
---
## 六、Mac mini挂载NAS详细步骤
### 6.1 方法一:Finder手动挂载(临时使用)
1. 打开Finder
2.`Command + K` 或点击菜单「前往」→「连接服务器」
3. 输入服务器地址:`smb://NAS_IP地址/共享文件夹名`
4. 点击「连接」,输入用户名和密码
5. 选择要挂载的共享文件夹
### 6.2 方法二:开机自动挂载(推荐)⭐
#### 方案A:使用自动操作(Automator)- 最简单
1. 打开「自动操作」(Automator)应用
2. 选择「应用程序」类型
3. 在左侧动作库中搜索「运行AppleScript」
4. 添加以下脚本(修改为你的NAS信息):
```applescript
tell application "Finder"
mount volume "smb://用户名:密码@NAS_IP地址/共享文件夹名"
end tell
```
5. 保存应用程序(如「挂载NAS」)
6. 打开「系统设置」→「通用」→「登录项」
7. 将刚才保存的应用程序添加到登录项中
#### 方案B:使用autofs(更稳定,推荐用于服务器环境)
1. 编辑 `/etc/auto_master` 文件:
```bash
sudo nano /etc/auto_master
```
2. 添加以下行:
```
/Users/你的用户名/nas auto_nas
```
3. 创建 `auto_nas` 文件:
```bash
sudo nano /etc/auto_nas
```
4. 添加内容(修改为你的配置):
```
a股数据 -fstype=smbfs,soft,noowners,nosuid,rw ://用户名:密码@NAS_IP地址/共享文件夹名
```
5. 设置权限并重启autofs
```bash
sudo chmod 644 /etc/auto_nas
sudo automount -cv
```
---
## 七、性能优化建议
### 7.1 macOS SMB性能优化
编辑 `/etc/nsmb.conf` 文件(如不存在则创建):
```ini
[default]
signing_required=no
protocol_vers_map=6
dir_cache_max_cnt=65536
dir_cache_max=10485760
file_ids_off=yes
mc_on=no
soft=yes
```
### 7.2 NAS端优化
1. **启用SMB 3.0/3.1.1协议**
2. **配置SSD缓存**(如果NAS支持)
3. **使用RAID 5/6/10**(兼顾性能和冗余)
4. **启用Jumbo Frames**MTU=9000,万兆网络推荐)
---
## 八、稳定性评估
### 8.1 可靠性保障
1. **Mac mini优势**
- ARM架构M系列芯片低功耗、发热低
- 适合长时间运行,可设置完全不休眠
- 文件共享访问时可快速唤醒
2. **网络稳定性建议**
- 使用有线网络而非Wi-Fi
- 选用企业级交换机
- UPS不间断电源保护
3. **数据冗余建议**
- NAS配置RAID 5/6/10
- 定期备份到另一位置
- 重要数据考虑异地备份
### 8.2 已知问题与解决方案
| 问题 | 解决方案 |
|-----|---------|
| SMB连接中断 | 使用soft挂载选项,避免系统卡死 |
| 权限问题 | 在NAS端正确配置用户权限 |
| 睡眠后无法访问 | 在macOS能源设置中设置"唤醒以供网络访问" |
---
## 九、成本估算(参考)
### 方案一:基础版(千兆)
- NAS设备(4盘位):3000-6000元
- 硬盘(4T×4 RAID 5):约4000元
- 千兆交换机:200-500元
- **合计**:约7200-10500元
### 方案二:高性能版(万兆)
- NAS设备(支持万兆):6000-12000元
- SSD存储(2T×4 RAID 5):约8000元
- 万兆交换机:1000-3000元
- 雷电转万兆适配器:500-1500元
- **合计**:约15500-24500元
---
## 十、结论与建议
### 10.1 可行性结论:✅ 完全可行
外接局域网NAS存储到Mac mini用于A股量化回测是**完全可行**的,且已有成熟的应用案例。
### 10.2 推荐方案
**初期阶段**
- 使用**千兆网络 + SMB协议**
- NAS配置机械硬盘RAID 5
- 成本较低,完全满足日线+财务数据需求
**长期规划**(分钟线数据):
- 升级到**万兆网络 + SSD存储池**
- 性能接近本地存储,回测效率大幅提升
- 一步到位,避免重复投资
### 10.3 操作建议
1. **先试点**:先用千兆方案验证可行性和性能
2. **备份优先**:数据安全第一,配置RAID和定期备份
3. **自动化**:配置开机自动挂载,减少手动操作
4. **监控**:关注网络稳定性和NAS健康状态
5. **预留扩展空间**:为未来分钟线数据预留足够存储和网络升级空间
---
## 十一、参考资料
1. Mac mini M4无损扩容方案 - 新浪众测
2. SMB vs NFS vs AFP协议对比 - CSDN博客
3. macOS自动挂载NAS教程 - 知乎、CSDN
4. 存算分离架构实践 - 知乎专栏
**报告完成日期**2026年3月26日
**调研人员**:姜维 伯约
+33
View File
@@ -0,0 +1,33 @@
# 🚀 NAS 快速参考卡
## 一步部署(只需一次)
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
sudo ./nas_auto_deploy.sh
```
## 日常管理
| 命令 | 说明 |
|------|------|
| `./nas_manager.sh status` | 📊 查看状态 |
| `./nas_manager.sh mount` | 🔌 手动挂载 |
| `./nas_manager.sh umount` | 📤 卸载 |
| `./nas_manager.sh restart` | 🔄 重启守护 |
| `./nas_manager.sh logs` | 📝 查看日志 |
| `./nas_manager.sh follow` | 👀 实时日志 |
## 挂载点
- **NAS IP**: 192.168.2.154
- **本地路径**: `/Users/chufeng/nas/stock`
## 日志位置
- 正常日志: `logs/nas_mount.log`
- 错误日志: `logs/nas_mount_error.log`
---
**记住**: 部署只需一次,之后全自动管理!
+156
View File
@@ -0,0 +1,156 @@
# 群晖NAS挂载操作指南
## NAS连接信息
- **NAS IP**: 192.168.2.154
- **用户名**: cfdaily
- **密码**: Ccf7561523
- **目标共享文件夹**: stock
---
## 一、手动挂载步骤
### 方法1:通过Finder挂载(推荐)
1. 打开Finder
2.`Command + K` 或点击菜单「前往」→「连接服务器」
3. 输入服务器地址:`smb://192.168.2.154/stock`
4. 点击「连接」
5. 输入用户名:`cfdaily`,密码:`Ccf7561523`
6. 选择「记住此密码」
7. 挂载成功后,会在 `/Volumes/stock` 看到
### 方法2:通过终端挂载
```bash
# 先创建挂载点
mkdir -p ~/nas/stock
# 挂载NAS
osascript -e 'tell application "Finder" to mount volume "smb://cfdaily:Ccf7561523@192.168.2.154/stock"'
```
---
## 二、开机自动挂载设置
### 方法1:使用登录项(最简单)⭐
1. 先按上述步骤手动挂载一次stock文件夹
2. 打开「系统设置」→「通用」→「登录项」
3. 打开Finder,找到 `/Volumes/stock`
4.`stock` 图标直接拖入登录项列表
5. 重启Mac测试是否自动挂载
### 方法2:使用自动操作(Automator)
1. 打开「自动操作」(Automator)应用
2. 选择「应用程序」类型
3. 在左侧动作库中搜索「运行AppleScript」
4. 双击添加到右侧工作区
5. 复制以下脚本:
```applescript
tell application "Finder"
try
mount volume "smb://cfdaily:Ccf7561523@192.168.2.154/stock"
on error errMsg
display dialog "挂载NAS失败: " & errMsg buttons {"确定"} default button 1
end try
end tell
```
6. 点击右上角的「运行」测试一下
7. 保存应用程序到桌面,命名为「挂载NAS」
8. 打开「系统设置」→「通用」→「登录项」
9. 将「挂载NAS」应用添加到登录项中
---
## 三、stock目录结构规划
建议在stock文件夹下创建以下子目录:
```
/Volumes/stock/
├── A股数据/
│ ├── 日线数据/ # 2-3GB
│ ├── 分钟线数据/ # 未来几十GB
│ └── 财务数据/ # 几百MB
├── 回测结果/
│ ├── 策略回测/
│ └── 性能报告/
├── 代码库/
│ ├── 策略代码/
│ └── 工具脚本/
└── 临时文件/
├── 下载缓存/
└── 临时数据/
```
---
## 四、创建子目录命令
挂载成功后,在终端执行以下命令创建目录结构:
```bash
# 检查挂载点
ls -la /Volumes/
# 如果stock已挂载,创建子目录
cd /Volumes/stock
mkdir -p A股数据/{日线数据,分钟线数据,财务数据}
mkdir -p 回测结果/{策略回测,性能报告}
mkdir -p 代码库/{策略代码,工具脚本}
mkdir -p 临时文件/{下载缓存,临时数据}
# 验证目录结构
tree /Volumes/stock 2>/dev/null || find /Volumes/stock -type d -maxdepth 2
```
---
## 五、常用命令
```bash
# 查看挂载的卷
ls -la /Volumes/
# 检查NAS连接(需要先安装ping)
# ping -c 3 192.168.2.154
# 查看NAS共享列表
smbutil view //cfdaily:Ccf7561523@192.168.2.154
# 卸载NAS
diskutil unmount /Volumes/stock
# 或者
umount /Volumes/stock
```
---
## 六、故障排除
### 问题1:连接超时
- 确认NAS和Mac在同一局域网
- 检查NAS IP是否正确:192.168.2.154
- 尝试用网线连接而非Wi-Fi
### 问题2:权限错误
- 确认用户名密码正确:cfdaily / Ccf7561523
- 在群晖管理界面检查cfdaily用户对stock文件夹的权限
### 问题3:睡眠后断开
- 打开「系统设置」→「显示器」→「高级」→「睡眠」
- 勾选「唤醒以供网络访问」
---
## 七、性能优化建议
1. **使用有线网络**:千兆网线比Wi-Fi更稳定更快
2. **SMB优化**:可创建 `/etc/nsmb.conf` 配置文件优化性能
3. **定期检查**:关注NAS磁盘健康状态和空间使用情况
+124
View File
@@ -0,0 +1,124 @@
# 量化交易系统阿里云高性价比部署方案
## 一、系统核心组件
量化交易系统通常包含以下核心组件,需部署在云端:
| 组件 | 功能说明 | 阿里云推荐服务 |
|------|----------|----------------|
| 计算节点 | 策略执行、回测、数据处理 | ECS 云服务器 |
| 关系型数据库 | 存储交易记录、策略状态、用户数据 | RDS MySQL / PolarDB MySQL |
| 时序数据库 | 存储海量历史/实时行情数据 | TSDB For InfluxDB / Lindorm |
| 对象存储 | 存储日志、备份、大文件 | OSS |
| 消息队列 | 实时数据推送、异步任务 | RocketMQ / Kafka |
| 网络 | 安全隔离、公网访问 | VPC、EIP、安全组 |
---
## 方案零:VNPY 极简部署方案(模拟/实盘交易)
**目标成本:≤ 2,000 元/年**
**适用场景**:个人用户跑 VNPY 策略,做模拟交易和小资金实盘交易
VNPY 系统架构相对简单,核心只需:
- 1 台 ECS 运行 VNPY 程序
- 1 个轻量数据库(可直接在 ECS 上用 SQLite,省去 RDS 成本)
- OSS 用于存储日志和备份(可选)
- EIP 用于远程桌面访问(Windows)或 SSHLinux
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|------|------|--------|--------|------|
| ECS | ecs.t6-c1m2.large (2核2G, 突发性能, Windows Server) 或 ecs.t6-c1m2.large (2核2G, Linux) + 系统盘 40G SSD | ¥130 | ¥1,560 | Windows 适合用 VNPY 官方图形界面;Linux 更轻量,可使用 VNPY CLI 或 WebUI |
| EIP | 按使用流量计费 (5G/月) | ¥20 | ¥240 | 用于远程连接 ECS |
| OSS (可选) | 50G 标准存储 | ¥10 | ¥120 | 存储日志、策略备份 |
| **总计** | | **¥160** | **¥1,920** | |
### 部署要点:
1. **ECS 选择**
- 新手推荐 Windows Server,直接下载 VNPY 官方安装包运行
- 有 Linux 经验推荐 Ubuntu/CentOS,使用 pip 安装 vnpy,资源占用更低
2. **数据库**VNPY 默认支持 SQLite,无需额外购买 RDS,数据文件直接存在 ECS 本地磁盘
3. **网络**:安全组开放远程桌面端口(3389 for Windows)或 SSH 端口(22 for Linux),仅允许自己的 IP 访问,提高安全性
4. **成本优化**
- 使用突发性能实例(t6 系列),适合 VNPY 这种非持续高负载场景
- 购买 1 年预留实例,可再省约 30% 费用
---
## 二、高性价比方案对比(按年计算)
### 方案一:入门级(适合个人/小团队策略验证)
**目标成本:≤ 5,000 元/年**
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|------|------|--------|--------|------|
| ECS | ecs.t6-c1m1.small (1核2G, 突发性能) | ¥80 | ¥960 | 可应对低频率策略执行 |
| RDS | mysql.n2.small.1 (1核2G, 50G SSD) | ¥120 | ¥1,440 | 入门级关系型数据库 |
| OSS | 100G 标准存储 + 下行流量 | ¥20 | ¥240 | 日志、备份存储 |
| TSDB | tsdb.n1.medium (1核4G, 50G SSD) | ¥150 | ¥1,800 | 存储历史行情数据 |
| EIP | 按使用流量计费 (10G/月) | ¥30 | ¥360 | 公网访问 |
| **总计** | | **¥400** | **¥4,800** | |
---
### 方案二:标准级(适合稳定运行的实盘策略)
**目标成本:15,000 - 25,000 元/年**
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|------|------|--------|--------|------|
| ECS | ecs.c6a.large (2核8G, 通用型) + 数据盘 100G SSD | ¥400 | ¥4,800 | 支持多策略并行、中等频率回测 |
| RDS | mysql.n2.large.2 (2核8G, 200G SSD) | ¥450 | ¥5,400 | 支持高并发、数据备份 |
| OSS | 500G 标准存储 + 下行流量 | ¥80 | ¥960 | 海量历史数据、日志 |
| TSDB | tsdb.n1.xlarge (2核8G, 200G SSD) | ¥350 | ¥4,200 | 实时行情+历史数据存储 |
| RocketMQ | rocketmq.n2.small (2核4G, 3节点) | ¥200 | ¥2,400 | 实时数据推送、异步解耦 |
| EIP | 按固定带宽 (5Mbps) | ¥120 | ¥1,440 | 稳定公网访问 |
| **总计** | | **¥1,600** | **¥19,200** | |
---
### 方案三:旗舰级(适合多策略、高频交易)
**目标成本:50,000 - 80,000 元/年**
| 组件 | 配置 | 月费用 | 年费用 | 说明 |
|------|------|--------|--------|------|
| ECS | ecs.g6a.2xlarge (8核32G, 计算型) + 数据盘 500G SSD | ¥1,800 | ¥21,600 | 高频交易、大规模回测 |
| PolarDB | polardb.mysql.x4.large.2 (4核16G, 1T SSD) | ¥1,500 | ¥18,000 | 高性能、高可用关系型数据库 |
| OSS | 2T 标准存储 + CDN加速 | ¥300 | ¥3,600 | 海量数据、全球访问加速 |
| Lindorm | lindorm.tsdb.xlarge (4核16G, 1T SSD) | ¥1,000 | ¥12,000 | 超大规模时序数据存储 |
| Kafka | kafka.2xlarge (4核16G, 3节点) | ¥600 | ¥7,200 | 高吞吐实时数据管道 |
| SLB + EIP | 负载均衡 (2实例) + 10Mbps固定带宽 | ¥300 | ¥3,600 | 高可用、容灾 |
| **总计** | | **¥5,500** | **¥66,000** | |
---
## 三、成本优化建议
1. **使用预留实例/存储容量包**
- ECS 预留实例可节省 30%-50% 费用(相比按量付费)
- OSS 存储容量包、RDS 存储包可进一步降低成本
2. **弹性伸缩**
- 回测/数据处理任务使用函数计算(Function Compute)或抢占式实例,避免资源浪费
- 交易时段外降低 ECS 配置
3. **数据生命周期管理**
- OSS 配置生命周期规则,冷数据迁移至低频访问存储或归档存储
- 历史行情数据定期归档至 OSS 归档存储,成本可降低 70% 以上
4. **监控与优化**
- 使用云监控(CloudMonitor)持续监控资源使用率,及时调整配置
- 关闭不必要的服务和端口,减少安全组和网络费用
---
## 四、方案选择建议
| 场景 | 推荐方案 | 理由 |
|------|----------|------|
| 个人 VNPY 模拟/小资金实盘 | 方案零(VNPY 极简) | 成本极低,≤ 2,000 元/年,满足 VNPY 基本需求 |
| 个人策略验证、小资金实盘 | 方案一(入门级) | 成本低,满足基本需求 |
| 多策略稳定运行、中等资金规模 | 方案二(标准级) | 平衡性能与成本,支持实盘 |
| 高频交易、大规模回测、多团队协作 | 方案三(旗舰级) | 高性能、高可用,支持复杂场景 |
---
**生成时间**: 2026-03-23
**调研人**: 姜维 伯约
+59
View File
@@ -0,0 +1,59 @@
# 🚀 sanguo_vnpy NAS 部署 - 快速参考卡
## 一步开始
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
sudo ./sanguo_nas_deploy.sh
```
---
## 完整三步
### 1️⃣ 准备文件(Mac mini
```bash
sudo ./sanguo_nas_deploy.sh
```
### 2️⃣ 启动 DockerNAS SSH
```bash
ssh admin@192.168.2.154
cd /volume1/stock/sanguo_vnpy/docker
docker-compose up -d
docker-compose logs -f
```
### 3️⃣ 访问服务(浏览器)
| 服务 | 地址 | 凭证 |
|------|------|------|
| Jupyter | http://192.168.2.154:8888 | token: `sanguo123` |
| VS Code | http://192.168.2.154:8080 | password: `sanguo123` |
---
## 常用命令
```bash
# NAS SSH 中执行
cd /volume1/stock/sanguo_vnpy/docker
docker-compose ps # 查看状态
docker-compose logs -f # 查看日志
docker-compose restart # 重启
docker-compose down # 停止
```
---
## 测试运行
在 Jupyter 中:
```python
%cd /app/tests
python test_backtest.py
```
---
**记住**: 所有数据都在 NAS 上,安全可靠!🎉
@@ -0,0 +1,160 @@
# sanguo_vnpy NAS 部署 - 前期准备清单
## ✅ 部署前检查清单
请确保以下项目都已准备就绪,才能实现真正的"零干预"部署!
---
## 🖥️ NAS 端准备
### 1. Container Manager (Docker) 已安装
- [ ] 打开群晖 DSM → 套件中心
- [ ] 搜索「Container Manager」或「Docker」
- [ ] 确认已**安装并启动**
- [ ] 打开 Container Manager,确认界面正常
**如果未安装**:在套件中心点击「安装」,等待安装完成后启动。
---
### 2. 存储空间充足
- [ ] 打开 File Station
- [ ] 查看 `volume1` 可用空间
- [ ] 确认可用空间 ≥ **50GB**(推荐 100GB+
- [ ] stock 共享文件夹已存在(位于 `/volume1/stock`
**如果空间不足**
- 清理不必要的文件
- 或考虑添加/扩容硬盘
---
### 3. 内存配置足够
- [ ] 打开 DSM → 控制面板 → 信息中心 → 硬件
- [ ] 确认 NAS 内存 ≥ **4GB**(推荐 8GB+
- [ ] 如果内存 < 8GB,建议先升级内存
**内存不足的影响**:Docker 容器运行会变慢,甚至可能被系统终止。
---
### 4. SSH 访问已启用
- [ ] 打开 DSM → 控制面板 → 终端机和 SNMP
- [ ] 勾选「启用 SSH 功能」
- [ ] 端口保持默认 `22`
- [ ] 点击「应用」
---
### 5. 网络配置正常
- [ ] NAS IP 地址:`192.168.2.154`(固定 IP,不要用 DHCP
- [ ] Mac mini 和 NAS 在**同一局域网**
- [ ] 从 Mac mini 能 ping 通 NAS
```bash
ping -c 3 192.168.2.154
```
---
## 💻 Mac mini 端准备
### 1. NAS 挂载信息正确
确认以下信息无误:
- [ ] NAS IP`192.168.2.154`
- [ ] 用户名:`cfdaily`
- [ ] 密码:`Ccf7561523`
- [ ] 共享文件夹:`stock`
**如果信息有变化**,请更新脚本顶部的配置。
---
### 2. 本地策略文件已准备(可选但推荐)
如果您有本地策略文件:
- [ ] 策略文件位于 `~/strategies/` 目录
- [ ] 或 `~/vnpy_project/` 目录
- [ ] 文件权限正常可读
脚本会自动复制这些文件到 NAS。
---
## 🔐 账号密码准备
### NAS SSH 登录账号
请确认您有 NAS 的管理员账号:
- [ ] 管理员用户名(通常是 `admin`
- [ ] 管理员密码
**如果忘记密码**:在 NAS 登录页面点击「忘记密码」重置。
---
## 📋 快速验证命令
在开始部署前,在 Mac mini 终端运行以下命令验证:
```bash
# 1. 验证网络连通
ping -c 3 192.168.2.154
# 2. 验证 NAS 共享可访问
smbutil view //cfdaily:Ccf7561523@192.168.2.154
# 3. 验证 SSH 可登录(尝试连接一下)
ssh admin@192.168.2.154 echo "SSH连接成功"
```
如果以上都成功,说明准备就绪!🎉
---
## ⚠️ 常见问题提前排查
### Q: Container Manager 启动失败怎么办?
A:
1. 重启 NAS
2. 卸载并重新安装 Container Manager
3. 确认 DSM 版本 ≥ 7.0
### Q: NAS 存储空间不够怎么办?
A:
1. 清理旧文件和快照
2. 添加新硬盘扩容
3. 使用外接存储设备
### Q: SSH 连接被拒绝怎么办?
A:
1. 确认 SSH 已在 DSM 启用
2. 检查群晖防火墙是否阻止
3. 确认用户名密码正确
---
## ✅ 最终确认
部署前最后确认:
- [ ] NAS Container Manager 已安装并运行
- [ ] NAS 可用空间 ≥ 50GB
- [ ] NAS 内存 ≥ 4GB
- [ ] SSH 已启用
- [ ] Mac mini 能 ping 通 NAS
- [ ] 有 NAS 管理员账号密码
- [ ] 已阅读本文档并理解各项要求
**如果全部打勾,恭喜!可以开始零干预部署了!** 🚀
---
**准备清单版本**: 1.0
**最后更新**: 2026年3月27日
@@ -0,0 +1,203 @@
# sanguo_vnpy NAS 全自动部署方案
## 📋 方案概述
本方案将 **完整的 sanguo_quant_live 三国量化生态** 全自动部署到 NAS 环境,并提供完整的测试和执行环境。
### 包含的完整项目
1. **sanguo_quant_live** ⭐ - 三国量化完整生态(核心项目!)
- strategies/ - 所有策略代码
- jiangwei-platform/ - 三国量化实战项目
- pangtong-value/ - 价值投资研究
- zhaoyun-data/ - 数据处理
- guanyu-risk/ - 风险管理
- zhangfei-technical/ - 技术分析
- management/ - 管理工具
- archive/ - 归档资料
2. **sanguo_vnpy** - 量化框架项目 (vnpy_project)
3. **jq_essence_articles** - 聚宽精华文章调研
4. **其他研究文档** - 所有相关调研报告
### 核心特性
-**一键部署** - 单条命令完成所有准备工作
-**完整 Docker 环境** - Jupyter + VS Code + vn.py 全栈
-**完整生态** - sanguo_quant_live 全项目整合
-**数据持久化** - 所有数据保存在 NAS 上
-**示例策略** - 包含完整的回测测试环境
-**零手动干预** - 自动化程度最高的方案
---
## 🚀 三步完整部署流程
### 第一步:在 Mac mini 上运行准备脚本
```bash
cd /Users/chufeng/.openclaw/workspace-jiangwei
chmod +x sanguo_nas_deploy.sh
sudo ./sanguo_nas_deploy.sh
```
这个脚本会自动完成:
1. ✅ 挂载 NAS(如未挂载)
2. ✅ 创建完整目录结构
3. ✅ 复制本地策略文件
4. ✅ 生成 Docker 配置
5. ✅ 创建示例策略和测试脚本
6. ✅ 生成部署文档
---
### 第二步:SSH 登录 NAS 并启动 Docker
```bash
# SSH 登录 NAS
ssh admin@192.168.2.154
# 进入 Docker 目录
cd /volume1/stock/sanguo_vnpy/docker
# 构建并启动(第一次需要 5-10 分钟)
docker-compose up -d
# 查看日志,等待服务启动
docker-compose logs -f
```
---
### 第三步:访问服务并运行测试
在 Mac mini 浏览器中打开:
| 服务 | 地址 | 凭证 |
|------|------|------|
| Jupyter Lab | http://192.168.2.154:8888 | token: `sanguo123` |
| VS Code Server | http://192.168.2.154:8080 | password: `sanguo123` |
在 Jupyter Lab 中运行测试:
```python
%cd /app/tests
python test_backtest.py
```
---
## 📁 NAS 上的目录结构
```
/volume1/stock/sanguo_vnpy/
├── README.md # 部署说明文档
├── config/ # 配置文件
├── data/ # 数据目录(持久化)
│ └── A股数据/
│ ├── 日线数据/
│ ├── 分钟线数据/
│ └── 财务数据/
├── notebooks/ # Jupyter 笔记本(持久化)
├── strategies/ # 策略代码(来自 sanguo_quant_live)⭐
├── jiangwei-platform/ # 三国量化实战项目
├── pangtong-value/ # 价值投资研究
├── zhaoyun-data/ # 数据处理
├── guanyu-risk/ # 风险管理
├── zhangfei-technical/ # 技术分析
├── management/ # 管理工具
├── archive/ # 归档资料
├── projects/ # 其他项目
│ └── sanguo_vnpy_framework/ # sanguo_vnpy 量化框架
├── research/ # 研究资料
│ ├── jq_essence_articles/ # 聚宽精华文章
│ └── other/ # 其他调研报告
├── tests/ # 测试脚本
├── scripts/ # 工具脚本
│ └── deploy_on_nas.sh # NAS 上的部署脚本
├── docker/ # Docker 配置
│ ├── Dockerfile
│ ├── docker-compose.yml
│ ├── entrypoint.sh
│ ├── requirements.txt
│ └── .env
└── logs/ # 日志文件
```
---
## 🛠️ Docker 环境包含
| 组件 | 说明 |
|------|------|
| Python 3.10 | 运行环境 |
| vn.py 4.0+ | 量化框架 |
| Jupyter Lab | 策略开发环境 |
| VS Code Server | 代码编辑环境 |
| SSH 服务 | 远程访问 |
| 完整依赖 | pandas/numpy/matplotlib/TA-Lib |
---
## 🧪 测试验证清单
部署完成后,按以下步骤验证:
- [ ] 运行 `./sanguo_nas_deploy.sh` 无错误
- [ ] SSH 登录 NAS 成功
- [ ] `docker-compose up -d` 成功
- [ ] `docker-compose ps` 显示容器状态 healthy
- [ ] 浏览器访问 Jupyter Lab 成功
- [ ] 浏览器访问 VS Code 成功
- [ ] 运行 `/app/tests/test_backtest.py` 成功
- [ ] 策略文件在 `/app/strategies` 可见
- [ ] 数据目录 `/app/data` 可读写
---
## 📊 常用管理命令
```bash
# 在 NAS SSH 中执行
cd /volume1/stock/sanguo_vnpy/docker
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 重新构建(修改配置后)
docker-compose up -d --build
```
---
## 🔐 安全说明
默认密码仅供测试:
- Jupyter token: `sanguo123`
- VS Code 密码: `sanguo123`
- SSH 密码: `sanguo123`
生产环境请修改 `docker/.env``docker/entrypoint.sh` 中的密码,然后重新构建。
---
## 🎯 总结
这个方案实现了:
1.**完全自动化** - 几乎零手动干预
2.**数据安全** - 所有数据持久化在 NAS
3.**开箱即用** - 包含完整测试环境
4.**易于维护** - Docker 容器化部署
5.**灵活扩展** - 可随时添加新策略
**只需三条命令,完成全部部署!** 🚀
File diff suppressed because it is too large Load Diff