From 3a87b1c89a76d858e8e7e4e54ff360dc0b8670f5 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 11 九月 2025 16:27:20 +0800 Subject: [PATCH] L撤删除L前撤单与L后后半段撤单 --- trade/trade_manager.py | 48 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 34 insertions(+), 14 deletions(-) diff --git a/trade/trade_manager.py b/trade/trade_manager.py index add8ec3..a7e5414 100644 --- a/trade/trade_manager.py +++ b/trade/trade_manager.py @@ -11,7 +11,9 @@ import concurrent.futures +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 @@ -30,8 +32,10 @@ from trade.trade_data_manager import AccountMoneyManager, RadicalBuyDealCodesManager from utils import import_util, tool, huaxin_util -trade_gui = import_util.import_lib("trade.trade_gui") - +try: + trade_gui = import_util.import_lib("trade.trade_gui") +except: + pass __db = 2 __redis_manager = redis_manager.RedisManager(2) @@ -91,6 +95,8 @@ # 浜ゆ槗鐩爣绁ㄦā寮� class TradeTargetCodeModeManager: + # 鍙拱杈ㄨ瘑搴� + MODE_ONLY_BUY_SPECIAL_CODES = 2 # 鍙拱鎯充拱鍗� MODE_ONLY_BUY_WANT_CODES = 1 # 涔版墍鏈� @@ -117,7 +123,7 @@ self.__trade_buy_mode_cache = self.get_mode() def set_mode(self, mode): - if mode != self.MODE_ONLY_BUY_WANT_CODES and mode != self.MODE_BUY_ALL: + if mode != self.MODE_ONLY_BUY_WANT_CODES and mode != self.MODE_BUY_ALL and mode != self.MODE_ONLY_BUY_SPECIAL_CODES: raise Exception("mode鍙傛暟鍊奸敊璇�") self.__trade_buy_mode_cache = mode RedisUtils.setex(self.__get_redis(), "trade_buy_mode", tool.get_expire(), mode) @@ -128,7 +134,7 @@ # 榛樿璁剧疆涓哄彲浜ゆ槗 val = RedisUtils.get(cls.__get_redis(), "trade_buy_mode") if val is None: - return cls.MODE_BUY_ALL + return cls.MODE_ONLY_BUY_WANT_CODES return int(val) def get_mode_cache(self): @@ -415,7 +421,7 @@ @return: """ price = gpcode_manager.get_limit_up_price(code) - __buy(code, price, trade_constant.TRADE_STATE_NOT_TRADE, 0, last_data, last_data["index"], 0, exec_index=exec_index) + __buy(code, price, trade_constant.TRADE_STATE_NOT_TRADE, 0, last_data, last_data["index"], 0, exec_index=exec_index) # 涓柇涔板叆 @@ -436,7 +442,14 @@ mode)) if not can_buy: raise Exception(msg) + continue_buy_money = CodesContinueBuyMoneyManager().get_continue_buy_money(code) + if continue_buy_money: + # 璁剧疆浜嗙画涔伴噾棰濈殑 + money = continue_buy_money + count = tool.get_buy_volume_by_money(price, money) + if count < 4 and float(price) < 200: + count = 4 # if mode == OrderBeginPosInfo.MODE_RADICAL: # # 婵�杩涗拱鍏ラ噾棰濅负1鎵� @@ -491,6 +504,12 @@ # 寮�濮嬪彇娑堜拱鍏� def start_cancel_buy(code, force=False): + """ + 寮�濮嬫挙鍗� + @param code: + @param force: + @return: + """ async_log_util.info(logger_trade, "{} trade_manager.start_cancel_buy 寮�濮�".format(code)) trade_state = __CodesTradeStateManager.get_trade_state_cache(code) try: @@ -569,16 +588,16 @@ continue # 涔板叆鎴愬姛 if code is not None and int(data["type"]) == 0: - l2_trade_util.forbidden_trade(code, msg="浜ゆ槗鎴愬姛", force=True) + if not CodesContinueBuyMoneyManager().get_continue_buy_money(code): + l2_trade_util.forbidden_trade(code, msg="浜ゆ槗鎴愬姛", force=True) state = CodesTradeStateManager().get_trade_state_cache(code) if state != trade_constant.TRADE_STATE_BUY_SUCCESS: - CodesTradeStateManager().set_trade_state(code, trade_constant.TRADE_STATE_BUY_SUCCESS) - # 鍒犻櫎涔版挙璁板綍鐨勪复鏃朵俊鎭� - kp_client_msg_manager.add_msg(code, "涔板叆鎴愪氦") - l2_data_manager.TradePointManager().delete_buy_point(code) - # 绉婚櫎浜ゆ槗绐楀彛鍒嗛厤 - if trade_gui is not None: - trade_gui.THSBuyWinManagerNew.cancel_distribute_win_for_code(code) + if not CodesContinueBuyMoneyManager().get_continue_buy_money(code): + # 娌¤缃画涔� + CodesTradeStateManager().set_trade_state(code, trade_constant.TRADE_STATE_BUY_SUCCESS) + # 鍒犻櫎涔版挙璁板綍鐨勪复鏃朵俊鎭� + kp_client_msg_manager.add_msg(code, "涔板叆鎴愪氦") + l2_data_manager.TradePointManager().delete_buy_point(code) # 浜ゆ槗鎴愬姛鏃堕棿杩囧幓3s涔嬪悗锛屼笖褰撳墠濮旀墭鍒楄〃閲岄潰杩樻湁璇ヤ唬鐮佹暟鎹氨鍐嶆鎵ц鎾ゅ崟 # 鏂扮増涓嬪崟涓嶅鐞� if not constant.IS_NEW_VERSION_PLACE_ORDER: @@ -657,7 +676,8 @@ def buy_success(code): # 鍔犲叆榛戝悕鍗� if not l2_trade_util.is_in_forbidden_trade_codes(code): - l2_trade_util.forbidden_trade(code, "buy success", force=True) + if not CodesContinueBuyMoneyManager().get_continue_buy_money(code): + l2_trade_util.forbidden_trade(code, "buy success", force=True) mode = TradePointManager().get_latest_place_order_mode(code) if mode is None: mode = OrderBeginPosInfo.MODE_NORMAL -- Gitblit v1.8.0