Administrator
6 小时以前 ad615df734b4d82f9a83a7d1805ac9fabdf01a53
200元股价以下的不足4手算4手/撤单率设置为100%不计算L后后半段撤单
4个文件已修改
55 ■■■■■ 已修改文件
api/outside_api_command_callback.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cancel_strategy/s_l_h_cancel_strategy.py 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/buy_money_count_setting.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_manager.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/outside_api_command_callback.py
@@ -1586,6 +1586,14 @@
                self.send_response({"code": 0, "data": {}},
                                   client_id,
                                   request_id)
            elif ctype == "remove_l_down_rate":
                # 删除L后撤单比例
                code = data.get("code")
                CancelRateHumanSettingManager().remove_l_down(code)
                trade_record_log_util.add_common_msg(code, "删除L后预设比例")
                self.send_response({"code": 0, "data": {}},
                                   client_id,
                                   request_id)
            elif ctype == "get_continue_buy_info":
                # 设置L后撤单比例
cancel_strategy/s_l_h_cancel_strategy.py
@@ -1719,15 +1719,8 @@
        super_big_num_thresold = int(2e7 / gpcode_manager.get_limit_up_price_as_num(code) / 100)
        for wi in watch_indexes:
            if str(wi) in after_place_order_index_dict:
                # 如果加红就需要计算分母
                if must_buy:
                    total_num += total_data[wi]["val"]["num"] * (
                            10 - after_place_order_index_dict[str(wi)]) // 10
                continue
            elif str(wi) in after_place_order_index_by_dict:
                if must_buy:
                    total_num += total_data[wi]["val"]["num"] * (
                            10 - after_place_order_index_by_dict[str(wi)]) // 10
                continue
            if total_data[wi]["val"]["num"] < super_big_num_thresold:
                total_num += total_data[wi]["val"]["num"]
@@ -1767,15 +1760,23 @@
            if is_default:
                trade_index = None
            canceled_buyno_map = local_today_canceled_buyno_map.get(code)
            # 如果撤单比例设置为100%就不需要计算下单位后面的订单
            need_compute_after = abs(thresh_hold_rate - 1.00) > 0.0001
            for wi in watch_indexes:
                cancel_data = L2DataComputeUtil.is_canceled(code, wi, total_data, canceled_buyno_map, trade_index,
                                                            deal_order_nos)
                if cancel_data:
                    if str(wi) in after_place_order_index_dict:
                        if not need_compute_after:
                            continue
                        # 真实下单位置之后的按照权重比例来计算
                        canceled_num += total_data[wi]["val"]["num"] * (
                                10 - after_place_order_index_dict[str(wi)]) // 10
                    elif str(wi) in after_place_order_index_by_dict:
                        if not need_compute_after:
                            continue
                        canceled_num += total_data[wi]["val"]["num"] * (
                                10 - after_place_order_index_by_dict[str(wi)]) // 10
                    else:
@@ -2052,19 +2053,20 @@
            logger_l2_l_cancel.exception(e)
            raise e
        extra_msg = "L后"
        if not can_cancel:
            # 成交位临近撤
            try:
                can_cancel, cancel_data = self.__compute_near_by_trade_progress_need_cancel(code, buy_exec_index,
                                                                                            start_index, end_index,
                                                                                            total_data,
                                                                                            is_first_code)
                if can_cancel:
                    cancel_type = trade_constant.CANCEL_TYPE_L_UP
                extra_msg = "L前"
            except Exception as e:
                logger_l2_l_cancel.exception(e)
                raise e
        # 不需要计算L前
        # if not can_cancel:
        #     # 成交位临近撤
        #     try:
        #         can_cancel, cancel_data = self.__compute_near_by_trade_progress_need_cancel(code, buy_exec_index,
        #                                                                                     start_index, end_index,
        #                                                                                     total_data,
        #                                                                                     is_first_code)
        #         if can_cancel:
        #             cancel_type = trade_constant.CANCEL_TYPE_L_UP
        #         extra_msg = "L前"
        #     except Exception as e:
        #         logger_l2_l_cancel.exception(e)
        #         raise e
        try:
            if self.__need_update_l_down_after(code, start_index, end_index):
trade/buy_money_count_setting.py
@@ -242,6 +242,9 @@
        @return:
        """
        total_volume_unit_100 = tool.get_buy_volume_by_money(limit_up_price, money) // 100
        if total_volume_unit_100 < 4:
            # 设置最小4手
            total_volume_unit_100 = 4
        return cls.get_possible_buy_volumes_by_total_volume(total_volume_unit_100 * 100)
    @classmethod
trade/trade_manager.py
@@ -448,6 +448,8 @@
                money = continue_buy_money
            count = tool.get_buy_volume_by_money(price, money)
            if count < 4 and float(price) < 200:
                count = 4
            # if mode == OrderBeginPosInfo.MODE_RADICAL:
            #     # 激进买入金额为1手