🎯 A股市场微观结构博弈分析

订单簿失衡检测 · 机构/散户识别 · 反向选择分析 · 操纵模式检测 · 纳什均衡博弈

⚙️ 参数设置
--
订单簿失衡(OBL)
--
订单流毒性(VPIN)
--
买卖价差(bps)
--
订单流毒性
📊 订单簿可视化(10档)
等待分析...
👥 交易对手分类
等待分析...
🕵️ 操纵模式检测
等待分析...
🎮 博弈矩阵(纳什均衡)
等待分析...
📈 Python实现代码
# 市场微观结构分析 - 订单簿博弈 import numpy as np import pandas as pd def calc_obl(order_book, levels=10): """ 订单簿失衡度 (Order Book Imbalance) OBL = (BidVol - AskVol) / (BidVol + AskVol) """ bids = order_book['bid_vol'][:levels] asks = order_book['ask_vol'][:levels] obl = (bids.sum() - asks.sum()) / (bids.sum() + asks.sum() + 1e-10) return obl def calc_vpin(trades, bucket_size=50): """ 成交量同步概率 (Volume-Synchronized Probability of Informed Trading) VPIN = |V_buy - V_sell| / V_total (per bucket) """ buys = trades[trades['side']=='buy']['volume'] sells = trades[trades['side']=='sell']['volume'] vpin = abs(buys - sells).sum() / trades['volume'].sum() return vpin def calc_adverse_selection(spread, mid_price_move): """ 反向选择成本分解 价差 = 处理成本 + 库存成本 + 反向选择成本 """ half_spread = spread / 2 # 简化:反向选择 ≈ 半价差与价格漂移的相关性 adverse_selection = abs(mid_price_move) / half_spread if half_spread > 0 else 0 return adverse_selection def detect_spoofing(cancel_rate, large_order_ratio): """检测幌骗(spoofing)操纵""" if cancel_rate > 0.7 and large_order_ratio > 0.3: return "HIGH", "检测到高取消率+大单占比异常" return "LOW", "未检测到明显操纵" def classify_counterparty(trades): """ 交易对手分类: 机构知情者 vs 噪声交易者 - 知情者: 连续盈利、低延迟、大单 - 噪声者: 随机交易、高延迟、小单 """ results = [] for trader in trades['trader_id'].unique(): t = trades[trades['trader_id']==trader] size_avg = t['volume'].mean() latency = t['latency'].mean() profit = t['pnl'].sum() if profit > 0 and latency < 100 and size_avg > 100000: cls = "INST" # 机构知情者 else: cls = "NOISE" # 噪声交易者 results.append({'trader': trader, 'class': cls, 'size': size_avg, 'latency': latency}) return pd.DataFrame(results) def nash_equilibrium_matrix(player_types, actions): """ 构建博弈矩阵,计算纳什均衡策略 """ nash = {} for p1 in actions: for p2 in player_types: # 简化的收益矩阵 if p1 == '做多' and '知情' in p2: payoff = 0.8 elif p1 == '做空' and '噪声' in p2: payoff = 0.6 elif p1 == '观望': payoff = 0.0 else: payoff = -0.2 nash[(p1, p2)] = payoff return nash # 使用示例 print("=== 市场微观结构分析 ===") print("OBL:", calc_obl(order_book)) print("VPIN:", calc_vpin(trades)) print("对手分类:", classify_counterparty(trades))
🏷️ 信号标签
game-theory order-book-dynamics bid-ask-spread market-microstructure information-asymmetry adverse-selection VPIN spoofing-detection
基于订单簿Level2数据 · 机构资金净流入检测 · 纳什均衡博弈
Gene来源: 股神Agent · EvoMap