| | |
| | | def set_order_fileter_condition(self, code, min_volume, limit_up_price, shadow_price, buy_volume, special_volumes): |
| | | if not special_volumes: |
| | | special_volumes = set() |
| | | if code not in self.filter_order_condition_dict: |
| | | # if code not in self.filter_order_condition_dict: |
| | | try: |
| | | # (最小的量, 涨停价格, 影子单价格, 买的量, 废弃使用, 特殊的量集合) |
| | | self.filter_order_condition_dict[code] = [(min_volume, limit_up_price, shadow_price, buy_volume, |
| | |
| | | from huaxin_client.l2_data_manager import L2DataUploadManager |
| | | from log_module.async_log_util import huaxin_l2_log |
| | | from log_module.log import logger_local_huaxin_l2_subscript, logger_system, logger_l2_codes_subscript, \ |
| | | hx_logger_l2_market_data_before_open |
| | | hx_logger_l2_market_data_before_open, hx_logger_l2_debug |
| | | from utils import tool |
| | | |
| | | ###B类### |
| | |
| | | if tool.trade_time_sub(tool.get_now_time_str(), "09:25:00") >= 0: |
| | | # 只读竞价数据 |
| | | break |
| | | # 只读9:20-9:25的数据 |
| | | if tool.trade_time_sub(tool.get_now_time_str(), "09:20:00") < 0: |
| | | continue |
| | | try: |
| | | # (代码,现价,涨幅,量,时间) |
| | | list_ = [market_code_dict[k] for k in market_code_dict] |
| | |
| | | flist.append(d) |
| | | flist.sort(key=lambda x: x[2], reverse=True) |
| | | datas = flist[:1000] |
| | | hx_logger_l2_debug.info(f"集合竞价涨停:{datas}") |
| | | # 将持仓股加入进去 |
| | | datas.extend(plist) |
| | | __upload_codes_info(queue_l1_w_strategy_r, datas) |
| | |
| | | from log_module import async_log_util, log_export |
| | | from third_data import kpl_data_manager, block_info |
| | | from third_data.kpl_data_constant import LimitUpDataConstant |
| | | from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager |
| | | from trade.buy_radical.radical_buy_data_manager import EveryLimitupBigDealOrderManager |
| | | from utils import global_util, tool, buy_condition_util, buy_strategy_util, trade_util |
| | | import l2_data_util |
| | |
| | | if not cls.__WantBuyCodesManager.is_in_cache( |
| | | code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code): |
| | | return False, True, f"只买想买:没在想买单和绿单", True |
| | | if cls.__TradeTargetCodeModeManager.get_mode_cache() == TradeTargetCodeModeManager.MODE_ONLY_BUY_SPECIAL_CODES: |
| | | special_blocks = BlockSpecialCodesManager().get_code_blocks(code) |
| | | if not special_blocks: |
| | | return False, True, f"只买辨识度", True |
| | | # if not cls.__WantBuyCodesManager.is_in_cache(code): |
| | | average_rate = cls.__Buy1PriceManager.get_average_rate(code) |
| | | if average_rate: |
| | |
| | | |
| | | # 交易目标票模式 |
| | | class TradeTargetCodeModeManager: |
| | | # 只买辨识度 |
| | | MODE_ONLY_BUY_SPECIAL_CODES = 2 |
| | | # 只买想买单 |
| | | MODE_ONLY_BUY_WANT_CODES = 1 |
| | | # 买所有 |
| | |
| | | self.__trade_buy_mode_cache = self.get_mode() |
| | | |
| | | def set_mode(self, mode): |
| | | if mode != self.MODE_ONLY_BUY_WANT_CODES and mode != self.MODE_BUY_ALL: |
| | | if mode != self.MODE_ONLY_BUY_WANT_CODES and mode != self.MODE_BUY_ALL and mode != self.MODE_ONLY_BUY_SPECIAL_CODES: |
| | | raise Exception("mode参数值错误") |
| | | self.__trade_buy_mode_cache = mode |
| | | RedisUtils.setex(self.__get_redis(), "trade_buy_mode", tool.get_expire(), mode) |