| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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 = {} |
| | |
| | | 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 |
| | |
| | | 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 |
| | | |
| | |
| | | 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, \ |
| | |
| | | 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) |
| | |
| | | # 如果成交了需要刷新委托列表 |
| | | 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: |
| | |
| | | |
| | | 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 |
| | |
| | | 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) |
| | | |
| | | |
| | | # 保存交易成功的数据 |