| | |
| | | total_sell_volume = 0 |
| | | if current_sell and len(current_sell) > 2: |
| | | total_sell_volume = current_sell[2] |
| | | volume_rate = code_volumn_manager.CodeVolumeManager().get_volume_rate(code, total_sell_volume=total_sell_volume) |
| | | volume_rate = code_volumn_manager.CodeVolumeManager().get_volume_rate(code, |
| | | total_sell_volume=total_sell_volume) |
| | | volume_rate_index = code_volumn_manager.CodeVolumeManager().get_volume_rate_index(volume_rate) |
| | | # 计算分值 |
| | | limit_up_time = cls.__LimitUpTimeManager.get_limit_up_time_cache(code) |
| | |
| | | code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code): |
| | | return False, True, f"只买想买:没在想买单和绿单", True |
| | | |
| | | |
| | | |
| | | return True, False, f"", False |
| | | |
| | | @classmethod |
| | |
| | | return is_limit_up_buy |
| | | |
| | | @classmethod |
| | | def __is_big_order_deal_enough(cls, code): |
| | | """ |
| | | 大单成交是否足够 |
| | | @param code: |
| | | @param volume_rate: |
| | | @return: |
| | | """ |
| | | limit_up_price = gpcode_manager.get_limit_up_price_as_num(code) |
| | | refer_volume = code_volumn_manager.CodeVolumeManager().get_max_volume_in_5days(code) |
| | | if refer_volume is None: |
| | | refer_volume = 0 |
| | | |
| | | money_y = int(refer_volume * limit_up_price / 1e8) |
| | | money_y = min(money_y, 50) |
| | | money_y = max(money_y, 5) |
| | | # 计算大单参考数量 |
| | | threshold_count = int(round(0.4 * money_y)) * 2 |
| | | threshold_money = threshold_count * 299 * 10000 |
| | | volume_rate_info = cls.volume_rate_info.get(code) |
| | | |
| | | deal_big_order_money = BigOrderDealManager().get_total_buy_money(code) |
| | | if deal_big_order_money >= threshold_money: |
| | | return True, f"量比-{volume_rate_info}, 总大单成交金额({deal_big_order_money})>={threshold_money}" |
| | | else: |
| | | return False, f"量比-{volume_rate_info}, 总大单成交金额({deal_big_order_money})<{threshold_money}" |
| | | |
| | | @classmethod |
| | | def __can_buy_first(cls, code): |
| | | """ |
| | | 是否可以下单 |
| | |
| | | min_money=min_money) |
| | | if left_count < 1: |
| | | return False, False, f"没有已挂或者成交的大单", False |
| | | |
| | | big_deal_order_info = cls.__is_big_order_deal_enough(code) |
| | | if not big_deal_order_info[0]: |
| | | return False, False, big_deal_order_info[1], False |
| | | |
| | | place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(code) |
| | | # ------------------第一和第二次下单都必须要有至少一笔未成交的大单-------------------------- |
| | | # 计算大单 |