fix (frozen=True, slots=True)
This commit is contained in:
@@ -7,7 +7,7 @@ from pathlib import Path
|
|||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class SignalConfig:
|
class SignalConfig:
|
||||||
"""单个交易信号的数据源及开仓限制配置。"""
|
"""单个交易信号的数据源及开仓限制配置。"""
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ class SignalConfig:
|
|||||||
gt_last_price_is_open: bool = False
|
gt_last_price_is_open: bool = False
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class GlobalConfig:
|
class GlobalConfig:
|
||||||
"""所有主机共享的系统配置。"""
|
"""所有主机共享的系统配置。"""
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ class GlobalConfig:
|
|||||||
signals: dict[str, SignalConfig] = field(default_factory=dict)
|
signals: dict[str, SignalConfig] = field(default_factory=dict)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class AccountConfig:
|
class AccountConfig:
|
||||||
"""当前主机所使用的账户及交易策略参数。"""
|
"""当前主机所使用的账户及交易策略参数。"""
|
||||||
|
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import secrets
|
|||||||
from .http import get_json
|
from .http import get_json
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class SignalItem:
|
class SignalItem:
|
||||||
signal_key: str = ""; code: str = ""; name: str = ""; desc: str = ""; last_close: float = 0
|
signal_key: str = ""; code: str = ""; name: str = ""; desc: str = ""; last_close: float = 0
|
||||||
tech_indicator: dict[str, float] = field(default_factory=dict)
|
tech_indicator: dict[str, float] = field(default_factory=dict)
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class SignalResult:
|
class SignalResult:
|
||||||
code: str = ""; total: int = 0; updated: str = ""; data: dict[str, SignalItem] = field(default_factory=dict); message: str = ""
|
code: str = ""; total: int = 0; updated: str = ""; data: dict[str, SignalItem] = field(default_factory=dict); message: str = ""
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ def _number(value: Any, kind: type = float) -> Any:
|
|||||||
return kind()
|
return kind()
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class OrderItem:
|
class OrderItem:
|
||||||
"""由 QMT 委托明细解析得到的标准订单记录。"""
|
"""由 QMT 委托明细解析得到的标准订单记录。"""
|
||||||
id: str
|
id: str
|
||||||
@@ -64,7 +64,7 @@ class OrderItem:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class PositionItem:
|
class PositionItem:
|
||||||
stock_code: str = ""
|
stock_code: str = ""
|
||||||
stock_name: str = ""
|
stock_name: str = ""
|
||||||
@@ -122,7 +122,7 @@ class PositionItem:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Assets:
|
class Assets:
|
||||||
total: float = 0.0
|
total: float = 0.0
|
||||||
available: float = 0.0
|
available: float = 0.0
|
||||||
@@ -136,7 +136,7 @@ class Assets:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Portfolio:
|
class Portfolio:
|
||||||
assets: Assets
|
assets: Assets
|
||||||
positions: dict[str, PositionItem]
|
positions: dict[str, PositionItem]
|
||||||
@@ -152,7 +152,7 @@ def _trade_datetime(data: dict[str, Any]) -> datetime | None:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Tick:
|
class Tick:
|
||||||
last_price: float = 0.0
|
last_price: float = 0.0
|
||||||
last_close: float = 0.0
|
last_close: float = 0.0
|
||||||
@@ -169,7 +169,7 @@ class Tick:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class HistoryDataRequest:
|
class HistoryDataRequest:
|
||||||
length: int = 10
|
length: int = 10
|
||||||
period: str = ""
|
period: str = ""
|
||||||
@@ -178,7 +178,7 @@ class HistoryDataRequest:
|
|||||||
skip_paused: bool = True
|
skip_paused: bool = True
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class MarketDataRequest:
|
class MarketDataRequest:
|
||||||
fields: list[str] = field(default_factory=list)
|
fields: list[str] = field(default_factory=list)
|
||||||
stocks: list[str] = field(default_factory=list)
|
stocks: list[str] = field(default_factory=list)
|
||||||
@@ -189,7 +189,7 @@ class MarketDataRequest:
|
|||||||
count: int = 0
|
count: int = 0
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class FinancialDataRequest:
|
class FinancialDataRequest:
|
||||||
tabname: str = ""; colname: str = ""; market: str = ""; code: str = ""
|
tabname: str = ""; colname: str = ""; market: str = ""; code: str = ""
|
||||||
report_type: str = ""; barpos: int = 0
|
report_type: str = ""; barpos: int = 0
|
||||||
@@ -197,22 +197,22 @@ class FinancialDataRequest:
|
|||||||
start_date: str = ""; end_date: str = ""
|
start_date: str = ""; end_date: str = ""
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class FactorDataRequest:
|
class FactorDataRequest:
|
||||||
field_list: list[str] = field(default_factory=list); stock_list: list[str] = field(default_factory=list)
|
field_list: list[str] = field(default_factory=list); stock_list: list[str] = field(default_factory=list)
|
||||||
stock_code: str = ""; start_date: str = ""; end_date: str = ""
|
stock_code: str = ""; start_date: str = ""; end_date: str = ""
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class BSMPriceRequest:
|
class BSMPriceRequest:
|
||||||
option_type: str; object_prices: Any; strike_price: float; risk_free: float; sigma: float; days: int; dividend: float
|
option_type: str; object_prices: Any; strike_price: float; risk_free: float; sigma: float; days: int; dividend: float
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class BSMIVRequest:
|
class BSMIVRequest:
|
||||||
option_type: str; object_prices: float; strike_price: float; option_price: float; risk_free: float; days: int; dividend: float
|
option_type: str; object_prices: float; strike_price: float; option_price: float; risk_free: float; days: int; dividend: float
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class LocalDataRequest:
|
class LocalDataRequest:
|
||||||
stock_code: str; start_time: str = ""; end_time: str = ""; period: str = ""; divid_type: str = ""; count: int = 0
|
stock_code: str; start_time: str = ""; end_time: str = ""; period: str = ""; divid_type: str = ""; count: int = 0
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from .state import State
|
|||||||
from .watch import DipWatch
|
from .watch import DipWatch
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Runtime:
|
class Runtime:
|
||||||
"""集中保存趋势策略运行期间共享的依赖和状态。
|
"""集中保存趋势策略运行期间共享的依赖和状态。
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from sdk import OrderItem, PositionItem
|
|||||||
TERMINAL_STATUSES = {"53", "54", "56", "57"}
|
TERMINAL_STATUSES = {"53", "54", "56", "57"}
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class StateItem:
|
class StateItem:
|
||||||
code: str
|
code: str
|
||||||
base_order_id: str = ""
|
base_order_id: str = ""
|
||||||
@@ -35,7 +35,7 @@ class StateItem:
|
|||||||
return self.added_amount / self.added_qty if self.added_qty else 0.0
|
return self.added_amount / self.added_qty if self.added_qty else 0.0
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class PendingOrder:
|
class PendingOrder:
|
||||||
order_id: str
|
order_id: str
|
||||||
kind: str
|
kind: str
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from datetime import datetime, timedelta
|
|||||||
from threading import Lock
|
from threading import Lock
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class _Entry:
|
class _Entry:
|
||||||
last_close: float
|
last_close: float
|
||||||
expires_at: datetime
|
expires_at: datetime
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from strategy.trend.watch import DipWatch
|
|||||||
from .state import TState
|
from .state import TState
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class Runtime:
|
class Runtime:
|
||||||
client: Client
|
client: Client
|
||||||
global_cfg: GlobalConfig
|
global_cfg: GlobalConfig
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ BUYING = "BUYING"
|
|||||||
DONE = "DONE"
|
DONE = "DONE"
|
||||||
|
|
||||||
|
|
||||||
@dataclass(slots=True)
|
@dataclass(frozen=True, slots=True)
|
||||||
class TStateItem:
|
class TStateItem:
|
||||||
code: str
|
code: str
|
||||||
base_qty: int = 0
|
base_qty: int = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user