stock-ai-agent/backend/app/models/stock.py
2026-02-03 10:08:15 +08:00

49 lines
2.2 KiB
Python

"""
股票相关的Pydantic模型
"""
from datetime import date
from typing import Optional, List
from pydantic import BaseModel, Field
class StockQuote(BaseModel):
"""股票行情"""
ts_code: str = Field(..., description="股票代码")
name: Optional[str] = Field(None, description="股票名称")
trade_date: Optional[str] = Field(None, description="交易日期")
open: Optional[float] = Field(None, description="开盘价")
high: Optional[float] = Field(None, description="最高价")
low: Optional[float] = Field(None, description="最低价")
close: Optional[float] = Field(None, description="收盘价")
pre_close: Optional[float] = Field(None, description="昨收价")
change: Optional[float] = Field(None, description="涨跌额")
pct_chg: Optional[float] = Field(None, description="涨跌幅%")
vol: Optional[float] = Field(None, description="成交量(手)")
amount: Optional[float] = Field(None, description="成交额(千元)")
class KLineData(BaseModel):
"""K线数据"""
ts_code: str = Field(..., description="股票代码")
trade_date: str = Field(..., description="交易日期")
open: float = Field(..., description="开盘价")
high: float = Field(..., description="最高价")
low: float = Field(..., description="最低价")
close: float = Field(..., description="收盘价")
vol: float = Field(..., description="成交量")
amount: Optional[float] = Field(None, description="成交额")
class TechnicalIndicators(BaseModel):
"""技术指标"""
ma5: Optional[List[float]] = Field(None, description="5日均线")
ma10: Optional[List[float]] = Field(None, description="10日均线")
ma20: Optional[List[float]] = Field(None, description="20日均线")
macd_dif: Optional[List[float]] = Field(None, description="MACD DIF")
macd_dea: Optional[List[float]] = Field(None, description="MACD DEA")
macd: Optional[List[float]] = Field(None, description="MACD柱")
rsi: Optional[List[float]] = Field(None, description="RSI")
kdj_k: Optional[List[float]] = Field(None, description="KDJ K值")
kdj_d: Optional[List[float]] = Field(None, description="KDJ D值")
kdj_j: Optional[List[float]] = Field(None, description="KDJ J值")