Administrator
6 天以前 d91210fd9d205558fb3a0acb7e5cc8c6f0c600f2
人为移想管理
4个文件已修改
67 ■■■■■ 已修改文件
api/outside_api_command_callback.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cancel_strategy/s_l_h_cancel_strategy.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/gpcode_manager.py 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/auto_add_want_buy_strategy.py 7 ●●●● 补丁 | 查看 | 原始文档 | 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)