本页面的翻译由 LLM 生成。如果你发现翻译有误,请在 GitHub 上提交 issue 告诉我们。
永续合约:价格影响模块
- 动态计算: 根据交易规模和市场深度计算。
- OI 追踪: 在多个时间窗口记录未平仓量。
- 市场深度管理: 按交易对配置参数。
- 时间加权 OI: 使用时间窗口计算累计未平仓量。
- 多空分别处理: 按方向计算价格影响。
OI_WINDOWS_SETTINGS:OI 时间窗口设置。WINDOWS:各窗口的 OI 数据。PAIR_DEPTHS:交易对的市场深度。TRADE_LAST_WINDOW_OI:交易最近窗口的 OI。
get_trade_price_impact:计算交易价格影响。add_price_impact_open_interest:开仓时更新 OI。remove_price_impact_open_interest:平仓时更新 OI。get_price_impact_oi:获取当前价格影响 OI。
价格影响计算
Section titled “价格影响计算”使用以下公式计算。
$$Price\ Impact\ % = \frac{(Start\ OI + \frac{Trade\ Size}{2})}{One\ Percent\ Depth}$$
- Start OI: 对应方向的起始 OI。
- Trade Size: 交易规模。
- One Percent Depth: 使价格移动 1% 的交易量。
-
从
PAIR_DEPTHS获取市场深度。 -
汇总多个窗口的 OI,给予近期窗口更高权重。
-
计算价格影响百分比。
let price_impact_p = Decimal::from_ratio(start_open_interest_usd + trade_open_interest_usd.checked_div(2_u64.into())?,one_percent_depth_usd).checked_div(Decimal::from_atomics(100_u64, 0)?)?; -
将计算结果应用到成交价格。
let price_after_impact = if long {open_price + price_impact} else {open_price - price_impact};
考虑以下多单。
- 开仓价: $1000。
- 交易规模: $100,000。
- 当前 OI: $500,000。
- 1% 深度: $1,000,000。
-
计算价格影响百分比。
Price Impact % = (500,000 + 100,000 / 2) / 1,000,000 / 100 = 0.55% -
计算价格影响金额。
Price Impact = $1000 * 0.55% = $5.50 -
应用价格影响。
Price After Impact = $1000 + $5.50 = $1005.50
未平仓量管理
Section titled “未平仓量管理”模块按时间窗口管理 OI。
OI_WINDOWS_SETTINGS定义窗口时长和数量。- 开仓时由
add_price_impact_open_interest更新当前窗口 OI。 - 平仓时由
remove_price_impact_open_interest调整。 - 使用多个近期窗口,得到更稳定的指标。
- 用市场深度初始化
PAIR_DEPTHS。 - 配置
OI_WINDOWS_SETTINGS。 - 调用
get_trade_price_impact计算影响。 - 成交后用
add_price_impact_open_interest或remove_price_impact_open_interest更新 OI。
可调整以下参数。
PAIR_DEPTHS的one_percent_depth_above_usd和one_percent_depth_below_usd。OI_WINDOWS_SETTINGS的windows_count和windows_duration。
- 动态调整市场深度。
- 支持非对称价格影响。
- 引入更先进的时间加权算法。