> For the complete documentation index, see [llms.txt](https://docs.termina.technology/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.termina.technology/documentation/developer-docs-zh/liu-cheng/zhong-lu-you-li-shi-ding-dan-liu/tong-guo-ju-he-qi-zhong-lu-you.md).

# 通过聚合器重路由

{% stepper %}
{% step %}

#### 重路由订单流

要通过 Jupiter Metis 重新路由订单流，并评估程序新报价逻辑的表现，请在 [`sim run` 命令](/documentation/developer-docs-zh/liu-cheng/zhong-fang-shi-chang.md)中启用重路由参数。

```bash
sim run \
  --start-slot 400000000 \
  --end-slot 400010000 \
  --program-id <PROGRAM_ID> \
  --program-so <NEW_QUOTING_LOGIC_BINARY> \
  --reroute-order-flow router
```

{% endstep %}

{% step %}

#### 选择聚合器

模拟可以匹配来自主要聚合器的 swap：Jupiter、DFlow、OKX 和 Titan。

默认情况下，只有 Jupiter 的交易会通过 Metis 重路由，因为这样重放最忠实。但其他路由器的 swap 也可以通过 Metis 重路由。

```bash
sim run ...
  --reroute-aggregators jupiter,okx
```

例如，如果某个做市商没有接入 DFlow 或 Titan，在主网上无法从它们获得订单流，就可以在模拟中只启用 Jupiter 和 OKX。
{% endstep %}

{% step %}

#### 切换套利

聚合器交易量中有相当一部分是有毒订单流，尤其是原子套利：在单笔交易内完成的循环，例如 `SOL` → `USDC` → `SOL`。

大多数套利交易由聚合器之外的 searcher 构建，只是被包装在聚合器的指令中。这意味着通过 Metis 重路由它们，往往无法反映它们实际的构建方式。

默认情况下，原子套利不会被重路由，而是保留原始路径，但可以手动开启。开启后，模拟会寻找一条仍保留原始 swap 意图的新路径：更具体地说，一笔原本经过交易场所 A 的 `SOL` → `USDC` → `SOL` 套利，可以被重路由到交易场所 B。

```bash
sim run ...
  --reroute-circular-arbs
```

{% endstep %}
{% endstepper %}

{% hint style="info" %}

### 自定义市场条件

`sim` CLI 客户端目前仅支持替换程序二进制文件。如需测试其他参数，例如：

* 预言机更新中的公允价格，以及该更新在区块中的位置
* 池子金库中部署的资金量
* 注入新的池子

请使用 [Rust 客户端](/documentation/developer-docs-zh/gai-shu/an-zhuang/rust-can-kao.md)，并参考[公开示例](https://github.com/nitro-svm/examples)。
{% endhint %}
