49 lines
2.2 KiB
Python
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值")
|