| | |
| | | limit_up_time_manager, global_data_loader, gpcode_manager |
| | | import constant |
| | | from l2.huaxin import l2_huaxin_util, huaxin_delegate_postion_manager |
| | | from third_data import kpl_data_manager |
| | | from third_data import kpl_data_manager, block_info |
| | | from utils import global_util, ths_industry_util, tool |
| | | import l2_data_util |
| | | from db import redis_manager |
| | |
| | | # 获取下单位置 |
| | | place_order_index = huaxin_delegate_postion_manager.get_l2_place_order_position(code, datas) |
| | | if place_order_index: |
| | | logger_l2_process.info("code:{} 获取到下单真实位置:{}",code,place_order_index) |
| | | logger_l2_process.info("code:{} 获取到下单真实位置:{}", code, place_order_index) |
| | | DCancelBigNumComputer.set_real_order_index(code, place_order_index) |
| | | |
| | | __start_time = round(t.time() * 1000) |
| | |
| | | return False, True, f"该代码被暂停交易" |
| | | |
| | | limit_up_price = gpcode_manager.get_limit_up_price(code) |
| | | |
| | | if float(limit_up_price) >= 40: |
| | | return False, True, "股价大于40块" |
| | | |
| | | if constant.L2_SOURCE_TYPE == constant.L2_SOURCE_TYPE_HUAXIN: |
| | | trade_price = current_price_process_manager.get_trade_price(code) |
| | | if trade_price is None: |
| | |
| | | |
| | | if float(limit_up_price) >= 40: |
| | | return False, True, "股价大于40块" |
| | | # 获取涨停 |
| | | latest_2_day_limit_up_datas_temp = kpl_data_manager.get_current_limit_up_data_records(2) |
| | | latest_2_day_limit_up_datas = [] |
| | | for d in latest_2_day_limit_up_datas_temp: |
| | | latest_2_day_limit_up_datas.extend(d[1]) |
| | | |
| | | # 9:35之前买大市值(>=80亿)票 |
| | | if int(tool.get_now_date_str("%Y%m%d")) < int("093500"): |
| | | zyltgb = global_util.zyltgb_map.get(code) |
| | | if zyltgb is None: |
| | | global_data_loader.load_zyltgb() |
| | | zyltgb = global_util.zyltgb_map.get(code) |
| | | if zyltgb >= 80 * 100000000: |
| | | return True, False, "{9:30:00-9:35:00}自由市值≥80亿" |
| | | # 判断板块 |
| | | plate_can_buy, msg, block_type = CodePlateKeyBuyManager.can_buy(code, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas, |
| | | latest_2_day_limit_up_datas, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.total_datas) |
| | | plate_can_buy, msg = CodePlateKeyBuyManager.can_buy(code, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.total_datas,block_info.get_before_blocks_dict()) |
| | | if not plate_can_buy: |
| | | return False, True, msg |
| | | |
| | | has_k_format = is_has_k_format(score_info) |
| | | # 独苗 |
| | | if block_type == CodePlateKeyBuyManager.BLOCK_TYPE_START_UP: |
| | | # 必须满足(分数≥150且上板时量≥40 % 且有K线形态)或(具有辨识度)的才能买 |
| | | if has_k_format and score_index >= 0 and volume_rate_info[0] >= 0.4: |
| | | return True, False, "独苗:分数≥150且上板时量≥40% 且有K线形态" |
| | | elif score_info[1][3][8][0]: |
| | | return True, False, "独苗:具有辨识度" |
| | | else: |
| | | return False, True, f"独苗:不满足买入条件" |
| | | else: |
| | | return True, False, msg |
| | | return True, False, msg |
| | | |
| | | # if volume_rate_info[0] < 0.4: |
| | | # return False, True, f"量大于40%才下单,量比:{volume_rate_info[0]}" |