1、新增傅里叶策略
2、新增策略管理、策略重启功能
This commit is contained in:
81
strategy_manager/start.py
Normal file
81
strategy_manager/start.py
Normal file
@@ -0,0 +1,81 @@
|
||||
import sys
|
||||
import argparse
|
||||
from pathlib import Path
|
||||
from core.manager import StrategyManager, print_status_table
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="策略管理系统 - 批量管理你的交易策略",
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
epilog="""
|
||||
示例:
|
||||
# 查看所有策略状态
|
||||
python start.py status
|
||||
|
||||
# 启动所有策略
|
||||
python start.py start --all
|
||||
|
||||
# 启动单个策略(使用标识符)
|
||||
python start.py start -n DualModeTrendlineHawkesStrategy2_FG
|
||||
|
||||
# 停止单个策略
|
||||
python start.py stop -n DualModeTrendlineHawkesStrategy2_FG
|
||||
|
||||
# 重启策略
|
||||
python start.py restart -n DualModeTrendlineHawkesStrategy2_FG
|
||||
|
||||
# 查看日志(最近50行)
|
||||
python start.py logs -n DualModeTrendlineHawkesStrategy2_FG -t 50
|
||||
"""
|
||||
)
|
||||
|
||||
parser.add_argument("action", choices=["start", "stop", "restart", "status", "logs"])
|
||||
parser.add_argument("-n", "--name", help="策略标识符(策略名_品种)")
|
||||
parser.add_argument("-a", "--all", action="store_true", help="对所有策略执行操作")
|
||||
parser.add_argument("-c", "--config", default="config/main.json", help="主配置文件路径")
|
||||
parser.add_argument("-t", "--tail", type=int, default=30, help="查看日志末尾行数")
|
||||
|
||||
args = parser.parse_args()
|
||||
manager = StrategyManager(args.config)
|
||||
|
||||
if args.action == "status":
|
||||
status = manager.get_status()
|
||||
print_status_table(status)
|
||||
|
||||
elif args.action in ["start", "stop"]:
|
||||
if args.all:
|
||||
manager.start_all() if args.action == "start" else manager.stop_all()
|
||||
elif args.name:
|
||||
manager.start_strategy(args.name) if args.action == "start" else manager.stop_strategy(args.name)
|
||||
else:
|
||||
print("❌ 错误: 请指定策略名称 (-n) 或使用 --all")
|
||||
sys.exit(1)
|
||||
|
||||
elif args.action == "restart":
|
||||
if not args.name:
|
||||
print("❌ 错误: 重启操作必须指定策略名称 (-n)")
|
||||
sys.exit(1)
|
||||
manager.restart_strategy(args.name)
|
||||
|
||||
elif args.action == "logs":
|
||||
if not args.name:
|
||||
print("❌ 错误: 查看日志必须指定策略名称 (-n)")
|
||||
sys.exit(1)
|
||||
|
||||
log_file = Path("logs") / f"{args.name}.log"
|
||||
if not log_file.exists():
|
||||
print(f"⚠️ 日志文件不存在: {log_file}")
|
||||
return
|
||||
|
||||
print(f"\n📄 {args.name} 的日志 (最近{args.tail}行):")
|
||||
print("=" * 80)
|
||||
with open(log_file, 'r') as f:
|
||||
lines = f.readlines()[-args.tail:]
|
||||
for line in lines:
|
||||
print(line.rstrip())
|
||||
print("=" * 80)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user