| | |
| | | return cls.__get_history_index(code, block, yesterday_limit_up_codes, exclude_codes, ignore_open_limit_up) |
| | | |
| | | @classmethod |
| | | def filter_before_codes(cls, code, block, history_index, |
| | | history_before_codes_info, |
| | | yesterday_limit_up_codes): |
| | | return cls.__filter_before_codes(code, block, history_index, |
| | | history_before_codes_info, |
| | | yesterday_limit_up_codes) |
| | | |
| | | @classmethod |
| | | def __get_history_index(cls, code, block, yesterday_limit_up_codes, exclude_codes=None, ignore_open_limit_up=True): |
| | | """ |
| | | 获取历史涨停身位 |
| | |
| | | from code_attribute import gpcode_manager |
| | | from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager, LimitUpDataConstant |
| | | from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager |
| | | from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager |
| | | from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager, RadicalBuyDataManager |
| | | from utils import tool, import_util |
| | | from trade import trade_manager, l2_trade_util, trade_constant |
| | | from trade.trade_data_manager import CodeActualPriceProcessor |
| | | from trade.trade_data_manager import CodeActualPriceProcessor, RadicalBuyDealCodesManager |
| | | |
| | | trade_gui = import_util.import_lib("trade.trade_gui") |
| | | |
| | |
| | | latest_add_codes = set() |
| | | |
| | | |
| | | def compute_code_order(code, top_in_blocks=None, yesterday_limit_up_codes=None, today_history_limit_up_codes =None): |
| | | def compute_code_order(code, top_in_blocks=None, yesterday_limit_up_codes=None, today_history_limit_up_codes=None): |
| | | """ |
| | | 计算代码的排序 |
| | | @param code: |
| | |
| | | return -1 |
| | | # 黑名单 |
| | | if l2_trade_util.is_in_forbidden_trade_codes(code): |
| | | return -1 |
| | | |
| | | deal_codes = RadicalBuyDealCodesManager().get_deal_codes() |
| | | result = RadicalBuyDataManager().is_code_can_buy(code, deal_codes) |
| | | if not result[0]: |
| | | return -1 |
| | | |
| | | # 想买单 |
| | |
| | | index = top_in_blocks.index(b) |
| | | # 查询在板块中的排序 |
| | | info = RadicalBuyBlockManager().get_history_index(code, b, yesterday_limit_up_codes) |
| | | if info[0] < 4: |
| | | if info[0] > 0: |
| | | info = RadicalBuyBlockManager().filter_before_codes(code, b, info[0], info[1], |
| | | yesterday_limit_up_codes) |
| | | if info[0] < 3: |
| | | return index + 1 |
| | | elif info[0] < 6: |
| | | # 判断是否具有辨识度 |
| | |
| | | pricePre = gpcode_manager.CodePrePriceManager.get_price_pre_cache(code) |
| | | if pricePre is not None: |
| | | # 是否是想买单 |
| | | order_index = compute_code_order(code, top_in_blocks, yesterday_limit_up_codes, today_history_limit_up_codes) |
| | | order_index = compute_code_order(code, top_in_blocks, yesterday_limit_up_codes, |
| | | today_history_limit_up_codes) |
| | | rate = round((price - pricePre) * 100 / pricePre, 2) |
| | | if tool.is_ge_code(code): |
| | | # 创业板的涨幅需要打折 |