File size: 2,023 Bytes
10150dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""Quick smoke test for all Phase 2 imports."""
import sys
sys.path.insert(0, ".")

from engine.order_book import OrderBook, Order, Side, Trade
from engine.market_state import market_state_to_string
from engine.metrics import MetricsEngine, TickMetrics
from agents.base_agent import BaseAgent, AgentState
from agents.momentum_agent import MomentumAgent
from agents.mean_reversion_agent import MeanReversionAgent
from agents.fundamental_agent import FundamentalAgent
from agents.market_maker_agent import MarketMakerAgent
from agents.noise_trader import NoiseTrader
from inference.prompt_templates import MOMENTUM_CHARTER, get_fundamental_charter
from inference.vllm_client import VLLMClient, parse_llm_output

# Instantiate each agent
agents = [
    MomentumAgent("mom_1"),
    MomentumAgent("mom_2"),
    MeanReversionAgent("mr_1"),
    FundamentalAgent("fund_1", fair_value=100.0),
    MarketMakerAgent("mm_1"),
    NoiseTrader("noise_1"),
]
for a in agents:
    print(f"  {a.agent_type:15s} id={a.agent_id}")

# Verify fundamental charter has fair value
f = FundamentalAgent("f_test", fair_value=42.50)
assert "42.50" in f.charter, f"Fair value not in charter: {f.charter[:80]}"
print("  Fundamental charter injection: OK")

# Test JSON parser
assert parse_llm_output('{"action":"buy","price":99.5,"quantity":3}') is not None
assert parse_llm_output('```json\n{"action":"sell","price":101,"quantity":5}\n```') is not None
assert parse_llm_output("garbage") is None
assert parse_llm_output('{"action":"hold"}')["action"] == "hold"
print("  LLM output parser: OK")

# Test market state serializer
book = OrderBook()
book.set_tick(1)
book.submit_order(Order("b1", Side.BUY, 99.0, 5, 1))
book.submit_order(Order("s1", Side.SELL, 101.0, 5, 2))
state_str = market_state_to_string(book, "m1", 0, 10000.0, [100.0, 99.5, 100.2])
assert "Best Bid: 99.00" in state_str
assert "Best Ask: 101.00" in state_str
assert "Your Position: 0 units" in state_str
print("  Market state serializer: OK")

print("\nAll Phase 2 checks passed.")