| | |
| | | logger_real_place_order_position, logger_device |
| | | from output import l2_output_util |
| | | from third_data import kpl_util, history_k_data_manager, huaxin_l1_data_manager, third_blocks_manager, kpl_data_manager |
| | | from third_data.code_plate_key_manager import CodePlateKeyBuyManager, KPLCodeJXBlockManager, RealTimeKplMarketData, \ |
| | | RadicalBuyBlockManager |
| | | from third_data.code_plate_key_manager import KPLCodeJXBlockManager |
| | | from third_data.history_k_data_manager import HistoryKDataManager |
| | | from third_data.history_k_data_util import JueJinApi, HistoryKDatasUtils |
| | | from third_data.kpl_data_manager import KPLDataManager |
| | |
| | | from trade import trade_manager, l2_trade_util, trade_data_manager, trade_constant |
| | | import l2_data_util as l2_data_util_old |
| | | from trade.buy_money_count_setting import BuyMoneyAndCountSetting, RadicalBuyBlockCodeCountManager |
| | | from trade.buy_radical import block_special_codes_manager |
| | | |
| | | from trade.huaxin import huaxin_trade_api, huaxin_trade_data_update, \ |
| | | huaxin_trade_record_manager, huaxin_trade_order_processor, huaxin_sell_util |
| | | from trade.huaxin.huaxin_trade_record_manager import PositionManager, DealRecordManager, DelegateRecordManager |
| | | from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager |
| | | from trade.sell import sell_manager |
| | | from trade.sell.sell_rule_manager import TradeRuleManager, SellRule |
| | | from trade.trade_data_manager import RadicalBuyDealCodesManager |
| | | from trade.trade_manager import TradeTargetCodeModeManager, AutoCancelSellModeManager |
| | | from settings.trade_setting import MarketSituationManager, TradeBlockBuyModeManager |
| | | from utils import socket_util, data_export_util, tool, huaxin_util, output_util, global_util |
| | |
| | | def __cancel_not_deal_order(self, code, order_ref, timeout=3): |
| | | time.sleep(timeout) |
| | | # 撤买单 |
| | | huaxin_trade_api.cancel_order(1, code, "", orderRef=order_ref) |
| | | huaxin_trade_api.cancel_order(huaxin_trade_api.TRADE_DIRECTION_BUY, code, "", orderRef=order_ref) |
| | | |
| | | # 交易 |
| | | def OnTrade(self, client_id, request_id, data): |
| | |
| | | limit_up_price = gpcode_manager.get_limit_up_price(code) |
| | | buy1_money = Buy1PriceManager().get_latest_buy1_money(code) |
| | | if buy1_money is None: |
| | | buy1_money = 0 |
| | | buy1_money = 1 |
| | | # 获取已经成交的大单数量 |
| | | total_big_num = 0 |
| | | total_big_count = 0 |
| | |
| | | "pay_attention": need_pay_attention, |
| | | "trade_progress_percent": round( |
| | | total_left_num * float(limit_up_price) * 100 * 100 / buy1_money, 2), # 成交进度比例 |
| | | "limit_up_price": float(gpcode_manager.get_limit_up_price(code)), |
| | | "limit_up_price": gpcode_manager.get_limit_up_price_as_num(code), |
| | | "is_near_big_order": is_near_big_order, |
| | | "block": '', |
| | | "trade_queue": [] |
| | |
| | | limit_up_data = kpl_data_manager.KPLLimitUpDataRecordManager.record_code_dict.get(code) |
| | | # 获取当前板块 |
| | | try: |
| | | limit_up_sequence = CodeLimitUpSequenceManager.get_current_limit_up_sequence(code) |
| | | if limit_up_sequence: |
| | | fdata[ |
| | | 'block'] = f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})" |
| | | limit_up_sequences = CodeLimitUpSequenceManager.get_current_limit_up_sequence(code) |
| | | if limit_up_sequences: |
| | | buy_blocks = RadicalBuyDealCodesManager().get_code_blocks(code) |
| | | blocks_info = [] |
| | | for limit_up_sequence in limit_up_sequences: |
| | | # 获取代码下单的板块 |
| | | if buy_blocks and limit_up_sequence[0] not in buy_blocks: |
| | | continue |
| | | blocks_info.append( |
| | | f"{limit_up_sequence[0]}-{limit_up_sequence[1]}({limit_up_sequence[2]}&{limit_up_sequence[2] - limit_up_sequence[3]})") |
| | | if buy_blocks: |
| | | fdata['block'] = "/".join(blocks_info) |
| | | except: |
| | | pass |
| | | # 获取涨停时间 |
| | |
| | | # 获取大单成交列表 |
| | | code = data["code"] |
| | | data_list = BigOrderDealManager().get_total_buy_money_list(code) |
| | | bigger_money = l2_data_util_old.get_big_money_val(float(gpcode_manager.get_limit_up_price(code)), |
| | | bigger_money = l2_data_util_old.get_big_money_val(gpcode_manager.get_limit_up_price_as_num(code), |
| | | tool.is_ge_code(code)) |
| | | fdatas = [] |
| | | for d in data_list: |
| | |
| | | source_origin_dict = copy.deepcopy(CodeThirdBlocksManager().get_source_blocks_origin(code)) |
| | | if not source_origin_dict: |
| | | source_origin_dict = {} |
| | | kpl_blocks = RadicalBuyBlockManager.get_code_kpl_blocks(code) |
| | | kpl_blocks = set() |
| | | if kpl_blocks is None: |
| | | kpl_blocks = set() |
| | | if not kpl_blocks: |
| | | KPLCodeJXBlockManager().load_jx_blocks_radical(code) |
| | | |
| | | filter_blocks, match_blocks = RadicalBuyBlockManager.get_code_blocks(code) |
| | | source_origin_dict[SOURCE_TYPE_KPL] = kpl_blocks |
| | |
| | | self.send_response({"code": 0, "data": list(codes), "msg": f""}, |
| | | client_id, |
| | | request_id) |
| | | |
| | | elif ctype == "async_radical_buy_special_codes": |
| | | # 同步扫入买的辨识度代码 |
| | | count = block_special_codes_manager.update_block_special_codes() |
| | | self.send_response({"code": 0, "msg": f"更新成功数量:{count}"}, |
| | | client_id, |
| | | request_id) |
| | | |
| | | |
| | | except Exception as e: |
| | | logging.exception(e) |
| | | logger_debug.exception(e) |