deltaforge-real-time-cross-.../deltaforge/dsl.py

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