deltaforge-real-time-cross-.../deltaforge_skeleton/tests/test_basic.py

43 lines
1.4 KiB
Python

import unittest
from deltaforge_skeleton.dsl import Asset, PlanDelta, StrategyDelta
from deltaforge_skeleton.curator import Curator
from deltaforge_skeleton.adapters.equity_feed import generate_equity_signals
from deltaforge_skeleton.adapters.options_feed import generate_options_signals
from deltaforge_skeleton.execution import ExecutionEngine
from deltaforge_skeleton.backtester import Backtester
class TestDeltaForgeSkeleton(unittest.TestCase):
def test_end_to_end_scenario(self):
# Simple two-asset delta hedge: AAPL and MSFT across two venues (conceptual)
aapl = Asset(symbol="AAPL", asset_type="equity")
msft = Asset(symbol="MSFT", asset_type="equity")
# Create two simple plan deltas to simulate actions on each venue
plan = PlanDelta(actions=[StrategyDelta(asset=aapl, delta=1.0), StrategyDelta(asset=msft, delta=-1.0)], timestamp=123.0)
curator = Curator()
# Shared signals and dual vars are placeholders for this MVP
class Dummy:
pass
shared = Dummy()
duals = Dummy()
curated = curator.enforce(plan, shared, duals)
eng = ExecutionEngine()
routed = eng.route(curated)
bt = Backtester()
pnl = bt.replay(curated)
self.assertTrue(len(routed) >= 1)
self.assertIsInstance(pnl, float)
def main():
unittest.main()
if __name__ == "__main__":
main()