| | |
| | | item = results[0]["quotes"][0] |
| | | result = {"code": 0, "data": {"price": item["bid_p"], "volume": item["bid_v"]}} |
| | | self.send_response(result, client_id, request_id) |
| | | elif ctype == "get_current_l1_codes": |
| | | codes = L1DataProcessor.get_latest_update_codes() |
| | | result = {"code": 0, "data": list(codes)} |
| | | self.send_response(result, client_id, request_id) |
| | | |
| | | |
| | | class L1DataProcessor: |
| | | __current_price_dict = {} |
| | | current_buy1_dict = {} |
| | | # L1数据更新时间 |
| | | __l1_data_update_time_dict = {} |
| | | |
| | | # 获取最近更新L1的代码 |
| | | @classmethod |
| | | def get_latest_update_codes(cls): |
| | | now_time = time.time() |
| | | codes = set() |
| | | for code in cls.__l1_data_update_time_dict: |
| | | if now_time - cls.__l1_data_update_time_dict[code] < 10: |
| | | codes.add(code) |
| | | return codes |
| | | |
| | | @classmethod |
| | | def set_l1_trade_codes_info(cls, data_json): |
| | |
| | | cls.__save_l1_current_price(datas) |
| | | cls.process_for_sell(datas) |
| | | |
| | | |
| | | |
| | | @classmethod |
| | | def process_for_sell(cls, datas): |
| | | rules = TradeRuleManager().list_can_excut_rules_cache(types=[TradeRuleManager.TYPE_SELL]) |
| | |
| | | if rules: |
| | | for d in datas: |
| | | code = d[0] |
| | | cls.__l1_data_update_time_dict[code] = time.time() |
| | | # 格式 (代码,现价,涨幅,量,更新时间,买1价格,买1量) |
| | | buy1_volume = d[6] |
| | | buy1_price = d[5] |