mathidot's picture
build option trading agent modules
8f1601b
raw
history blame contribute delete
966 Bytes
from __future__ import annotations
import json
from smolagents import tool
from market_data.providers import get_price_history
from .vol_optimizer import optimize_volatility_signal
@tool
def optimize_volatility_signal_parameters(
symbol: str,
signal: str = "long_vol",
period: str = "3y",
) -> str:
"""Scan simple realized-volatility signal parameters and compare best vs baseline.
Args:
symbol: Yahoo Finance ticker.
signal: long_vol or short_vol.
period: Yahoo Finance history period.
"""
try:
history = get_price_history(symbol, period=period, interval="1d")
result = optimize_volatility_signal(history["Close"], signal=signal)
return json.dumps({"status": "success", "symbol": symbol.upper(), **result}, ensure_ascii=False, indent=2)
except Exception as exc:
return json.dumps({"status": "error", "symbol": symbol, "message": str(exc)}, ensure_ascii=False, indent=2)