From 6e71fbcb119e7068ba35380edaa5cc66e7c71f1b Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 27 十月 2022 16:21:05 +0800 Subject: [PATCH] 交易体系完善 --- trade_gui.py | 60 +++++++++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 45 insertions(+), 15 deletions(-) diff --git a/trade_gui.py b/trade_gui.py index 2d218d1..6f0abc8 100644 --- a/trade_gui.py +++ b/trade_gui.py @@ -8,22 +8,15 @@ import random import win32gui -import win32api import win32con -import global_util +import constant import gpcode_manager +import l2_trade_util import redis_manager import tool from log import * -from threading import Thread - - -def async_call(fn): - def wrapper(*args, **kwargs): - Thread(target=fn, args=args, kwargs=kwargs).start() - - return wrapper +from tool import async_call class THSGuiTrade(object): @@ -256,7 +249,7 @@ # raise Exception(error) # TODO 鏆傛椂涓嶉獙璇佹定鍋滀环 - if not global_util.TEST: + if not constant.TEST: if abs(float(limit_up_price_now) - float(limit_up_price)) >= 0.01: error = "娑ㄥ仠浠烽獙璇佸嚭閿� {}-{}".format(limit_up_price, limit_up_price_now) raise Exception(error) @@ -271,7 +264,11 @@ win32gui.PostMessage(win, win32con.WM_KEYDOWN, 66, 0); logger_trade_gui.info("鎵ц涔板叆缁撴潫锛歝ode-{} 鑰楁椂:{}".format(code, int(round(time.time() * 1000)) - start)) - self.close_delegate_success_dialog() + # 杩囨椂 + # self.close_delegate_success_dialog() + + self.refresh_data() + # 寰幆璇诲彇涓嬪崟缁撴灉,鏈�澶氱瓑寰�10s # for i in range(0, 50): # hwnd = self.getTradeResultWin() @@ -388,6 +385,27 @@ self.buy_cancel_lock.release() # 娓呯┖浠g爜妗� self.input_number(code_input, "") + + # 鍒锋柊浜ゆ槗绐楀彛鏁版嵁 + @async_call + def refresh_data(self): + # 鑾峰彇鍒颁笓涓氫笅鍗曢〉闈� + win = self.getCancelBuyWin() + child_win = None + refresh_btn = None + for i in range(0, 20): + child_win = win32gui.FindWindowEx(win, child_win, "#32770", None) + if not child_win: + break + if not win32gui.IsWindowVisible(child_win): + continue + temp = win32gui.FindWindowEx(child_win, None, "Button", "杩樺師") + if temp: + refresh_btn = win32gui.GetDlgItem(child_win, 0x00000457) + break + if refresh_btn: + # 鐐瑰嚮鍒锋柊 + THSGuiUtil.click(refresh_btn) class THSGuiUtil: @@ -764,8 +782,20 @@ for code in old_codes: if code not in codes_: cls.cancel_distribute_win_for_code(code) - add_codes = codes[0:10] - del_codes = codes[10:] + + # 鍒犻櫎绂佹鐨勪唬鐮� + new_codes = [] + new_delete_codes = [] + for code in codes: + if not l2_trade_util.is_in_forbidden_trade_codes(code): + # 鍙栨秷鍒嗛厤 + new_codes.append(code) + else: + new_delete_codes.append(code) + + add_codes = new_codes[0:10] + del_codes = new_codes[10:] + del_codes.extend(new_delete_codes) for code in del_codes: cls.cancel_distribute_win_for_code(code) @@ -813,7 +843,7 @@ if __name__ == '__main__': - THSGuiTrade().buy("002853", "18.98", THSBuyWinManagerNew.get_buy_wins()[5]) + THSGuiTrade().buy("002900", "16.18") # GUITest().test_distribute() # try: # THSGuiUtil.set_buy_window_code(0x000112D0, "000333") -- Gitblit v1.8.0