File size: 966 Bytes
8f1601b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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)