18 lines
568 B
Python
18 lines
568 B
Python
from __future__ import annotations
|
|
from typing import List
|
|
from .dsl import PlanDelta, StrategyDelta
|
|
|
|
|
|
class Backtester:
|
|
"""Toy deterministic replay engine for end-to-end validation."""
|
|
|
|
def __init__(self, seed: int = 0):
|
|
self.seed = seed
|
|
|
|
def replay(self, plan: PlanDelta) -> float:
|
|
# Very naive replay: sum absolute deltas to produce a pseudo-PnL
|
|
pnl = sum(abs(a.delta) for a in plan.actions)
|
|
# Incorporate timestamp entropy for determinism in tests
|
|
pnl += (plan.timestamp or 0.0) * 1e-6
|
|
return float(pnl)
|