api/outside_api_command_callback.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
code_attribute/code_nature_analyse.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
code_attribute/gpcode_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/buy_radical/new_block_processor.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/outside_api_command_callback.py
@@ -19,7 +19,7 @@ from code_attribute.code_data_util import ZYLTGBUtil from code_attribute.code_l1_data_manager import L1DataManager from code_attribute.gpcode_manager import CodePrePriceManager, CodesNameManager, WantBuyCodesManager, \ HumanRemoveForbiddenManager HumanRemoveForbiddenManager, HumanForbiddenManager from db import mysql_data_delegate as mysql_data, redis_manager_delegate as redis_manager from db.redis_manager_delegate import RedisUtils from huaxin_client import l1_subscript_codes_manager @@ -298,6 +298,7 @@ l2_trade_util.remove_from_forbidden_trade_codes(code) # 加想买单要从黑名单移除 HumanRemoveForbiddenManager().add_code(code) HumanForbiddenManager().remove_code(code) name = gpcode_manager.get_code_name(code) if not name: results = HistoryKDatasUtils.get_gp_codes_names([code]) @@ -324,6 +325,7 @@ l2_trade_util.forbidden_trade(code, msg="手动加入 trade_server", force=True) WantBuyCodesManager().remove_code(code) HumanRemoveForbiddenManager().remove_code(code) HumanForbiddenManager().add_code(code) name = gpcode_manager.get_code_name(code) if not name: results = HistoryKDatasUtils.get_gp_codes_names([code]) @@ -332,6 +334,7 @@ elif operate == outside_api_command_manager.OPERRATE_DELETE: l2_trade_util.remove_from_forbidden_trade_codes(code) HumanRemoveForbiddenManager().add_code(code) HumanForbiddenManager().remove_code(code) elif operate == outside_api_command_manager.OPERRATE_GET: codes = gpcode_manager.BlackListCodeManager().list_codes_cache() datas = [] code_attribute/code_nature_analyse.py
@@ -405,7 +405,7 @@ max_price_info = d["high"], d # if max_price > float(limit_up_price): # return False rate = (float(limit_up_price) - min_price_info[1]["close"]) / min_price_info[1]["close"] rate = (max_price_info[1]["high"] - min_price_info[1]["low"]) / min_price_info[1]["low"] THRESHOLD_RATE = 0.319 * 2 if tool.is_ge_code(code) else 0.319 if rate >= THRESHOLD_RATE: return True, rate code_attribute/gpcode_manager.py
@@ -10,6 +10,7 @@ from db.redis_manager_delegate import RedisUtils from log_module import log_export from log_module.log import logger_pre_close_price, logger_debug from trade import trade_record_log_util from utils import tool import decimal @@ -246,6 +247,45 @@ return code in self.__codes_cache @tool.singleton class HumanForbiddenManager: """ 人为拉黑管理 """ __db = 0 redisManager = redis_manager.RedisManager(0) __redis_key = "human_forbidden_codes" __codes_cache = set() def __init__(self): self.__load_data() @classmethod def __get_redis(cls): return cls.redisManager.getRedis() def __load_data(self): self.__codes_cache = RedisUtils.smembers(self.__get_redis(), self.__redis_key) if self.__codes_cache is None: self.__codes_cache = set() def add_code(self, code): trade_record_log_util.add_common_msg(code, "人为加黑", f"") self.__codes_cache.add(code) RedisUtils.sadd_async(self.__db, self.__redis_key, code) RedisUtils.expire_async(self.__db, self.__redis_key, tool.get_expire()) def remove_code(self, code): trade_record_log_util.add_common_msg(code, "人为移黑", f"") self.__codes_cache.discard(code) RedisUtils.srem_async(self.__db, self.__redis_key, code) def is_in_cache(self, code): return code in self.__codes_cache # 暂停下单代码管理 # 与黑名单的区别是暂停交易代码只是不交易,不能移除L2监控位 class PauseBuyCodesManager: trade/buy_radical/new_block_processor.py
@@ -3,6 +3,7 @@ """ import constant from code_attribute import code_nature_analyse from code_attribute.gpcode_manager import HumanForbiddenManager from third_data import kpl_util, kpl_data_constant from trade import l2_trade_util, trade_record_log_util from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager @@ -199,7 +200,8 @@ blocks |= kpl_data_constant.limit_up_component_code_new_blocks_dict[code] if code in kpl_data_constant.limit_up_code_new_block_dict: blocks.add(kpl_data_constant.limit_up_code_new_block_dict[code]) if blocks and l2_trade_util.is_in_forbidden_trade_codes(code): if blocks and l2_trade_util.is_in_forbidden_trade_codes(code) and not HumanForbiddenManager().is_in_cache(code): # 没有人为拉黑才能移黑 l2_trade_util.remove_from_forbidden_trade_codes(code) # 加想买单要从黑名单移除 trade_record_log_util.add_common_msg(code, "新题材移黑", f"{blocks}")