| | |
| | | from trade.huaxin import huaxin_trade_api |
| | | from utils import tool |
| | | from db import redis_manager_delegate as redis_manager |
| | | from l2 import l2_log, l2_data_manager, transaction_progress |
| | | from l2 import l2_log, l2_data_manager, transaction_progress, l2_data_manager_new |
| | | from l2.transaction_progress import TradeBuyQueue |
| | | from third_data import kpl_util, kpl_data_manager |
| | | from third_data.code_plate_key_manager import LimitUpCodesPlateKeyManager |
| | | from third_data import kpl_util, kpl_data_manager, block_info |
| | | from third_data.code_plate_key_manager import LimitUpCodesPlateKeyManager, CodePlateKeyBuyManager, KPLCodeJXBlockManager |
| | | from third_data.kpl_data_manager import KPLDataManager |
| | | from trade import trade_data_manager, current_price_process_manager, l2_trade_util |
| | | from trade.trade_queue_manager import THSBuy1VolumnManager |
| | |
| | | except Exception as e: |
| | | pass |
| | | |
| | | # @unittest.skip("跳过此单元测试") |
| | | @unittest.skip("跳过此单元测试") |
| | | def test_trade(self): |
| | | threading.Thread(target=async_log_util.run_sync, daemon=True).start() |
| | | code = "002771" |
| | |
| | | l2.l2_data_util.local_today_num_operate_map.get(code).clear() |
| | | l2.l2_data_util.local_today_buyno_map.get(code).clear() |
| | | l2.l2_data_util.local_today_canceled_buyno_map.get(code).clear() |
| | | |
| | | |
| | | if total_datas[0]["index"] > 0: |
| | | # 拼接数据 |
| | |
| | | l2.l2_data_util.local_today_datas[code] = total_datas |
| | | l2.l2_data_util.load_num_operate_map(l2.l2_data_util.local_today_num_operate_map, code, total_datas, True) |
| | | |
| | | def test_block(self): |
| | | code = "000628" |
| | | KPLCodeJXBlockManager().load_jx_blocks(code, 17.96, 17.96) |
| | | block_info.init_code(code) |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.load_total_datas() |
| | | yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes() |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas = kpl_data_manager.KPLDataManager.get_data( |
| | | kpl_util.KPLDataType.LIMIT_UP) |
| | | |
| | | CodePlateKeyBuyManager.update_can_buy_blocks(code, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas, |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.total_datas, |
| | | yesterday_codes, |
| | | block_info.get_before_blocks_dict()) |
| | | |
| | | |
| | | # class TestTrade(unittest.TestCase): |
| | | # processor = L2TradeDataProcessor() |
| | |
| | | if not limit_up_record_datas: |
| | | limit_up_record_datas = [] |
| | | # 买绝对老大 |
| | | if CodePlateKeyBuyManager.is_need_cancel(code, limit_up_reasons.get(code), |
| | | current_limit_up_datas, |
| | | limit_up_record_datas, |
| | | yesterday_current_limit_up_codes, |
| | | before_blocks_dict): |
| | | l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, |
| | | f"涨停原因({limit_up_reasons.get(code)})不是老大撤单", |
| | | "板块撤") |
| | | # 中途不能撤单 |
| | | # if CodePlateKeyBuyManager.is_need_cancel(code, limit_up_reasons.get(code), |
| | | # current_limit_up_datas, |
| | | # limit_up_record_datas, |
| | | # yesterday_current_limit_up_codes, |
| | | # before_blocks_dict): |
| | | # l2_data_manager_new.L2TradeDataProcessor.cancel_buy(code, |
| | | # f"涨停原因({limit_up_reasons.get(code)})不是老大撤单", |
| | | # "板块撤") |
| | | except Exception as e: |
| | | logger_debug.exception(e) |
| | | kpl_data_manager.KPLLimitUpDataRecordManager.save_record(tool.get_now_date_str(), result_list_) |
| | |
| | | block_codes_infos = [] |
| | | limit_up_time = time.time() |
| | | for k in limit_up_record_datas: |
| | | if k[3] == code: |
| | | # 获取当前代码涨停时间 |
| | | limit_up_time = int(k[5]) |
| | | if shsz and k[3].find("00") != 0 and k[3].find("60") != 0: |
| | | continue |
| | | # 剔除高位板 |
| | |
| | | if code_limit_up_reason_dict.get(k[3]) == block: |
| | | if k[3] != code: |
| | | block_codes_infos.append((k[3], int(k[5]))) |
| | | else: |
| | | limit_up_time = int(k[5]) |
| | | |
| | | block_codes_infos.append((code, limit_up_time)) |
| | | block_codes_infos.sort(key=lambda x: x[1]) |
| | | front_codes = [] |
| | |
| | | return i, front_codes |
| | | else: |
| | | front_codes.append(block_codes_infos[i][0]) |
| | | return 0,[] |
| | | return 0, [] |
| | | |
| | | |
| | | # 获取当日实时身位 |
| | |
| | | block_codes_infos = [] |
| | | limit_up_time = time.time() |
| | | for k in current_limit_up_datas: |
| | | if k[0] == code: |
| | | # 获取当前代码涨停时间 |
| | | limit_up_time = int(k[2]) |
| | | if shsz and k[0].find("00") != 0 and k[0].find("60") != 0: |
| | | continue |
| | | # 剔除高位板 |
| | |
| | | if k[0] != code: |
| | | # 代码.涨停时间 |
| | | block_codes_infos.append((k[0], int(k[2]))) |
| | | else: |
| | | limit_up_time = int(k[2]) |
| | | block_codes_infos.append((code, limit_up_time)) |
| | | block_codes_infos.sort(key=lambda x: x[1]) |
| | | front_codes = [] |
| | |
| | | return i, front_codes |
| | | else: |
| | | front_codes.append(block_codes_infos[i][0]) |
| | | return 0,[] |
| | | return 0, [] |
| | | |
| | | |
| | | if __name__ == "__main__": |