| | |
| | | import constant |
| | | import outside_api_command_manager |
| | | from cancel_strategy.s_l_h_cancel_strategy import SCancelBigNumComputer |
| | | from code_attribute import gpcode_manager, code_volumn_manager, global_data_loader, zyltgb_util |
| | | from code_attribute import gpcode_manager, code_volumn_manager, global_data_loader, zyltgb_util, code_nature_analyse |
| | | from code_attribute.code_l1_data_manager import L1DataManager |
| | | from code_attribute.gpcode_manager import CodePrePriceManager |
| | | from huaxin_client import l2_data_transform_protocol |
| | |
| | | from l2.cancel_buy_strategy import GCancelBigNumComputer, \ |
| | | DCancelBigNumComputer |
| | | from l2.code_price_manager import Buy1PriceManager |
| | | from l2.huaxin import huaxin_target_codes_manager |
| | | from l2.huaxin import huaxin_target_codes_manager, l2_huaxin_util |
| | | from l2.huaxin.huaxin_target_codes_manager import HuaXinL1TargetCodesManager |
| | | from l2.l2_data_manager import TradePointManager, OrderBeginPosInfo |
| | | from l2.l2_data_util import L2DataUtil |
| | | from l2.l2_sell_manager import L2MarketSellManager |
| | | from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager |
| | | from l2.l2_transaction_data_processor import HuaXinTransactionDatasProcessor |
| | | from l2.place_order_single_data_manager import L2TradeSingleCallback, L2TradeSingleDataManager |
| | | from log_module import async_log_util, log_export |
| | | from log_module.log import hx_logger_contact_debug, hx_logger_trade_callback, \ |
| | | hx_logger_l2_orderdetail, hx_logger_l2_market_data, logger_l2_g_cancel, logger_debug, \ |
| | | logger_system, logger_trade, logger_local_huaxin_l1_trade_info, logger_l2_codes_subscript |
| | | logger_system, logger_trade, logger_local_huaxin_l1_trade_info, logger_l2_codes_subscript, logger_l2_radical_buy |
| | | from third_data import block_info, kpl_data_manager, history_k_data_manager, huaxin_l1_data_manager |
| | | from third_data.code_plate_key_manager import KPLCodeJXBlockManager, CodePlateKeyBuyManager |
| | | from third_data.code_plate_key_manager import KPLCodeJXBlockManager, CodePlateKeyBuyManager, RadicalBuyBlockManager |
| | | from third_data.history_k_data_util import JueJinApi |
| | | from trade import trade_manager, l2_trade_util, \ |
| | | trade_data_manager, trade_constant |
| | |
| | | # 格式 (代码,现价,涨幅,量,更新时间,买1价格,买1量) |
| | | price = d[1] |
| | | L1DataManager.set_l1_current_price(code, price) |
| | | huaxin_l1_data_manager.set_buy1_data(code,d[5], d[6]) |
| | | huaxin_l1_data_manager.set_buy1_data(code, d[5], d[6]) |
| | | |
| | | # 获取L1现价 |
| | | @classmethod |
| | |
| | | except Exception as e: |
| | | logger_debug.exception(e) |
| | | |
| | | def OnLimitUpActiveBuy(self, code, huaxin_timestamp): |
| | | try: |
| | | # 判断最近60个交易日有无涨停 |
| | | # 判断昨日是否涨停过 |
| | | async_log_util.info(logger_l2_radical_buy, f"涨停主动买:{code}-{huaxin_timestamp}") |
| | | k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code) |
| | | if k_format and k_format[13] and not k_format[14]: |
| | | # 判断是否有大单,判断最近的主动买占了总买额的多少 |
| | | refer_sell_data = L2MarketSellManager().get_refer_sell_data(code, l2_huaxin_util.convert_time( |
| | | huaxin_timestamp)) |
| | | async_log_util.info(logger_l2_radical_buy, f"参考总卖额:{code}-{refer_sell_data}") |
| | | refer_sell_time = refer_sell_data[0] |
| | | # 获取最近的主动买成交量 |
| | | deal_infos = HuaXinSellOrderStatisticManager.get_latest_6s_active_buy_deal_volumes(code) |
| | | async_log_util.info(logger_l2_radical_buy, f"最近主动买成交:{code}-{deal_infos}") |
| | | async_log_util.info(logger_l2_radical_buy) |
| | | if refer_sell_data and refer_sell_data[1] > 100 * 1e4: |
| | | # 总卖额要大于100w |
| | | deal_volume = 0 |
| | | for i in range(len(deal_infos) - 1, -1, -1): |
| | | # >=统计到的总卖 |
| | | if int(refer_sell_time.replace(":", "")) > int(deal_infos[i][0].replace(":", "")): |
| | | break |
| | | deal_volume += deal_infos[i][1] |
| | | # 判断参考时间之后是否有大单成交 |
| | | big_deal_money_list = BigOrderDealManager().get_total_buy_money_list(code) |
| | | if len(big_deal_money_list)>0: |
| | | # 有大单成交 |
| | | yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes() |
| | | if yesterday_codes is None: |
| | | yesterday_codes = set() |
| | | result = RadicalBuyBlockManager.is_radical_buy(code, yesterday_codes) |
| | | async_log_util.info(logger_l2_radical_buy, f"计算板块结果:{code}-{result}") |
| | | except Exception as e: |
| | | async_log_util.info(logger_debug, f"激进买计算异常:{str(e)}") |
| | | |
| | | |
| | | # 回调 |
| | | my_l2_data_callback = MyL2DataCallback() |