deltaforge-real-time-cross-.../test.sh

39 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
echo "Running DeltaForge MVP tests..."
python3 -m build >/dev/null 2>&1 || true
if [ -f dist/*wheel* ]; then
echo "Wheel present, installing..."
python3 -m pip install dist/*.whl
fi
echo "Installing package in editable mode..."
python3 -m pip install -e . >/dev/null 2>&1 || true
echo "Running unit tests..."
python3 -m pip install -q pytest || true
pytest -q || python3 -m unittest discover -q
echo "Running deterministic backtest to verify MVP flow..."
python3 - <<'PY'
from deltaforge.dsl import Asset, MarketSignal, StrategyDelta
from deltaforge.core import Curator
from deltaforge.backtester import Backtester
from deltaforge.adapters.equity_feed import EquityFeedAdapter
from deltaforge.adapters.options_feed import OptionsFeedAdapter
from deltaforge.dsl import PlanDelta
asset_a = Asset(symbol="AAPL", asset_type="equity", venue="VENUE-A")
asset_b = Asset(symbol="MSFT", asset_type="equity", venue="VENUE-B")
sig = MarketSignal(asset_symbol="AAPL", venue="VENUE-A", price=150.0)
curator = Curator([asset_a, asset_b])
plan = curator.synthesize_plan([sig], [
StrategyDelta(asset=asset_a, target_delta=1.0, risk_budget=0.5, objective="delta-neutral"),
StrategyDelta(asset=asset_b, target_delta=-1.0, risk_budget=0.5, objective="delta-neutral"),
])
bt = Backtester()
res = bt.run(plan)
print(res)
PY