stock/demo_phase2.py
ZhangPeng 9aecdd036c Initial commit: OpenClaw Trading - AI多智能体量化交易系统
- 添加项目核心代码和配置
- 添加前端界面 (Next.js)
- 添加单元测试
- 更新 .gitignore 排除缓存和依赖
2026-02-27 03:47:40 +08:00

120 lines
3.4 KiB
Python

#!/usr/bin/env python3
"""OpenClaw Phase 2 功能验证 Demo"""
print('=' * 60)
print('🦞 OpenClaw Trading - Phase 2 功能验证')
print('=' * 60)
print()
# 1. 验证导入
print('📦 模块导入测试...')
from openclaw.core.config import get_config
from openclaw.core.economy import TradingEconomicTracker, SurvivalStatus
from openclaw.core.costs import DecisionCostCalculator
from openclaw.agents.base import BaseAgent, AgentState, ActivityType
from openclaw.agents.trader import TraderAgent
from openclaw.indicators.technical import sma, ema, rsi, macd, bollinger_bands
from openclaw.monitoring.status import StatusMonitor
print('✅ 所有模块导入成功!')
print()
# 2. 配置系统
print('⚙️ 配置系统...')
config = get_config()
print(f' 初始资金: {config.initial_capital}')
print(f' LLM成本: ${config.cost_structure.llm_input_per_1m}/1M tokens')
print(f' 模拟天数: {config.simulation_days}')
print()
# 3. 成本计算器
print('💰 成本计算器...')
calculator = DecisionCostCalculator.from_config(config.cost_structure)
cost = calculator.calculate_decision_cost(
tokens_input=1000,
tokens_output=500,
market_data_calls=10
)
print(f' 决策成本: ${cost:.4f}')
print()
# 4. 经济追踪器
print('📊 经济追踪器...')
tracker = TradingEconomicTracker(
agent_id='demo-trader',
initial_capital=10000.0
)
print(f' Agent: {tracker.agent_id}')
print(f' 初始资金: ${tracker.initial_capital:,.2f}')
print(f' 当前余额: ${tracker.balance:,.2f}')
print(f' 生存状态: {tracker.get_survival_status().value}')
print()
# 5. TraderAgent
print('🤖 TraderAgent...')
agent = TraderAgent(
agent_id='trader-001',
initial_capital=10000.0,
skill_level=0.7
)
print(f' Agent ID: {agent.agent_id}')
print(f' 技能等级: {agent.skill_level:.1%}')
print(f' 胜率: {agent.win_rate:.1%}')
print(f' 解锁因子: {agent.state.unlocked_factors}')
print()
# 6. 技术指标
print('📈 技术指标...')
import pandas as pd
import numpy as np
# 生成示例数据
np.random.seed(42)
prices = pd.Series(100 + np.cumsum(np.random.randn(100) * 0.5))
sma20 = sma(prices, 20)
ema12 = ema(prices, 12)
rsi_val = rsi(prices, 14)
macd_result = macd(prices)
bb_result = bollinger_bands(prices)
print(f' 价格数据: {len(prices)}')
print(f' SMA(20): {sma20.iloc[-1]:.2f}')
print(f' EMA(12): {ema12.iloc[-1]:.2f}')
print(f' RSI(14): {rsi_val.iloc[-1]:.2f}')
print(f' MACD: {macd_result["macd"].iloc[-1]:.2f}')
print(f' 布林带: {bb_result["lower"].iloc[-1]:.2f} ~ {bb_result["upper"].iloc[-1]:.2f}')
print()
# 7. 状态监控
print('📡 状态监控...')
monitor = StatusMonitor()
monitor.register_agent('trader-001', tracker)
print(f' 监控Agent数: {monitor.agent_count}')
print(f' 繁荣Agent数: {monitor.thriving_count}')
print(f' 破产Agent数: {monitor.bankrupt_count}')
print()
# 8. 模拟交易流程
print('🎮 模拟交易流程...')
print(' 1. Agent分析市场...')
print(' 2. 生成交易信号...')
print(' 3. 执行交易并扣除成本...')
print(' 4. 更新状态...')
# 模拟一次交易
result = tracker.calculate_trade_cost(
trade_value=1000.0,
is_win=True,
win_amount=50.0
)
agent.record_trade(is_win=True, pnl=50.0)
print(f' 交易后余额: ${agent.balance:,.2f}')
print(f' 交易次数: {agent.state.total_trades}')
print(f' 当前胜率: {agent.win_rate:.1%}')
print()
print('=' * 60)
print('✅ Phase 2 所有功能验证通过!')
print('=' * 60)