| | |
| | | from trade.huaxin.huaxin_trade_record_manager import DelegateRecordManager |
| | | from trade.order_statistic import DealAndDelegateWithBuyModeDataManager |
| | | from trade.buy_radical.radical_buy_data_manager import RadicalBuyDataManager, RadicalBuyBlockManager, \ |
| | | EveryLimitupBigDealOrderManager |
| | | EveryLimitupBigDealOrderManager, RadicalCodeMarketInfoManager |
| | | from trade.sell.sell_rule_manager import TradeRuleManager |
| | | from trade.trade_data_manager import RadicalBuyDealCodesManager |
| | | from trade.trade_manager import CodesTradeStateManager |
| | |
| | | CodesNameManager().add_code_names(code_name_map) |
| | | |
| | | # 更新辨识度代码 |
| | | threading.Thread(target= block_special_codes_manager.update_block_special_codes, daemon=True).start() |
| | | threading.Thread(target=block_special_codes_manager.update_block_special_codes, |
| | | daemon=True).start() |
| | | |
| | | sk.sendall( |
| | | socket_util.load_header(json.dumps({"code": 0, "data": fdatas}).encode(encoding='utf-8'))) |
| | |
| | | L2MarketSellManager().set_current_total_sell_data(code, time_str, |
| | | data["totalAskVolume"] * data["avgAskPrice"], |
| | | data["totalAskVolume"], sell_1_info, data.get("sell")) |
| | | # 设置扫入数据 |
| | | sell_2_info = data["sell"][1] if data.get("sell") and len(data.get("sell")) > 1 else None |
| | | RadicalCodeMarketInfoManager().set_market_info(code, time_str, limit_up_price, data["buy"][0], sell_2_info) |
| | | # 判断是否下单 |
| | | state = CodesTradeStateManager().get_trade_state_cache(code) |
| | | if not trade_util.is_can_order_by_state(state): |
| | | # 不处于可下单状态 |
| | | RadicalBuyDataManager().market_info_change(code) |
| | | |
| | | |
| | | @classmethod |
| | | def trading_order_canceled(cls, code, order_no): |
| | |
| | | f"开得太高:{code}") |
| | | radical_buy_data_manager.ExcludeIndexComputeCodesManager.add_code(code) |
| | | return True |
| | | if not RadicalCodeMarketInfoManager().is_opened_limit_up(code): |
| | | async_log_util.info(logger_l2_radical_buy, |
| | | f"没有炸过板:{code}") |
| | | return True |
| | | |
| | | radical_buy_data_manager.ExcludeIndexComputeCodesManager.remove_code(code) |
| | | |
| | | if result_by_volume[0] == radical_buy_strategy.BUY_MODE_DIRECT and not tool.is_sh_code(code): |
| | |
| | | if buy_result: |
| | | # 下单成功 |
| | | radical_buy_data_manager.BlockPlaceOrderRecordManager().add_record(code, buy_blocks) |
| | | radical_buy_strategy.clear_latest_deal_active_buy_order(code) |
| | | radical_buy_strategy.clear_data(code) |
| | | RDCancelBigNumComputer().clear_data(code) |
| | | return True |
| | | else: |
| | |
| | | if can_clear_before_data: |
| | | # 清除 |
| | | EveryLimitupBigDealOrderManager.clear(code) |
| | | |
| | | |
| | | |
| | | |
| | | # 回调 |
| | |
| | | def __init(): |
| | | def run_pending(): |
| | | schedule.every().day.at("15:10:00").do(zyltgb_util.update_all_zylt_volumes) |
| | | schedule.every().day.at("01:01:00").do(__test_pre_place_order) |
| | | schedule.every().day.at("01:01:30").do(__test_pre_place_order) |
| | | schedule.every().day.at("09:10:00").do(__subscript_fixed_codes_l2) |
| | | schedule.every().day.at("08:00:01").do(history_k_data_manager.update_history_k_bars) |
| | | schedule.every().day.at("08:30:01").do(history_k_data_manager.update_history_k_bars) |