Administrator
2023-07-06 7284224d58773be6da3c569be3d54ac3b2646661
output/code_info_output.py
@@ -6,30 +6,25 @@
# 下单参数信息
# 选股宝
# 市场热度
import os
import sys
import time
import code_volumn_manager
import code_attribute
from code_attribute import code_volumn_manager, limit_up_time_manager, global_data_loader, gpcode_manager
import constant
import global_data_loader
import global_util
import gpcode_manager
import limit_up_time_manager
import log
import tool
from utils import global_util, tool
from logs import log
from l2 import l2_data_manager, l2_data_util, transaction_progress, l2_data_manager_new, code_price_manager
from l2.cancel_buy_strategy import HourCancelBigNumComputer
import l2.l2_data_manager_new
from third_data import kpl_data_manager, kpl_util, kpl_api, block_info
from third_data.code_plate_key_manager import RealTimeKplMarketData
from third_data.kpl_data_manager import KPLLimitUpDataRecordManager, KPLDataManager
from third_data import kpl_data_manager, kpl_api
from third_data.kpl_data_manager import KPLLimitUpDataRecordManager
from trade import first_code_score_manager, l2_trade_factor, trade_manager, l2_trade_util
from trade.l2_trade_factor import L2TradeFactorUtil
import trade.deal_big_money_manager
from jinja2 import Environment, FileSystemLoader
base_output_content = {}
kpl_block_info_dict = {}
__kplDataManager = kpl_data_manager.KPLDataManager()
@@ -48,7 +43,7 @@
def render(params):
    env = Environment(loader=FileSystemLoader('D:/workspace/trade/output'))
    env = Environment(loader=FileSystemLoader('/workspace/trade/output'))
    css = env.get_template('css/index.css')
    params["css"] = css.render()
    template = env.get_template('index.html')
@@ -68,6 +63,8 @@
def get_output_params(code, jingxuan_cache_dict, industry_cache_dict):
    __start_time = time.time()
    def format_plate_output(_plat):
        if _plat in jingxuan_cache_dict:
            return _plat, money_desc(jingxuan_cache_dict[_plat][3])
@@ -88,9 +85,9 @@
    if l2_trade_util.WhiteListCodeManager.is_in(code):
        code_extra_infos.append("白名单")
    # 获取白名单,黑名单
    if trade_manager.gpcode_manager.WantBuyCodesManager.is_in(code):
    if code_attribute.gpcode_manager.WantBuyCodesManager.is_in(code):
        code_extra_infos.append("想买单")
    if trade_manager.gpcode_manager.PauseBuyCodesManager.is_in(code):
    if code_attribute.gpcode_manager.PauseBuyCodesManager.is_in(code):
        code_extra_infos.append("暂不买")
    params["code"] = code
    params["code_name"] = f"{gpcode_manager.get_code_name(code)} {code}  ({','.join(code_extra_infos)})"
@@ -179,6 +176,9 @@
        params["score_data"]["k_form"] = {"score": k_score, "datas": k_source}
        log.logger_debug.info(f"K线形态耗时:{time.time() - __start_time}")
        __start_time = time.time()
        # 历史股性
        nature_score = 0
        nature_source = []
@@ -206,6 +206,9 @@
                    code_nature_datas["first_open_limit_up_yijia"] = "无首板炸板"
        params["score_data"]["code_nature"] = code_nature_datas
        log.logger_debug.info(f"历史股性耗时:{time.time() - __start_time}")
        __start_time = time.time()
        # 板块热度
        hot_block_score = 0
@@ -247,6 +250,8 @@
        # zyltgb, limit_price, bidding, k_form, code_nature, hot_block, volume_rate, limit_up_time,
        # deal_big_money
        log.logger_debug.info(f"板块热度耗时:{time.time() - __start_time}")
        __start_time = time.time()
        ###############################下单信息###############################
        params["trade_data"] = {}
@@ -260,11 +265,13 @@
                                                                                    (score, score_list),
                                                                                    score_source_list))
        # 是否可以买入的信息
        can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first(code, limit_up_price, __L2PlaceOrderParamsManager.score_index,
                                                          __L2PlaceOrderParamsManager.score,
                                                          __L2PlaceOrderParamsManager.score_info,
                                                          (volume_rate,
                                                           code_volumn_manager.get_volume_rate_index(volume_rate)))
        can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first(code, limit_up_price,
                                                                                 __L2PlaceOrderParamsManager.score_index,
                                                                                 __L2PlaceOrderParamsManager.score,
                                                                                 __L2PlaceOrderParamsManager.score_info,
                                                                                 (volume_rate,
                                                                                  code_volumn_manager.get_volume_rate_index(
                                                                                      volume_rate)))
        params["trade_data"]["can_buy_info"] = can_buy_info
        __base_L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, False, volume_rate,
@@ -349,6 +356,9 @@
            elif trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS:
                params["trade_data"]["trade_state"]["desc"] = "已成交"
        log.logger_debug.info(f"下单信息耗时:{time.time() - __start_time}")
        __start_time = time.time()
        # H撤监听范围
        if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_manager.TRADE_STATE_BUY_DELEGATED or trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS:
            hcancel_datas_dict, cancel_indexes_set = HourCancelBigNumComputer.get_watch_index_dict(code)
@@ -368,6 +378,8 @@
                    params["trade_data"]["h_cancel"]["datas"].append(
                        (val["time"], val["num"], money_desc(val["num"] * float(val["price"]) * 100),
                         (1 if canceled else 0)))
        log.logger_debug.info(f"H撤监听范围耗时:{time.time() - __start_time}")
        __start_time = time.time()
    ##############################主动买,被动买##################################
    # 返回主动买,被动买,不买的列表(代码, 名称, 得分, 是否涨停)
@@ -383,20 +395,33 @@
            {"name": d[1], "code": d[0], "score": d[2], "limit_up": d[3], "open_limit_up": d[4]})
    params["passive_buy_codes"] = params["passive_buy_codes"]
    log.logger_debug.info(f"主动买,被动买耗时:{time.time() - __start_time}")
    __start_time = time.time()
    trade_info = __load_trade_record(code, total_datas)
    params["trade_record"] = {"open_limit_up": trade_info[0], "records": trade_info[2]}
    log.logger_debug.info(f"读取交易记录耗时:{time.time() - __start_time}")
    __start_time = time.time()
    ##############################开盘啦相关信息##################################
    industry = global_util.code_industry_map.get(code)
    params["kpl_code_info"] = {
        "industry": format_plate_output(industry)}
    # 获取开盘啦板块
    plate_info = kpl_api.getStockIDPlate(code)
    plate_info = None
    if code not in kpl_block_info_dict:
        plate_info = kpl_api.getStockIDPlate(code)
    else:
        plate_info = kpl_block_info_dict.get(code)
    if plate_info:
        kpl_block_info_dict[code] = plate_info
        plate_info.sort(key=lambda x: x[2])
        plate_info.reverse()
        params["kpl_code_info"]["plate"] = [(k[0], k[1], k[2], format_plate_output(k[1])[1]) for k in plate_info]
    log.logger_debug.info(f"开盘啦板块耗时:{time.time() - __start_time}")
    __start_time = time.time()
    # 获取代码的历史涨停数据,(涨停原因,日期,板块)
    code_records = KPLLimitUpDataRecordManager.get_latest_infos(code, 4, False)[:2]
@@ -415,6 +440,8 @@
            params["kpl_code_info"]["today"] = (format_plate_output(d[2]), d[1], plates)
            break
    log.logger_debug.info(f"获取代码的历史涨停数据耗时:{time.time() - __start_time}")
    __start_time = time.time()
    return params