| | |
| | | @classmethod |
| | | def get_cancel_rate(cls, code): |
| | | base_rate = constant.L_CANCEL_RATE |
| | | block_rate = 0 |
| | | if code in cls.__block_limit_up_count_dict: |
| | | count = cls.__block_limit_up_count_dict[code] |
| | | rates = [0, 0.03, 0.06, 0.08, 0.12] |
| | | rate = 0 |
| | | if count >= len(rates): |
| | | rate = rates[-1] |
| | | block_rate = rates[-1] |
| | | else: |
| | | rate = rates[count] |
| | | base_rate += rate |
| | | block_rate = rates[count] |
| | | |
| | | deal_rate = 0 |
| | | if code in cls.__big_num_deal_rate_dict: |
| | | temp_rate = cls.__big_num_deal_rate_dict[code] |
| | | rate = 0 |
| | | if temp_rate >= 1: |
| | | if temp_rate > 3: |
| | | temp_rate = 3 |
| | | rate = round((temp_rate * 3.5 - 2.5) / 100, 4) |
| | | base_rate += rate |
| | | return round(base_rate,2) |
| | | deal_rate = round((temp_rate * 3.5 - 2.5) / 100, 4) |
| | | |
| | | |
| | | base_rate += block_rate |
| | | base_rate += deal_rate |
| | | return round(base_rate, 2), block_rate, deal_rate |
| | | |
| | | # 设置板块涨停数量(除开自己) |
| | | @classmethod |
| | |
| | | @classmethod |
| | | def set_big_num_deal_rate(cls, code, rate): |
| | | cls.__big_num_deal_rate_dict[code] = rate |
| | | logger_l2_l_cancel.debug(code, f"设置大单成交金额比值:{rate}") |
| | | |
| | | l2_log.l_cancel_debug(code, f"设置大单成交金额比值:{rate}") |
| | | |
| | | |
| | | # 计算成交位置之后的大单(特定笔数)的撤单比例 |
| | |
| | | # return True, total_data[-1] |
| | | |
| | | rate = round(canceled_num / total_num, 3) |
| | | l2_log.l_cancel_debug(code, f"计算范围:{start_index}-{end_index},已撤单比例:{rate}") |
| | | if rate >= LCancelRateManager.get_cancel_rate(code): |
| | | thresh_hold_rate = LCancelRateManager.get_cancel_rate(code) |
| | | l2_log.l_cancel_debug(code, f"计算范围:{start_index}-{end_index},已撤单比例:{rate}/{thresh_hold_rate}") |
| | | if rate >= thresh_hold_rate: |
| | | return True, total_data[-1] |
| | | |
| | | return False, None |
| | |
| | | # 开始撤单 |
| | | def start_cancel(self, code, buy_no, total_datas, buy_order_no_map, local_operate_map, m_val_num): |
| | | # TODO 暂时注释掉G撤 |
| | | return False,"暂时不执行G撤" |
| | | return False, "暂时不执行G撤" |
| | | thresh_num = int(m_val_num * 1) |
| | | place_order_index = self.__SecondCancelBigNumComputer.get_real_place_order_index_cache(code) |
| | | if place_order_index is None: |
| | |
| | | |
| | | if __name__ == "__main__": |
| | | pass |
| | | |