Administrator
2023-10-19 1ff4eac2272948740f29f337c6512bd3a995acf2
身位判断bug修复
3个文件已修改
56 ■■■■■ 已修改文件
test/l2_trade_test.py 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/data_server.py 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_block_util.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/l2_trade_test.py
@@ -17,10 +17,10 @@
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
@@ -84,7 +84,7 @@
                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"
@@ -94,7 +94,6 @@
        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:
            # 拼接数据
@@ -193,6 +192,21 @@
        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()
third_data/data_server.py
@@ -533,14 +533,15 @@
                                        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_)
third_data/kpl_block_util.py
@@ -129,6 +129,9 @@
    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
        # 剔除高位板
@@ -137,8 +140,7 @@
        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 = []
@@ -147,7 +149,7 @@
            return i, front_codes
        else:
            front_codes.append(block_codes_infos[i][0])
    return 0,[]
    return 0, []
# 获取当日实时身位
@@ -157,6 +159,9 @@
    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
        # 剔除高位板
@@ -166,8 +171,6 @@
            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 = []
@@ -176,7 +179,7 @@
            return i, front_codes
        else:
            front_codes.append(block_codes_infos[i][0])
    return 0,[]
    return 0, []
if __name__ == "__main__":