| | |
| | | __start_time = time.time() |
| | | |
| | | # 获取代码的历史涨停数据,(涨停原因,日期,板块) |
| | | # code_records = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2] |
| | | # if code_records: |
| | | # code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("、")]) for k in |
| | | # code_records] |
| | | # 修改历史 |
| | | code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code) |
| | | code_records = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2] |
| | | if code_records: |
| | | code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records] |
| | | else: |
| | | code_records = [] |
| | | code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("、")]) for k in |
| | | code_records] |
| | | # 修改历史 |
| | | # code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code) |
| | | # if code_records: |
| | | # code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records] |
| | | # else: |
| | | # code_records = [] |
| | | |
| | | params["kpl_code_info"]["code_records"] = code_records |
| | | |
| | |
| | | now_limit_up_codes = set([d[0] for d in now_limit_up_codes_info]) |
| | | # 获取历史涨停 |
| | | record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas |
| | | if not record_limit_up_datas: |
| | | if not record_limit_up_datas or len(record_limit_up_datas) == len(now_limit_up_codes_info): |
| | | KPLLimitUpDataRecordManager.load_total_datas() |
| | | record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas |
| | | |
| | |
| | | result_by_volume = radical_buy_strategy.process_limit_up_active_buy_deal(code, transaction_datas) |
| | | async_log_util.info(logger_l2_radical_buy, f"量买入结果判断:{code}, 结果:{result_by_volume} 板块:{buy_blocks}") |
| | | if result_by_volume[0] != radical_buy_strategy.BUY_MODE_NONE: |
| | | # 判断是否开得太高 |
| | | open_price = L1DataManager.get_open_price(code) |
| | | if not radical_buy_strategy.is_can_buy_with_open_price(code, open_price): |
| | | async_log_util.info(logger_l2_radical_buy, |
| | | f"开得太高:{code}") |
| | | return |
| | | |
| | | if result_by_volume[0] == radical_buy_strategy.BUY_MODE_DIRECT: |
| | | refer_sell_data = L2MarketSellManager().get_refer_sell_data(code, |
| | | l2_huaxin_util.convert_time( |
| | |
| | | return True, f"量比-{volume_rate}, 本次大单成交数量({current_big_order_deal_count})>={threshold_count}" |
| | | else: |
| | | return False, f"量比-{volume_rate}, 本次大单成交数量({current_big_order_deal_count})<{threshold_count}" |
| | | |
| | | |
| | | def is_can_buy_with_open_price(code, open_price): |
| | | """ |
| | | 根据开盘价判断是否可买 |
| | | @param code: |
| | | @param open_price: |
| | | @return: |
| | | """ |
| | | if tool.get_now_time_as_int() < int("093100"): |
| | | async_log_util.info(logger_l2_radical_buy, f"开盘价:{code}-{open_price}") |
| | | pre_price = gpcode_manager.CodePrePriceManager.get_price_pre_cache(code) |
| | | if pre_price: |
| | | rate = round((open_price - pre_price) / pre_price, 4) |
| | | async_log_util.info(logger_l2_radical_buy, f"开盘价涨幅:{code}-{rate}") |
| | | if tool.get_limit_up_rate(code) > 1.1: |
| | | return rate < 0.189 |
| | | else: |
| | | return rate < 0.089 |
| | | return True |