| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env python3
- import subprocess
- result = subprocess.run(['python3', 'cyb50_kalman_filter_daily.py'], cwd='/root/.openclaw/workspace/kalman-filter', capture_output=True, text=True, timeout=300)
- output = result.stdout
- lines = output.split('\n')
- signals = []
- in_signal_section = False
- for line in lines:
- if '所有交易信号详情' in line:
- in_signal_section = True
- continue
- if in_signal_section:
- stripped = line.strip()
- if len(stripped) > 30:
- parts = stripped.split()
- if len(parts) >= 3 and parts[0].isdigit() and len(parts[1]) == 10 and parts[1][4] == '-':
- signals.append({
- 'num': parts[0],
- 'date': parts[1],
- 'action': parts[2],
- 'price': parts[3] if len(parts) > 3 else '',
- })
- # 获取所有信号
- if '当前市场状态' in line:
- break
- print(f'找到 {len(signals)} 个交易信号')
- # 取最近40个信号
- recent_signals = signals[-40:] if len(signals) > 40 else signals
- print(f'\n最近40个信号中的前10个:')
- for s in recent_signals[:10]:
- print(f" {s['num']:>3} {s['date']} {s['action']:>4} {s['price']}")
- print(f'\n最近40个信号中的后10个:')
- for s in recent_signals[-10:]:
- print(f" {s['num']:>3} {s['date']} {s['action']:>4} {s['price']}")
- # 配对
- trades = []
- for i in range(len(recent_signals) - 1):
- if recent_signals[i]['action'] == '买入' and recent_signals[i+1]['action'] == '卖出':
- buy = recent_signals[i]
- sell = recent_signals[i+1]
- trades.append(f"{buy['num']} {buy['date']}买入→{sell['date']}卖出")
- print(f'\n配对到 {len(trades)} 对交易')
- print('\n最近5对:')
- for t in trades[-5:]:
- print(f' {t}')
|