Administrator
2023-02-10 a7a394e1525cfb85aff1ba02f0961dbb07748bc8
trade/trade_result_manager.py
@@ -1,6 +1,8 @@
# 虚拟买成功
import logging
import dask
from l2 import l2_data_manager
from l2.cancel_buy_strategy import HourCancelBigNumComputer, SecondCancelBigNumComputer, L2LimitUpSellStatisticUtil
from l2.l2_data_util import local_today_datas, local_today_num_operate_map
@@ -22,41 +24,61 @@
# 虚拟撤成功
def virtual_cancel_success(code, buy_single_index, buy_exec_index, total_datas):
    l2_data_manager.TradePointManager.delete_buy_point(code)
    l2_data_manager.TradePointManager.delete_buy_cancel_point(code)
    l2_data_manager.TradePointManager.delete_compute_info_for_cancel_buy(code)
    l2_data_manager.TradePointManager.delete_count_info_for_cancel_buy(code)
    f1 = dask.delayed(l2_data_manager.TradePointManager.delete_buy_point)(code)
    f2 = dask.delayed(l2_data_manager.TradePointManager.delete_buy_cancel_point)(code)
    f3 = dask.delayed(l2_data_manager.TradePointManager.delete_compute_info_for_cancel_buy)(code)
    f4 = dask.delayed(l2_data_manager.TradePointManager.delete_count_info_for_cancel_buy)(code)
    # 安全笔数计算
    __buyL2SafeCountManager.save_place_order_info(code, buy_single_index, buy_exec_index, total_datas[-1]["index"])
    SecondCancelBigNumComputer.cancel_success(code)
    f5 = dask.delayed(__buyL2SafeCountManager.save_place_order_info)(code, buy_single_index, buy_exec_index,
                                                                     total_datas[-1]["index"])
    f6 = dask.delayed(SecondCancelBigNumComputer.cancel_success)(code)
    dask.compute(f1, f2, f3, f4, f5, f6)
# 真实买成功
def real_buy_success(code):
    # 下单成功,需要删除最大买1
    __thsBuy1VolumnManager.clear_max_buy1_volume(code)
    # 获取买入位置信息
    try:
        buy_single_index, buy_exec_index, buy_compute_index, num, count, max_num_set = l2_data_manager.TradePointManager.get_buy_compute_start_data(
            code)
        __buyL2SafeCountManager.save_place_order_info(code, buy_single_index, buy_exec_index, None)
        HourCancelBigNumComputer.place_order_success(code, buy_single_index, buy_exec_index,
                                                     local_today_datas.get(code),
                                                     local_today_num_operate_map.get(code))
    except Exception as e:
        logging.exception(e)
        logger_l2_error.exception(e)
    @dask.delayed
    def clear_max_buy1_volume(code):
        # 下单成功,需要删除最大买1
        __thsBuy1VolumnManager.clear_max_buy1_volume(code)
    @dask.delayed
    def safe_count(code, buy_single_index, buy_exec_index):
        try:
            __buyL2SafeCountManager.save_place_order_info(code, buy_single_index, buy_exec_index, None)
        except Exception as e:
            logging.exception(e)
            logger_l2_error.exception(e)
    @dask.delayed
    def h_cancel(code, buy_single_index, buy_exec_index):
        try:
            HourCancelBigNumComputer.place_order_success(code, buy_single_index, buy_exec_index,
                                                         local_today_datas.get(code),
                                                         local_today_num_operate_map.get(code))
        except Exception as e:
            logging.exception(e)
            logger_l2_error.exception(e)
    buy_single_index, buy_exec_index, buy_compute_index, num, count, max_num_set = l2_data_manager.TradePointManager.get_buy_compute_start_data(
        code)
    f1 = clear_max_buy1_volume(code)
    f2 = safe_count(code, buy_single_index, buy_exec_index)
    f3 = h_cancel(code, buy_single_index, buy_exec_index)
    dask.compute(f1, f2, f3)
    l2_data_manager.TradePointManager.delete_buy_cancel_point(code)
# 真实撤成功
def real_cancel_success(code, buy_single_index, buy_exec_index, total_datas):
    # 安全笔数计算
    __buyL2SafeCountManager.save_place_order_info(code, buy_single_index, buy_exec_index, total_datas[-1]["index"])
    f1 = dask.delayed(__buyL2SafeCountManager.save_place_order_info)(code, buy_single_index, buy_exec_index,
                                                                     total_datas[-1]["index"])
    # 取消买入标识
    l2_data_manager.TradePointManager.delete_buy_point(code)
    l2_data_manager.TradePointManager.delete_buy_cancel_point(code)
    l2_data_manager.TradePointManager.delete_compute_info_for_cancel_buy(code)
    l2_data_manager.TradePointManager.delete_count_info_for_cancel_buy(code)
    SecondCancelBigNumComputer.cancel_success(code)
    f2 = dask.delayed(l2_data_manager.TradePointManager.delete_buy_point)(code)
    f3 = dask.delayed(l2_data_manager.TradePointManager.delete_buy_cancel_point)(code)
    f4 = dask.delayed(l2_data_manager.TradePointManager.delete_compute_info_for_cancel_buy)(code)
    f5 = dask.delayed(l2_data_manager.TradePointManager.delete_count_info_for_cancel_buy)(code)
    f6 = dask.delayed(SecondCancelBigNumComputer.cancel_success)(code)
    dask.compute(f1, f2, f3, f4, f5, f6)