api/outside_api_command_callback.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
cancel_strategy/s_l_h_cancel_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
code_attribute/gpcode_manager.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
trade/auto_add_want_buy_strategy.py | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
api/outside_api_command_callback.py
@@ -20,7 +20,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, HumanForbiddenManager, CodesContinueBuyMoneyManager HumanRemoveForbiddenManager, HumanForbiddenManager, CodesContinueBuyMoneyManager, HumanRemoveWantBuyCodesManager 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 @@ -310,6 +310,7 @@ elif operate == outside_api_command_manager.OPERRATE_DELETE: trade_record_log_util.remove_want_buy(code) gpcode_manager.WantBuyCodesManager().remove_code(code) HumanRemoveWantBuyCodesManager().add_code(code) elif operate == outside_api_command_manager.OPERRATE_GET: codes = gpcode_manager.WantBuyCodesManager().list_code_cache() datas = [] cancel_strategy/s_l_h_cancel_strategy.py
@@ -2929,7 +2929,7 @@ if total_datas[place_order_index]['val']['time'] >= time_str: return False, "L1时间<=下单时间" human_rate = CancelRateHumanSettingManager().get_l_down(code) if human_rate and human_rate > 0.7: if human_rate and human_rate >= 0.7: return False, "人为设置撤单比例大于0.7" volume_rate = code_volumn_manager.CodeVolumeManager().get_volume_rate(code) code_attribute/gpcode_manager.py
@@ -211,6 +211,59 @@ return self.__want_buy_codes_cache # 人为移想的代码 class HumanRemoveWantBuyCodesManager: __instance = None __db = 0 redisManager = redis_manager.RedisManager(0) __redis_key = "human_remove_want_buy_codes" def __new__(cls, *args, **kwargs): if not cls.__instance: cls.__instance = super(HumanRemoveWantBuyCodesManager, cls).__new__(cls, *args, **kwargs) # 初始化设置 # 获取交易窗口的锁 cls.__instance.__want_buy_codes_cache = RedisUtils.smembers(cls.__get_redis(), cls.__redis_key) return cls.__instance __want_buy_codes_cache = set() @classmethod def __get_redis(cls): return cls.redisManager.getRedis() def clear(self): RedisUtils.delete(self.__get_redis(), self.__redis_key) def add_code(self, code): self.__want_buy_codes_cache.add(code) RedisUtils.sadd(self.__get_redis(), self.__redis_key, code) RedisUtils.expire(self.__get_redis(), self.__redis_key, tool.get_expire()) def remove_code(self, code): self.__want_buy_codes_cache.discard(code) RedisUtils.srem_async(self.__db, self.__redis_key, code) def sync(self): codes = self.list_code() self.__want_buy_codes_cache.clear() if codes: self.__want_buy_codes_cache |= set(codes) def is_in(self, code): return RedisUtils.sismember(self.__get_redis(), self.__redis_key, code) def is_in_cache(self, code): return code in self.__want_buy_codes_cache def list_code(self): return RedisUtils.smembers(self.__get_redis(), self.__redis_key) def list_code_cache(self): return self.__want_buy_codes_cache @tool.singleton class HumanRemoveForbiddenManager: """ @@ -642,8 +695,6 @@ @return: """ return self.__buy_money_dict.get(code) def __parse_codes_data(code_datas): trade/auto_add_want_buy_strategy.py
@@ -7,6 +7,7 @@ from code_attribute import gpcode_manager, code_nature_analyse from code_attribute.code_volumn_manager import CodeVolumeManager from code_attribute.gpcode_manager import HumanRemoveWantBuyCodesManager from log_module.log import logger_debug from third_data import kpl_data_manager from third_data.history_k_data_manager import HistoryKDataManager @@ -35,7 +36,8 @@ 执行自动加想策略 @return: """ if constant.AUTO_ADD_WANT_BUY_CODES_TIME_RANGES[0] < tool.get_now_time_str() < constant.AUTO_ADD_WANT_BUY_CODES_TIME_RANGES[1]: if constant.AUTO_ADD_WANT_BUY_CODES_TIME_RANGES[0] < tool.get_now_time_str() < \ constant.AUTO_ADD_WANT_BUY_CODES_TIME_RANGES[1]: pass else: # 不在加想时段内 @@ -52,6 +54,9 @@ for code in codes: try: if HumanRemoveWantBuyCodesManager().is_in_cache(code): # 人为移想就不要加想了 continue if not tool.is_can_buy_code(code): continue limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)