from __future__ import annotations """ DeltaForge MVP Cross-Venue Demo --------------------------------- A tiny, self-contained module that demonstrates how two venues can coordinate to synthesize a delta-hedge plan across assets. This is intentionally small but production-friendly: it uses the existing DSL primitives (Asset, PlanDelta, StrategyDelta, LocalArbProblem, SharedSignals) and the lightweight ADMM-like coordinator already present in deltaforge.coordinator. Usage (run as script): - This will construct a minimal two-venue delta hedge and print the resulting plan. """ from typing import List from .dsl import Asset, MarketSignal, SharedSignals, LocalArbProblem, PlanDelta, StrategyDelta from .coordinator import Coordinator import time def build_demo_assets() -> List[Asset]: # Two assets representing two venues/assets we want to coordinate across a1 = Asset(id="venueA-apple", type="equity", symbol="AAPL", venue="venueA") a2 = Asset(id="venueB-apple", type="equity", symbol="AAPL", venue="venueB") return [a1, a2] def build_demo_signals(assets: List[Asset]) -> SharedSignals: # A tiny set of market signals; in a real system this would come from feeds signals = [ MarketSignal(asset=assets[0], timestamp=time.time(), price=150.0, source="demo"), MarketSignal(asset=assets[1], timestamp=time.time(), price=149.5, source="demo"), ] return SharedSignals(version=1, signals=signals, privacy_tag="public") def synthesize_cross_venue_plan() -> PlanDelta: # Build a minimal per-venue delta plan: venueA wants +10 delta, venueB wants -7 delta d1 = StrategyDelta(id="dA", assets=[Asset(id="venueA-AAPL", type="equity", symbol="AAPL", venue="venueA")], delta_positions={"AAPL": 10}, notes="venueA hedge") d2 = StrategyDelta(id="dB", assets=[Asset(id="venueB-AAPL", type="equity", symbol="AAPL", venue="venueB")], delta_positions={"AAPL": -7}, notes="venueB hedge") base_plan = PlanDelta(deltas=[d1, d2], timestamp=time.time(), author="demo", contract_id="deltaforge-demo") # Run the lightweight coordinator to reconcile deltas across venues coord = Coordinator(contract_id="deltaforge-demo") reconciled = coord.reconcile(base_plan) return reconciled def main(): assets = build_demo_assets() _signals = build_demo_signals(assets) plan = synthesize_cross_venue_plan() print("Demo Cross-Venue Plan:") print(plan) print("Signals:", _signals) if __name__ == "__main__": main()