Files
fx_quant_engine/options_quant_engine/tests/test_engine_output.py
T

47 lines
1.3 KiB
Python
Raw Normal View History

from datetime import datetime, timedelta, timezone
from pathlib import Path
from options_quant_engine import OptionsQuantEngine
def test_engine_signal_schema() -> None:
root = Path(__file__).resolve().parents[1]
engine = OptionsQuantEngine(config_dir=root / "config")
end = datetime.now(timezone.utc)
start = end - timedelta(days=200)
out = engine.run_asset("USDINR", start, end)
signal = out["signal"]
required = {
"engine",
"timestamp",
"asset",
"signal_type",
"signal_direction",
"signal_strength",
"confidence",
"regime",
"expected_volatility",
"risk_flags",
"drivers",
"recommended_action",
"position_sizing_multiplier",
}
assert required.issubset(signal.keys())
assert 0.0 <= signal["signal_strength"] <= 1.0
assert 0.0 <= signal["confidence"] <= 1.0
def test_engine_relative_value_schema() -> None:
root = Path(__file__).resolve().parents[1]
engine = OptionsQuantEngine(config_dir=root / "config")
end = datetime.now(timezone.utc)
start = end - timedelta(days=200)
out = engine.run_relative_value("USDINR", "EURINR", start, end)
assert "hedge_ratio" in out
assert "spread_zscore" in out
assert "signal" in out
assert 0.0 <= out["signal"]["signal_strength"] <= 1.0