# 虚拟买成功
|
import logging
|
|
import dask
|
|
from l2 import l2_data_manager
|
from l2.cancel_buy_strategy import HourCancelBigNumComputer, SecondCancelBigNumComputer, L2LimitUpSellStatisticUtil, \
|
LCancelBigNumComputer, DCancelBigNumComputer
|
from l2.l2_data_util import local_today_datas, local_today_num_operate_map
|
from l2.safe_count_manager import BuyL2SafeCountManager
|
from log_module.log import logger_l2_error
|
from trade import trade_data_manager
|
from trade.trade_queue_manager import THSBuy1VolumnManager
|
|
__thsBuy1VolumnManager = THSBuy1VolumnManager()
|
__buyL2SafeCountManager = BuyL2SafeCountManager()
|
|
|
def virtual_buy_success(code):
|
# 增加下单计算
|
trade_data_manager.PlaceOrderCountManager().place_order(code)
|
# 删除之前的板上卖信息
|
L2LimitUpSellStatisticUtil().delete(code)
|
|
|
# 虚拟撤成功
|
def virtual_cancel_success(code, buy_single_index, buy_exec_index, total_datas):
|
f1 = dask.delayed(l2_data_manager.TradePointManager().delete_buy_point)(code)
|
f2 = dask.delayed(l2_data_manager.TradePointManager().delete_buy_cancel_point)(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)
|
f7 = dask.delayed(DCancelBigNumComputer().cancel_success)(code)
|
f8 = dask.delayed(LCancelBigNumComputer().cancel_success)(code)
|
dask.compute(f1, f2, f5, f6, f7, f8)
|
|
|
# 真实买成功
|
def real_buy_success(code):
|
@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)
|
|
@dask.delayed
|
def l_cancel(code):
|
try:
|
LCancelBigNumComputer().del_watch_index(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, volume_rate = l2_data_manager.TradePointManager().get_buy_compute_start_data_cache(
|
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)
|
f4 = l_cancel(code)
|
dask.compute(f1, f2, f3, f4)
|
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"])
|
# 取消买入标识
|
l2_data_manager.TradePointManager().delete_buy_point(code)
|
l2_data_manager.TradePointManager().delete_buy_cancel_point(code)
|
SecondCancelBigNumComputer().cancel_success(code)
|
DCancelBigNumComputer().cancel_success(code)
|
LCancelBigNumComputer().cancel_success(code)
|
|
|
if __name__ == "__main__":
|
pass
|