from datetime import datetime class hold_data: def __init__(self, data: dict): self.stock = None self.price = None self.amount = None self.cost = None self.profit = None self.profit_rate = None class state: def __init__(self): self.data = {} self.init() # 初始化 def init(self): self.data = { "create_date": "", "position_list": {}, "sell_request_list": {}, "buy_request_list": {}, "high_stock_list": {}, "low_stock_list": {}, "reason_to_sell": "", "history_buy_list": {}, "history_sell_list": {}, } def get_buy_requests(self): return self.data["buy_request_list"] def clear_buy_requests(self): """ 清空买入请求列表 """ self.data["buy_request_list"] = {} def reset(self): self.init() def set_state_datetime(self, key: str, value: datetime) -> None: """ 设置状态值 :param key: 状态键 :param value: 状态值 """ self.data[key] = value def set_hold_stock(self, stock: str, data: dict) -> None: """ 设置持仓股票数据 :param stock: 股票代码 :param data: hold_data 对象 """ hd = hold_data(data) if not isinstance(hd, hold_data): raise ValueError("data must be an instance of hold_data") self.data["position_list"][stock] = hd def set_high_stock(self, stock: str, data: dict) -> None: """ 设置高位股票数据 :param stock: 股票代码 :param data: hold_data 对象 """ hd = hold_data(data) if not isinstance(hd, hold_data): raise ValueError("data must be an instance of hold_data") self.data["high_stock_list"][stock] = hd def set_low_stock(self, stock: str, data: dict) -> None: """ 设置低位股票数据 :param stock: 股票代码 :param data: hold_data 对象 """ hd = hold_data(data) if not isinstance(hd, hold_data): raise ValueError("data must be an instance of hold_data") self.data["low_stock_list"][stock] = hd def set_sell_request(self, stock: str, data: dict, reason: str) -> None: """ 设置卖出请求数据 :param stock: 股票代码 :param data: hold_data 对象 """ hd = hold_data(data) if not isinstance(hd, hold_data): raise ValueError("data must be an instance of hold_data") self.data["sell_request_list"][stock + "_" + reason] = hd def set_buy_request(self, stock: str, data: dict, reason: str) -> None: """ 设置买入请求数据 :param stock: 股票代码 :param data: hold_data 对象 """ hd = hold_data(data) if not isinstance(hd, hold_data): raise ValueError("data must be an instance of hold_data") self.data["buy_request_list"][stock + "_" + reason] = hd def clear_buys_requests(self): """ 清空买入请求列表 """ self.data["buy_request_list"] = {} def get_sell_reason(self): return self.data["reason_to_sell"] def set_sell_reason(self, reason: str): """ 设置卖出原因 :param reason: 卖出原因 """ self.data["reason_to_sell"] = reason def get_sell_requests(self): """ 获取卖出请求列表 :return: 卖出请求列表 """ return self.data["sell_request_list"] def get_yesterday_high_list(self): """ 获取昨日涨停股票列表 :return: 昨日涨停股票列表 """ return self.data["high_stock_list"] def get_hold_list(self): return self.data["position_list"]