| | |
| | | from code_attribute.gpcode_manager import BlackListCodeManager |
| | | from l2.l2_transaction_data_manager import HuaXinBuyOrderManager |
| | | from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api |
| | | from third_data.kpl_data_constant import LimitUpDataConstant |
| | | from third_data.kpl_limit_up_data_manager import LatestLimitUpBlockManager, CodeLimitUpSequenceManager |
| | | from trade.buy_strategy import OpenLimitUpGoodBlocksBuyStrategy |
| | | from utils import global_util, tool, data_export_util |
| | |
| | | code_info[5] = 1 |
| | | |
| | | response_data = json.dumps({"code": 0, "data": codes_info}) |
| | | elif url.path == "/kpl/get_plate_codes_new": |
| | | # 获取涨停原因下面的代码 |
| | | ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()]) |
| | | plate = kpl_util.filter_block(ps_dict["plate"]) |
| | | # 获取板块下的代码 |
| | | # 统计目前为止的代码涨停数量(分涨停原因) |
| | | now_limit_up_codes_info = self.__kplDataManager.get_data(KPLDataType.LIMIT_UP) |
| | | now_limit_up_codes = set([d[0] for d in now_limit_up_codes_info]) |
| | | # 获取历史涨停 |
| | | record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas |
| | | if not record_limit_up_datas: |
| | | KPLLimitUpDataRecordManager.load_total_datas() |
| | | record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas |
| | | |
| | | codes_info = [] |
| | | for d in record_limit_up_datas: |
| | | _code = d[3] |
| | | blocks = LimitUpDataConstant.get_blocks_with_history(_code) |
| | | if blocks is not None and plate not in blocks: |
| | | continue |
| | | if not tool.is_can_buy_code(d[3]): |
| | | continue |
| | | # 代码,名称,涨停时间,是否炸板,是否想买,是否已经下过单,涨停时间,自由流通市值,是否在黑名单里面 |
| | | codes_info.append( |
| | | [d[3], d[4], tool.to_time_str(int(d[5])), 1 if d[3] not in now_limit_up_codes else 0, 0, 0, d[12], |
| | | output_util.money_desc(d[13]), 1, 1 if l2_trade_util.is_in_forbidden_trade_codes(d[3]) else 0]) |
| | | codes_info.sort(key=lambda x: x[2]) |
| | | # 查询是否为想买单 |
| | | green_codes = gpcode_manager.GreenListCodeManager().list_codes_cache() |
| | | for code_info in codes_info: |
| | | code_info[4] = 1 if code_info[0] in green_codes else 0 |
| | | # 获取代码状态 |
| | | if trade_manager.CodesTradeStateManager().get_trade_state_cache( |
| | | code_info[0]) != trade_constant.TRADE_STATE_NOT_TRADE: |
| | | code_info[5] = 1 |
| | | |
| | | response_data = json.dumps({"code": 0, "data": codes_info}) |
| | | elif url.path == "/kpl/get_open_limit_up_count_rank": |
| | | # 获取炸板次数排行 |
| | | ps_dict = dict([(k, v[0]) for k, v in parse_qs(url.query).items()]) |