Administrator
1 天以前 8d1af291069dbec0fcf59f9e38d56b1f788df244
目录调整
5个文件已修改
142 ■■■■ 已修改文件
api/outside_api_command_callback.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
code_attribute/gpcode_manager.py 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/huaxin_trade_server.py 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_manager.py 63 ●●●●● 补丁 | 查看 | 原始文档 | 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
    HumanRemoveForbiddenManager, HumanForbiddenManager, CodesContinueBuyMoneyManager
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
@@ -60,7 +60,7 @@
from trade.sell import sell_manager
from trade.sell.sell_rule_manager import TradeRuleManager, SellRule
from trade.trade_data_manager import RadicalBuyDealCodesManager
from trade.trade_manager import TradeTargetCodeModeManager, AutoCancelSellModeManager, CodesContinueBuyMoneyManager, \
from trade.trade_manager import TradeTargetCodeModeManager, AutoCancelSellModeManager, \
    CodesTradeStateManager
from settings.trade_setting import MarketSituationManager, TradeBlockBuyModeManager
from utils import socket_util, data_export_util, tool, huaxin_util, output_util, global_util, init_data_util
code_attribute/gpcode_manager.py
@@ -9,7 +9,7 @@
from db.mysql_data_delegate import Mysqldb
from db.redis_manager_delegate import RedisUtils
from log_module import log_export, async_log_util
from log_module.log import logger_pre_close_price, logger_debug
from log_module.log import logger_pre_close_price, logger_debug, logger_trade
from trade import trade_record_log_util
from utils import tool
import decimal
@@ -582,6 +582,70 @@
        RedisUtils.delete(self.__get_redis(), "green-trade-codes")
class CodesContinueBuyMoneyManager:
    """
    代码续买金额管理
    """
    __db = 2
    __redis_manager = redis_manager.RedisManager(2)
    __instance = None
    __buy_money_dict = {}
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(CodesContinueBuyMoneyManager, cls).__new__(cls, *args, **kwargs)
            cls.__load_datas()
        return cls.__instance
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    @classmethod
    def __load_datas(cls):
        __redis = cls.__get_redis()
        # 初始化数据
        keys = RedisUtils.keys(__redis, "continue_buy_money-*", auto_free=False)
        if keys:
            for key in keys:
                code = key.split("-")[-1]
                cls.__buy_money_dict[code] = int(RedisUtils.get(__redis, key, auto_free=False))
    def set_continue_buy_money(self, code, money):
        """
        设置续买金额
        @param code:
        @param money:
        @return:
        """
        self.__buy_money_dict[code] = money
        RedisUtils.setex_async(self.__db, f"continue_buy_money-{code}", tool.get_expire(), money)
        async_log_util.info(logger_trade, f"设置续买金额:{code}-{money}")
    def remove_continue_buy_money(self, code):
        """
        移除续买金额
        @param code:
        @return:
        """
        if code not in self.__buy_money_dict:
            return
        self.__buy_money_dict.pop(code)
        RedisUtils.delete_async(self.__db, f"continue_buy_money-{code}")
        async_log_util.info(logger_trade, f"移除续买金额:{code}")
    def get_continue_buy_money(self, code):
        """
        获取续买金额
        @param code:
        @return:
        """
        return self.__buy_money_dict.get(code)
def __parse_codes_data(code_datas):
    codes = []
    name_codes = {}
servers/huaxin_trade_server.py
@@ -18,7 +18,7 @@
from code_attribute import gpcode_manager, code_volumn_manager, global_data_loader, zyltgb_util
from code_attribute.code_l1_data_manager import L1DataManager
from code_attribute.gpcode_manager import CodePrePriceManager, CodesNameManager, \
    WantBuyCodesManager
    WantBuyCodesManager, CodesContinueBuyMoneyManager
from code_attribute.today_max_price_manager import MaxPriceInfoManager
from huaxin_client import l2_data_transform_protocol, l1_subscript_codes_manager
from huaxin_client.trade_transform_protocol import TradeResponse
@@ -60,7 +60,7 @@
    EveryLimitupBigDelegateOrderManager
from trade.sell.sell_rule_manager import TradeRuleManager
from trade.trade_data_manager import RadicalBuyDealCodesManager
from trade.trade_manager import CodesTradeStateManager, CodesContinueBuyMoneyManager
from trade.trade_manager import CodesTradeStateManager
from utils import socket_util, middle_api_protocol, tool, huaxin_util, global_util, trade_util, init_data_util, \
    output_util
trade/huaxin/huaxin_trade_api.py
@@ -14,6 +14,7 @@
import zmq
from code_attribute import gpcode_manager
from code_attribute.gpcode_manager import CodesContinueBuyMoneyManager
from huaxin_client import constant as huaxin_client_constant, huaxin_sinfo_util
from log_module import async_log_util
from log_module.log import hx_logger_trade_debug, hx_logger_trade_loop, hx_logger_trade_callback, logger_trade, \
@@ -22,7 +23,6 @@
from trade.huaxin import huaxin_trade_data_update, huaxin_trade_record_manager
from trade.huaxin.huaxin_trade_record_manager import TradeOrderIdManager
from trade.huaxin.huaxin_trade_order_processor import CancelOrderManager, HuaxinOrderEntity, TradeResultProcessor
# from trade.trade_manager import CodesContinueBuyMoneyManager
from utils import socket_util, huaxin_util, tool
__response_thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=15)
@@ -86,8 +86,7 @@
                    # 如果成交了需要刷新委托列表
                    huaxin_trade_data_update.add_delegate_list("买成交")
                    # 订单成交回调,移除续买金额+拉黑
                    # TODO
                    # CodesContinueBuyMoneyManager().remove_continue_buy_money(order.code)
                    CodesContinueBuyMoneyManager().remove_continue_buy_money(order.code)
            need_cancel = TradeResultProcessor.process_buy_order(order)
            # if need_cancel:
trade/trade_manager.py
@@ -13,6 +13,7 @@
from cancel_strategy.s_l_h_cancel_strategy import CancelRateHumanSettingManager
from code_attribute import gpcode_manager
from code_attribute.gpcode_manager import CodesContinueBuyMoneyManager
from db import mysql_data_delegate as mysql_data, redis_manager_delegate as redis_manager
from db.mysql_data_delegate import Mysqldb
from db.redis_manager_delegate import RedisUtils
@@ -271,68 +272,6 @@
        return codes
    # 设置交易账户的可用金额
class CodesContinueBuyMoneyManager:
    """
    代码续买金额管理
    """
    __db = 2
    __redis_manager = redis_manager.RedisManager(2)
    __instance = None
    __buy_money_dict = {}
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(CodesContinueBuyMoneyManager, cls).__new__(cls, *args, **kwargs)
            cls.__load_datas()
        return cls.__instance
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    @classmethod
    def __load_datas(cls):
        __redis = cls.__get_redis()
        # 初始化数据
        keys = RedisUtils.keys(__redis, "continue_buy_money-*", auto_free=False)
        if keys:
            for key in keys:
                code = key.split("-")[-1]
                cls.__buy_money_dict[code] = int(RedisUtils.get(__redis, key, auto_free=False))
    def set_continue_buy_money(self, code, money):
        """
        设置续买金额
        @param code:
        @param money:
        @return:
        """
        self.__buy_money_dict[code] = money
        RedisUtils.setex_async(self.__db, f"continue_buy_money-{code}", tool.get_expire(), money)
        async_log_util.info(logger_trade, f"设置续买金额:{code}-{money}")
    def remove_continue_buy_money(self, code):
        """
        移除续买金额
        @param code:
        @return:
        """
        if code not in self.__buy_money_dict:
            return
        self.__buy_money_dict.pop(code)
        RedisUtils.delete_async(self.__db, f"continue_buy_money-{code}")
        async_log_util.info(logger_trade, f"移除续买金额:{code}")
    def get_continue_buy_money(self, code):
        """
        获取续买金额
        @param code:
        @return:
        """
        return self.__buy_money_dict.get(code)
# 保存交易成功的数据