Administrator
2023-08-16 965bd2fea182851382f61d9c7c1492d04546bf4d
trade/trade_manager.py
@@ -386,20 +386,20 @@
# 开始交易
def start_buy(code, capture_timestamp, last_data, last_data_index):
    @dask.delayed
    # @dask.delayed
    def is_forbidden(code):
        if l2_trade_util.is_in_forbidden_trade_codes(code):
            return Exception("禁止交易")
        return None, None
    @dask.delayed
    # @dask.delayed
    def is_state_right(code):
        trade_state = CodesTradeStateManager().get_trade_state_cache(code)
        if trade_state != TRADE_STATE_NOT_TRADE and trade_state != TRADE_STATE_BUY_CANCEL_SUCCESS and trade_state != TRADE_STATE_BUY_CANCEL_ING:
            return Exception("代码处于不可交易状态"), trade_state
        return None, trade_state
    @dask.delayed
    # @dask.delayed
    def is_money_enough(code):
        money = AccountAvailableMoneyManager().get_available_money_cache()
        if money is None:
@@ -412,7 +412,7 @@
            return Exception("账户可用资金不足"), price
        return None, price
    @dask.delayed
    # @dask.delayed
    def can_trade(*args):
        for arg in args:
            if arg[0] is not None:
@@ -421,12 +421,14 @@
    _start_time = tool.get_now_timestamp()
    f1 = is_forbidden(code)
    f2 = is_state_right(code)
    f3 = is_money_enough(code)
    dask_result = can_trade(f1, f2, f3)
    ex, trade_state, price = dask_result.compute()
    if ex is not None:
    ex = is_forbidden(code)[0]
    if ex:
        raise ex
    ex, trade_state = is_state_right(code)
    if ex:
        raise ex
    ex, price = is_money_enough(code)
    if ex:
        raise ex
    # 并行改造