#!/bin/bash ############################################################################### # 生产环境启动脚本 # # 功能: # 1. 检查环境和配置 # 2. 创建日志目录 # 3. 启动策略并记录日志 # 4. 提供优雅退出 ############################################################################### set -e # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${GREEN}[INFO]${NC} $1" } log_warn() { echo -e "${YELLOW}[WARN]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 检查必要文件 check_requirements() { log_info "检查环境要求..." # 检查配置文件 if [ ! -f "config/accounts.json" ]; then log_error "缺少配置文件: config/accounts.json" exit 1 fi if [ ! -f "config/trading-strategy.json" ]; then log_error "缺少配置文件: config/trading-strategy.json" exit 1 fi if [ ! -f "config/delta-strategy-config.json" ]; then log_error "缺少配置文件: config/delta-strategy-config.json" exit 1 fi # 检查 node_modules if [ ! -d "node_modules" ]; then log_warn "未安装依赖,正在安装..." npm install fi log_info "✅ 环境检查通过" } # 创建日志目录 setup_logs() { log_info "设置日志目录..." mkdir -p logs mkdir -p logs/audit mkdir -p logs/performance log_info "✅ 日志目录已创建" } # 显示配置信息 show_config() { log_info "当前配置:" # 读取策略配置 SYMBOL=$(cat config/trading-strategy.json | jq -r '.symbol') VOLUME=$(cat config/trading-strategy.json | jq -r '.volumeTargetPerCycle') # 读取 Delta 配置 INTERVAL=$(cat config/delta-strategy-config.json | jq -r '.strategy.tradingInterval') MAX_ORDER_AGE=$(cat config/delta-strategy-config.json | jq -r '.orderLifecycle.maxOrderAge') echo " 交易品种: $SYMBOL" echo " 周期交易量: $VOLUME BTC" echo " 交易间隔: $((INTERVAL / 1000)) 秒" echo " 订单超时: $((MAX_ORDER_AGE / 1000)) 秒" } # 启动前确认 confirm_start() { echo "" read -p "确认启动策略? (yes/no): " -r echo if [[ ! $REPLY =~ ^[Yy]es$ ]]; then log_warn "启动已取消" exit 0 fi } # 启动策略 start_strategy() { log_info "启动 Delta 中性做市策略..." echo "" # 生成日志文件名 DATE=$(date +%Y-%m-%d) TIME=$(date +%H-%M-%S) LOG_FILE="logs/session_${DATE}_${TIME}.log" log_info "日志文件: $LOG_FILE" echo "" # 启动策略 tsx scripts/run-refactored-strategy.ts 2>&1 | tee "$LOG_FILE" } # 退出处理 cleanup() { log_info "正在清理..." # 这里可以添加额外的清理逻辑 exit 0 } trap cleanup SIGINT SIGTERM ############################################################################### # 主流程 ############################################################################### main() { echo "" echo "╔════════════════════════════════════════════════╗" echo "║ Pacifica Delta 中性做市策略 - 生产环境启动 ║" echo "╚════════════════════════════════════════════════╝" echo "" check_requirements setup_logs show_config confirm_start start_strategy } # 执行主流程 main "$@"