123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #!/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 "$@"
|