Administrator
2023-10-11 cab2f4605d16dee36270138a8f7dfdd79dc6d663
交易记录日志优化
3个文件已修改
35 ■■■■■ 已修改文件
output/code_info_output.py 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/code_plate_key_manager.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/trade_record_log_util.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
output/code_info_output.py
@@ -6,6 +6,7 @@
# 下单参数信息
# 选股宝
# 市场热度
import logging
import sys
import time
import code_attribute
@@ -352,7 +353,7 @@
                data = record[2]
                if type == trade_record_log_util.TYPE_PLACE_ORDER:
                    records_new_data.append((time_, "开盘啦推荐原因",
                                             f"{'、'.join(data['kpl_blocks'])}",
                                             f"{'、'.join([k[1] for k in data['kpl_blocks']])}",
                                             None))
                    extra_datas = []
                    if data['big_num_indexes']:
@@ -367,7 +368,12 @@
                                             f"【{format_l2_data(total_datas[data['buy_single_index']])}】-【{format_l2_data(total_datas[data['buy_exec_index']])}】",
                                             data))
                elif type == trade_record_log_util.TYPE_REAL_PLACE_ORDER_POSITION:
                    records_new_data.append((time_, "实际挂单位", f"【{format_l2_data(data['index'])}】", None))
                    for i in range(data['index'], 0, -1):
                        if total_datas[i]['val']['num'] * float(total_datas[i]['val']['price']) >= 3000:
                            records_new_data.append(
                                (time_, "实际挂单位", f"【{format_l2_data(total_datas[i])}】", None))
                            break
                elif type == trade_record_log_util.TYPE_CANCEL_WATCH_INDEXES:
                    indexes = data['watch_indexes']
                    if indexes:
@@ -395,13 +401,14 @@
                    records_new_data.append((time_, "撤单", f"原因:{data['msg']}", None))
            if records_new_data:
                for d in records_new_data:
                    records_new.append(f"【{d[0]}】"+"{:<10}".format(d[1])+d[2])
        except:
            pass
                    records_new.append(f"【{d[0]}】" + "{:<10}".format(f'【{d[1]}】') + d[2])
        except Exception as e:
            logging.exception(e)
    return break_time, records_new, records_new_data
if __name__ == '__main__':
    ts = ("0", "1", "2", "3")
    print(','.join(ts[:-1]))
    code = '603131'
    l2_data_util.load_l2_data(code)
    __load_trade_record(code, l2_data_util.local_today_datas.get(code))
third_data/code_plate_key_manager.py
@@ -441,7 +441,7 @@
    @classmethod
    def __is_block_can_buy(cls, code, block, current_limit_up_datas, code_limit_up_reason_dict,
                           yesterday_current_limit_up_codes, limit_up_record_datas):
        log.logger_kpl_debug.info(f"判断板块是否可买:{block}")
        # log.logger_kpl_debug.info(f"判断板块是否可买:{block}")
        # is_top_8_record, top_8_record = kpl_block_util.is_record_top_block(code, block, limit_up_record_datas,
        #                                                                    yesterday_current_limit_up_codes, 50)
        # is_top_4_current, top_4_current = kpl_block_util.is_current_top_block(code, block, current_limit_up_datas,
@@ -506,7 +506,7 @@
        # 获取目标代码板块
        keys, k1, k11, k2, k3, k4 = cls.__TargetCodePlateKeyManager.get_plate_keys(code)
        log.logger_kpl_debug.info("{}关键词:今日-{},今日历史-{},历史-{},二级行业-{},代码板块-{}", code, k1, k11, k2, k3, k4)
        # log.logger_kpl_debug.info("{}关键词:今日-{},今日历史-{},历史-{},二级行业-{},代码板块-{}", code, k1, k11, k2, k3, k4)
        keys = set()
        if k1:
            for k in k1:
@@ -564,7 +564,6 @@
                                                  before_blocks_dict)
        if not blocks:
            return False, block_msg
        log.logger_kpl_debug.info(f"{code}:获取委托/买入代码")
        codes_delegate = set(cls.__CodesTradeStateManager.get_codes_by_trade_states_cache(
            {trade_manager.TRADE_STATE_BUY_DELEGATED, trade_manager.TRADE_STATE_BUY_PLACE_ORDER}))
        codes_success = set(cls.__CodesTradeStateManager.get_codes_by_trade_states_cache(
@@ -576,13 +575,11 @@
        trade_codes_blocks_dict = {}
        # 已经成交的板块
        trade_success_blocks_count = {}
        log.logger_kpl_debug.info(f"{code}:获取代码板块")
        for c in codes:
            keys_, k1_, k11_, k2_, k3_, k4_ = cls.__TargetCodePlateKeyManager.get_plate_keys(c)
            # 实时涨停原因
            trade_codes_blocks_dict[c] = k1_ | k4_
        # 统计板块中的代码
        log.logger_kpl_debug.info(f"{code}:统计板块中的代码")
        trade_block_codes_dict = {}
        for c in trade_codes_blocks_dict:
            for b in trade_codes_blocks_dict[c]:
@@ -595,7 +592,6 @@
                trade_block_codes_dict[b].add(c)
        # ---------------------------------加载已经下单/成交的代码信息------------end-------------
        log.logger_kpl_debug.info(f"{code}:开始计算是否可以买")
        msg_list = []
        for key in blocks:
            # 板块中已经有成交的就不下单了
trade/trade_record_log_util.py
@@ -93,8 +93,14 @@
    __add_log(TYPE_FORBIDDEN_BUY, code, {"msg": msg})
__latest_cant_place_order_log_msg_dict = {}
# 不能买
def add_cant_place_order_log(code, msg):
    if __latest_cant_place_order_log_msg_dict.get(code) == msg:
        return
    __latest_cant_place_order_log_msg_dict[code] = msg
    __add_log(TYPE_CANT_PLACE_ORDER, code, {"msg": msg})