Administrator
2023-08-23 a587a61c11a43182a13f1c04e276839299629e4e
L撤参数修改
4个文件已修改
47 ■■■■ 已修改文件
constant.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/cancel_buy_strategy.py 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/log.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/trade_server.py 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
constant.py
@@ -114,6 +114,12 @@
# 最小金额
L_CANCEL_MIN_MONEY = 50
# 小金额订单数量
L_CANCEL_MIN_MONEY_COUNT = 2
# 大金额
L_CANCEL_BIG_MONEY = 100
# 华鑫L2的卡位数量
HUAXIN_L2_MAX_CODES_COUNT = 50
l2/cancel_buy_strategy.py
@@ -503,7 +503,6 @@
        processed_index, cancel_num = self.__get_compute_data_cache(code)
        # 获取下单次数
        cancel_rate_threshold = self.__hCancelParamsManager.get_cancel_rate(volume_index)
        process_index = start_index
@@ -532,10 +531,10 @@
                val = data["val"]
                if L2DataUtil.is_limit_up_price_buy_cancel(val):
                    # 查询买入位置
                    l2_log.cancel_debug(code,"查询买入位置开始:{}",i)
                    l2_log.cancel_debug(code, "查询买入位置开始:{}", i)
                    buy_index = l2_data_source_util.L2DataSourceUtils.get_buy_index_with_cancel_data(code, data,
                                                                                                     local_today_num_operate_map)
                    l2_log.cancel_debug(code, "查询买入位置结束:{}",i)
                    l2_log.cancel_debug(code, "查询买入位置结束:{}", i)
                    if buy_index is not None and buy_index in watch_indexs_dict:
                        has_watch_canceled = True
                        cancel_num += data["re"] * val["num"]
@@ -964,13 +963,23 @@
            return
        watch_indexes = set()
        # 小金额
        watch_indexes_small_money = set()
        for i in range(index + 1, total_data[-1]["index"] + 1):
            data = total_data[i]
            val = data['val']
            if not L2DataUtil.is_limit_up_price_buy(val):
                continue
            if val["num"] * float(val["price"]) <= constant.L_CANCEL_MIN_MONEY * 100:
            money = val["num"] * float(val["price"])
            if money <= constant.L_CANCEL_MIN_MONEY * 100:
                continue
            is_small_money = money < constant.L_CANCEL_BIG_MONEY * 100
            if len(
                    watch_indexes_small_money) >= constant.L_CANCEL_MIN_MONEY_COUNT and is_small_money:
                # 小金额的个数已满
                continue
            cancel_datas = local_today_num_operate_map.get(
                "{}-{}-{}".format(val["num"], "1", val["price"]))
            canceled = False
@@ -983,6 +992,10 @@
                        break
            if not canceled:
                watch_indexes.add(i)
                if is_small_money:
                    # 添加小金额
                    watch_indexes_small_money.add(i)
                if len(watch_indexes) >= constant.L_CANCEL_MAX_WATCH_COUNT:
                    break
        logger_l2_l_cancel.info(f"{code}:设置监听范围,成交进度-{index} 监听范围-{watch_indexes}")
@@ -1006,7 +1019,7 @@
        # 计算监听的总条数
        total_num = 0
        for wi in watch_indexes:
            total_num += total_data[wi]["re"]*int(total_data[wi]["val"]["num"])
            total_num += total_data[wi]["re"] * int(total_data[wi]["val"]["num"])
        # 判断撤单中是否有监听中的索引
        need_compute = False
        for i in range(start_index, end_index + 1):
log_module/log.py
@@ -60,6 +60,10 @@
                   filter=lambda record: record["extra"].get("name") == "l_cancel",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_path("l2", "cancel/g_cancel"),
                   filter=lambda record: record["extra"].get("name") == "g_cancel",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_path("l2", "cancel/d_cancel"),
                   filter=lambda record: record["extra"].get("name") == "d_cancel",
                   rotation="00:00", compression="zip", enqueue=True)
@@ -267,6 +271,7 @@
logger_l2_h_cancel = __mylogger.get_logger("h_cancel")
logger_l2_d_cancel = __mylogger.get_logger("d_cancel")
logger_l2_l_cancel = __mylogger.get_logger("l_cancel")
logger_l2_g_cancel = __mylogger.get_logger("g_cancel")
logger_l2_trade_buy = __mylogger.get_logger("l2_trade_buy")
logger_l2_trade_queue = __mylogger.get_logger("l2_trade_queue")
logger_l2_trade_buy_queue = __mylogger.get_logger("l2_trade_buy_queue")
trade/huaxin/trade_server.py
@@ -30,7 +30,8 @@
from l2.l2_data_manager_new import L2TradeDataProcessor
from log_module import async_log_util
from log_module.log import hx_logger_l2_upload, hx_logger_contact_debug, hx_logger_trade_callback, \
    hx_logger_l2_orderdetail, hx_logger_l2_transaction, hx_logger_l2_market_data, logger_l2_trade_buy_queue
    hx_logger_l2_orderdetail, hx_logger_l2_transaction, hx_logger_l2_market_data, logger_l2_trade_buy_queue, \
    logger_l2_g_cancel
from third_data import block_info, kpl_api, kpl_data_manager
from third_data.code_plate_key_manager import KPLCodeJXBlockManager, CodePlateKeyBuyManager
from third_data.history_k_data_util import JueJinApi, HistoryKDatasUtils
@@ -181,7 +182,8 @@
                            code = data["code"]
                            timestamp = data.get("time")
                            datas = data["data"]
                            async_log_util.info(hx_logger_l2_orderdetail,f"{code}#{timestamp}->{int(time.time()*1000)}#{datas}")
                            async_log_util.info(hx_logger_l2_orderdetail,
                                                f"{code}#耗时:{int(time.time() * 1000) - timestamp}#{datas}")
                            l2_log.threadIds[code] = random.randint(0, 100000)
                            l2_data_manager_new.L2TradeDataProcessor.process_huaxin(code, datas)
                        finally:
@@ -345,12 +347,7 @@
                        data = data_json["data"]
                        code = data["code"]
                        order_no = data["data"]
                        hx_logger_l2_upload.info(f"{code}-正在成交的订单撤单,order_no:{order_no}")
                        # buyno_map = l2_data_util.local_today_buyno_map.get(code)
                        # if buyno_map:
                        #     l2_data = buyno_map.get(order_no)
                        #     buyno_map.get(order_no)
                        # 执行撤单
                        logger_l2_g_cancel.info(f"{code}-正在成交的订单撤单,order_no:{order_no}")
                        l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, "G撤撤单", "G撤")
                else:
                    # 断开连接