README.md 8.4 KB

Pacifica 后台交易系统

一个纯后台运行的 Pacifica 多账户 BTC 对冲刷量交易系统,通过配置文件控制所有功能,无需 API 交互。

🚀 特性

  • 纯后台运行: 无 API 交互,完全通过配置文件控制
  • 多账户管理: 支持多个交易账户的协调管理
  • 自动任务调度: 基于 cron 表达式的自动任务执行
  • 实时监控: 系统状态、性能指标和告警监控
  • 风险控制: 多层次风险管理和自动停止机制
  • 配置驱动: 所有功能通过 JSON 配置文件控制
  • 守护进程: 系统级守护进程,支持优雅关闭和自动重启

📋 系统架构

┌─────────────────────────────────────────────────────────────┐
│                    Pacifica 后台交易系统                      │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │   守护进程   │  │  后台系统   │  │  任务调度器  │         │
│  │   Daemon    │  │ BackendSystem│  │TaskScheduler│         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  监控系统   │  │  配置管理   │  │  账户管理   │         │
│  │ Monitoring  │  │   Config    │  │   Account   │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│                                                             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  订单协调   │  │  风险管理   │  │  审计日志   │         │
│  │   Order     │  │    Risk     │  │    Audit    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

🛠️ 安装和配置

1. 环境要求

  • Node.js 18.0.0 或更高版本
  • TypeScript 5.0.0 或更高版本
  • 足够的系统资源(建议 2GB+ RAM)

2. 安装依赖

npm install

3. 配置文件设置

系统配置文件 (config/system-config.json)

{
  "system": {
    "name": "Pacifica Wash Trading System",
    "version": "1.0.0",
    "environment": "development",
    "logLevel": "info",
    "maxConcurrentSessions": 5,
    "sessionTimeout": 3600000,
    "healthCheckInterval": 30000
  },
  "trading": {
    "defaultSymbol": "BTC-PERP",
    "maxOrderSize": 1.0,
    "minOrderSize": 0.001,
    "maxSlippage": 0.01,
    "orderTimeout": 30000,
    "retryAttempts": 3
  },
  "risk": {
    "maxTotalVolume": 100.0,
    "maxNetExposure": 0.1,
    "maxDailyLoss": 1000.0,
    "positionLimit": 10.0,
    "stopLossThreshold": 0.05
  },
  "automation": {
    "enabled": true,
    "autoStartSessions": true,
    "autoStopOnRisk": true,
    "scheduleConfig": "0 */6 * * *",
    "maxRunningSessions": 3
  }
}

自动会话配置 (config/auto-sessions.json)

{
  "autoSessions": [
    {
      "id": "auto-session-1",
      "name": "BTC 等量交易会话",
      "enabled": true,
      "strategy": {
        "type": "EQUAL_VOLUME",
        "symbol": "BTC-PERP",
        "parameters": {
          "volumePerOrder": 0.01,
          "priceSpread": 0.0001,
          "interval": 5000
        }
      },
      "accounts": ["account-1", "account-2"],
      "targetVolume": 1.0,
      "duration": 3600000,
      "schedule": {
        "enabled": true,
        "cron": "0 9 * * *",
        "timezone": "Asia/Shanghai"
      }
    }
  ]
}

账户配置 (config/accounts.json)

[
  {
    "id": "account-1",
    "name": "主账户",
    "apiKey": "encrypted_api_key",
    "privateKey": "encrypted_private_key",
    "address": "0x...",
    "balance": {
      "total": 10000,
      "available": 10000,
      "used": 0
    },
    "riskLimits": {
      "maxPosition": 1.0,
      "dailyVolume": 100.0,
      "maxLoss": 500.0
    },
    "isActive": true
  }
]

🚀 运行系统

开发模式

npm run dev

生产模式

# 构建项目
npm run build

# 启动守护进程
npm start

后台运行

# 使用 nohup 后台运行
nohup npm start > logs/daemon.log 2>&1 &

# 或使用 PM2
pm2 start dist/daemon.js --name pacifica-daemon

📊 系统管理

查看状态

# 查看进程状态
npm run status

# 查看日志
tail -f logs/daemon.log

停止系统

# 优雅停止
npm run stop

# 或发送信号
kill -TERM <pid>

重启系统

npm run restart

🔧 配置管理

重新加载配置

# 发送 SIGHUP 信号重新加载配置
kill -HUP <pid>

生成状态报告

# 发送 SIGUSR1 信号生成状态报告
kill -USR1 <pid>

重启服务

# 发送 SIGUSR2 信号重启服务
kill -USR2 <pid>

📈 监控和日志

日志文件

  • logs/daemon.log - 守护进程日志
  • logs/system.log - 系统日志
  • logs/monitoring-report-*.json - 监控报告
  • logs/status-report-*.json - 状态报告

监控指标

  • 系统资源使用率(内存、CPU)
  • 交易会话状态和性能
  • 任务执行统计
  • 错误率和告警

告警规则

  • 内存使用率 > 80%
  • 错误率 > 10
  • 会话成功率 < 70%

🛡️ 风险管理

自动风险控制

  • 最大并发会话数限制
  • 单账户风险限制
  • 全局风险限制
  • 自动停止机制

风险指标

  • 总交易量限制
  • 净敞口限制
  • 最大损失限制
  • 持仓限制

🔄 任务调度

支持的任务类型

  • 自动会话: 按计划启动交易会话
  • 健康检查: 定期检查系统健康状态
  • 清理任务: 清理过期数据和日志
  • 监控任务: 实时监控系统状态

Cron 表达式示例

# 每天上午9点启动
0 9 * * *

# 每6小时启动一次
0 */6 * * *

# 每分钟检查一次
*/1 * * * *

📁 项目结构

pacifica-wash-trading-system/
├── src/
│   ├── core/                 # 核心系统
│   │   ├── BackendSystem.ts  # 后台系统
│   │   ├── ConfigManager.ts  # 配置管理
│   │   ├── TaskScheduler.ts  # 任务调度
│   │   └── MonitoringSystem.ts # 监控系统
│   ├── services/             # 服务层
│   ├── models/               # 数据模型
│   ├── strategies/           # 交易策略
│   ├── utils/                # 工具类
│   └── daemon.ts             # 守护进程入口
├── config/                   # 配置文件
├── logs/                     # 日志文件
├── tests/                    # 测试文件
└── package.json

🔒 安全考虑

  • 敏感数据加密存储
  • 配置文件权限控制
  • 进程隔离运行
  • 日志脱敏处理

🐛 故障排除

常见问题

  1. 进程无法启动

    • 检查端口占用
    • 验证配置文件格式
    • 查看错误日志
  2. 任务不执行

    • 检查 cron 表达式
    • 验证账户配置
    • 查看任务日志
  3. 内存使用过高

    • 调整并发会话数
    • 检查内存泄漏
    • 优化配置参数

调试模式

# 启用调试日志
export LOG_LEVEL=debug
npm run dev

📞 支持

如有问题或建议,请:

  1. 查看日志文件
  2. 检查配置文件
  3. 提交 Issue
  4. 联系技术支持

📄 许可证

MIT License - 详见 LICENSE 文件


注意: 本系统仅用于学习和研究目的,请遵守相关法律法规和交易所规则。