Administrator
4 天以前 48fb7a00951f91bdc707e5dd2d196e5bccb752c3
trade/trade_gui.py
@@ -11,12 +11,14 @@
import win32gui
import win32con
from code_attribute import gpcode_manager
from db.redis_manager_delegate import RedisUtils
from ocr import ocr_util
from trade import l2_trade_util
from db import redis_manager
from db import redis_manager_delegate as redis_manager
from log_module.log import *
from utils.tool import async_call
from utils import win32_util, capture_util
from utils import win32_util, capture_util, tool
class THSGuiTrade(object):
@@ -31,7 +33,7 @@
            cls.__instance.buy_lock = threading.RLock()
            cls.__instance.buy_cancel_locks = {}
            cls.__instance.buy_win_list = cls.get_buy_wins()
            print("交易窗口", cls.__instance.buy_win_list)
            # print("交易窗口", cls.__instance.buy_win_list)
            cls.__instance.using_buy_wins = set()
            cls.__instance.cancel_wins = cls.__instance.getCancelBuyWins()
        return cls.__instance
@@ -269,7 +271,7 @@
            # TODO 暂时不验证涨停价
            # if not constant.TEST:
            #     if abs(float(limit_up_price_now) - float(limit_up_price)) >= 0.01:
            #     if abs(float(limit_up_price_now) - float(limit_up_price)) >= 0.001:
            #         error = "涨停价验证出错 {}-{}".format(limit_up_price, limit_up_price_now)
            #         raise Exception(error)
@@ -604,13 +606,13 @@
    @classmethod
    def __save_code_win(cls, code, win):
        key = "buywin_distribute-{}".format(code)
        cls.__get_redis().setex(key, tool.get_expire(), win)
        RedisUtils.setex(cls.__get_redis(), key, tool.get_expire(), win)
    # 获取窗口分配的代码
    @classmethod
    def __get_code_win(cls, code):
        key = "buywin_distribute-{}".format(code)
        win = cls.__get_redis().get(key)
        win = RedisUtils.get(cls.__get_redis(), key)
        if win is not None:
            return int(win)
        return None
@@ -619,13 +621,13 @@
    @classmethod
    def __del_code_win(cls, code):
        key = "buywin_distribute-{}".format(code)
        cls.__get_redis().delete(key)
        RedisUtils.delete(cls.__get_redis(), key)
    # 获取所有已经分配窗口的代码
    @classmethod
    def __get_distributed_win_codes(cls):
        key = "buywin_distribute-*"
        keys = cls.__get_redis().keys(key)
        keys = RedisUtils.keys(cls.__get_redis(), key)
        codes = []
        for k in keys:
            codes.append(k.replace("buywin_distribute-", ""))
@@ -636,13 +638,13 @@
    def __get_available_win(cls):
        # 是否有可用的还未分配的窗口
        key = "buywin_distribute-*"
        keys = cls.__get_redis().keys(key)
        keys = RedisUtils.keys(cls.__get_redis(), key)
        win_list = cls.get_buy_wins()
        if len(win_list) < 1:
            raise Exception("必须要有一个买入窗口")
        win_set = set(win_list)
        for k in keys:
            win = int(cls.__get_redis().get(k))
            win = int(RedisUtils.get(cls.__get_redis(),k))
            if win in win_set:
                win_set.remove(win)
        if len(win_set) > 0:
@@ -718,11 +720,11 @@
    @classmethod
    def get_distributed_code_wins(cls):
        key = "buywin_distribute-*"
        keys = cls.__get_redis().keys(key)
        keys = RedisUtils.keys(cls.__get_redis(), key)
        results = []
        for k in keys:
            code = k.split("-")[-1]
            win = cls.__get_redis().get(k)
            win = RedisUtils.get(cls.__get_redis(), k)
            results.append((code, win))
        return results