29 lines
888 B
Python
29 lines
888 B
Python
from __future__ import annotations
|
|
|
|
# Lightweight, permissive DSL primitives to support MVP tests.
|
|
|
|
class Asset:
|
|
def __init__(self, **kwargs):
|
|
self.__dict__.update(kwargs)
|
|
|
|
class MarketSignal:
|
|
def __init__(self, asset=None, price=0.0, timestamp=0.0, delta=None, meta=None):
|
|
self.asset = asset
|
|
self.price = price
|
|
self.timestamp = timestamp
|
|
self.delta = delta
|
|
self.meta = meta or {}
|
|
|
|
class StrategyDelta:
|
|
def __init__(self, **kwargs):
|
|
self.__dict__.update(kwargs)
|
|
|
|
class PlanDelta:
|
|
def __init__(self, **kwargs):
|
|
self.__dict__.update(kwargs)
|
|
# Backwards-compat: expose both 'deltas' and 'delta'
|
|
if hasattr(self, "deltas") and not hasattr(self, "delta"):
|
|
self.delta = self.deltas
|
|
if hasattr(self, "delta") and not hasattr(self, "deltas"):
|
|
self.deltas = self.delta
|