> For the complete documentation index, see [llms.txt](https://infinity.aloen.to/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infinity.aloen.to/backtest-version/alerts-backtest-version.md).

# 警报 - 回测版本 Alerts - Backtest Version

Infinity Algo V3.0 的 **Backtest 版本**包括**自动警报生成**功能，具有结构化消息，非常适合交易自动化。与标准版本不同，警报通过编程方式触发，无需手动设置。

{% hint style="success" %}
**快速开始：** 在设置中启用警报 → 创建一个 "Any alert() function call" 警报 → 接收包含所有止盈(TP)/止损(SL)水平的自动化信号
{% endhint %}

***

## 🚀 与标准版本的主要区别

{% columns %}
{% column width="50%" %}
**📋 标准版本**

* 每种信号类型手动设置
* 用户定义的消息格式
* 仅基本止盈(TP)/止损(SL)警报
* 需要文本格式化
* 需要多个警报
  {% endcolumn %}

{% column %}
**🤖 Backtest 版本**

* ✅ 通过代码自动生成
* ✅ 预格式化结构
* ✅ 包含所有止盈(TP)/止损(SL)水平
* ✅ 准备就绪用于自动化
* ✅ 单一统一警报
  {% endcolumn %}
  {% endcolumns %}

***

## ⚙️ 如何启用自动警报

{% stepper %}
{% step %}
**添加 Backtest 指标**

从 Invite-only Scripts 将 **Backtest 版本**加载到图表
{% endstep %}

{% step %}
**配置警报设置**

导航到指标设置并启用：`Enable Alerts?` （启用警报？）
{% endstep %}

{% step %}
**创建主警报**

1. 右键点击图表 → **Add Alert** （添加警报）
2. 设置条件：**Infinity Algo Backtest** → **Any alert() function call**
3. 配置通知（webhook、电子邮件、移动通知）

{% hint style="warning" %}
仅创建**一个**警报 - 所有信号通过此单个警报流转
{% endhint %}
{% endstep %}
{% endstepper %}

***

## 📋 警报消息格式

Backtest 版本生成结构化消息，非常适合自动化，支持可选的百分比显示退出水平。

{% tabs %}
{% tab title="📊 标准格式" %}
{% code title="标准输出:" overflow="wrap" %}

```
Exchange=BINANCE
Symbol=BTCUSDT
Side=Long
Leverage=10x
Entry=45250.50
TP1=45700.00
TP2=46150.00
TP3=46600.00
TP4=47050.00
TP5=47500.00
TP6=47950.00
SL=43250.00
SignalType=AI Sniper Buy
```

{% endcode %}
{% endtab %}

{% tab title="📊 带百分比格式" %}
{% code title="带百分比输出:" overflow="wrap" %}

```
Exchange=BINANCE
Symbol=BTCUSDT
Side=Long
Leverage=10x
Entry=45250.50
TP1=45700.00 (30%)
TP2=46150.00 (25%)
TP3=46600.00 (20%)
TP4=47050.00 (15%)
TP5=47500.00 (7%)
TP6=47950.00 (3%)
SL=43250.00 (100%)
SignalType=AI Sniper Buy
```

{% endcode %}

{% hint style="success" %}
**新功能：** 在设置中启用 `📊 Show Exit % in Alerts?` （在警报中显示退出百分比？）可将退出百分比直接包含在警报消息中
{% endhint %}
{% endtab %}

{% tab title="🎯 消息组件" %}
**核心字段（始终存在）**

* `Exchange` → 交易场所（自动检测）
* `Symbol` → 交易对/代码
* `Side` → 多头(Long)或空头(Short)头寸
* `Leverage` → 头寸杠杆
* `Entry` → 信号时的进场价格

**条件字段**

* `TP1-TP6` → 仅在设置中启用时
* `SL` → 仅在启用止损时
* `SignalType` → 用于 HL/AI Sniper 模式

**可选百分比**

* 退出百分比 → 启用 `Show Exit % in Alerts?` 时
* 格式：`Price (XX%)`
* 止损始终显示 `(100%)`
  {% endtab %}
  {% endtabs %}

#### 多重止盈策略

启用多个止盈时，警报包含所有激活水平，可用于复杂的退出策略：

* **部分平仓** 在每个止盈水平，基于配置的百分比
* **逐步退出** 头寸以逐步锁定利润
* **风险降低** 随着价格有利移动
* **可选百分比** 直接在警报中显示，便于自动化

<details>

<summary><strong>📊 理解退出百分比</strong></summary>

`Show Exit % in Alerts?` 设置将头寸退出百分比添加到每个水平，使 bot 更容易解析退出大小：

**无百分比（默认）：**

* 仅清晰的价格水平
* Bot 需要单独的退出大小配置
* 对手动交易者更简洁

**启用百分比：**

* 每个水平显示 `Price (XX%)`
* Bot 可直接从警报解析退出大小
* 不需要额外配置

{% hint style="info" %}
**使用示例：** 你的 bot 收到 `TP1=45700.00 (30%)` 并知道在 45700.00 处平仓 30% 的头寸，无需单独的配置文件。
{% endhint %}

</details>

***

## 💡 高级配置

#### 自定义选项

<details>

<summary><strong>🏷️ 自定义代码覆盖（Custom Symbol Override）</strong></summary>

使用 **Alert Ticker** 设置来：

* 为不同的代码发送警报
* 规范化经纪商的命名约定
* 处理交易所特定的格式化

示例：为 BitMEX 兼容性设置 `XBTUSD` 而不是 `BTCUSDT`

</details>

<details>

<summary><strong>⚡ 杠杆自定义（Leverage Customization）</strong></summary>

**Alert Leverage** 设置允许：

* 与显示设置不同的杠杆
* 交易所特定限制（例如最大 20x）
* 风险管理覆盖
* 头寸规模计算

</details>

***

## 🛠️ 真实世界设置示例

### 示例 1：简单多头进场

{% columns %}
{% column width="50%" %}
**配置：**

* 退出类型：`Percentage` （百分比）
* 仅启用 TP1：`2%`
* 止损：`3%` 已启用
* 杠杆：`5x`
* **Show Exit %:** `Disabled` ❌
  {% endcolumn %}

{% column %}
{% code title="输出" %}

```
Exchange=BINANCE
Symbol=ETHUSDT
Side=Long
Leverage=5x
Entry=2250.75
TP1=2295.77
SL=2183.23
```

{% endcode %}
{% endcolumn %}
{% endcolumns %}

### 示例 2：复杂多止盈策略

{% columns %}
{% column width="50%" %}
**配置：**

* 所有 6 个止盈已启用
* 止损已启用
* 信号模式：`AI Sniper`
* 杠杆：`10x`
* **Show Exit %:** `Enabled` ✅
  {% endcolumn %}

{% column %}
{% code title="带百分比的输出" %}

```
Exchange=BINANCE
Symbol=BTCUSDT
Side=Short
Leverage=10x
Entry=45000.00
TP1=44550.00 (30%)
TP2=44100.00 (25%)
TP3=43650.00 (20%)
TP4=43200.00 (15%)
TP5=42750.00 (7%)
TP6=42300.00 (3%)
SL=46350.00 (100%)
SignalType=AI Sniper Sell
```

{% endcode %}
{% endcolumn %}
{% endcolumns %}

***

## ⚠️ 关键考虑事项

{% hint style="danger" %}
**必须了解的设置规则**

**一个警报规则全部**

* ✅ 为每个交易对和时间框架创建**仅一个** TradingView 警报
* ✅ 使用 `Any alert() function call` 作为触发条件
* ✅ 所有信号（多头/空头/止盈/止损）通过此单一警报流转

**处理与计时**

* ⏱️ 警报在**收盘时**触发（已确认的信号）
* ⏱️ 考虑 TradingView 处理延迟（约 1-3 秒）
* ⏱️ 考虑 webhook 的网络延迟
* ⏱️ 在自动化中添加重试逻辑
  {% endhint %}

***

## 🔍 故障排除指南

| 问题              | 可能的原因   | 解决方案                                                                                                                                |
| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **没有警报触发**      | 设置配置错误  | <p>• 在设置中启用 <code>Enable Alerts</code> （启用警报）<br>• 验证警报条件是 <code>Any alert() function call</code><br>• 确保使用 Backtest 版本（不是标准版本）</p> |
| **错误的代码**       | 启用了覆盖   | <p>• 清除 <code>Alert Ticker</code> 字段以使用当前图表<br>• 检查交易所格式化要求</p>                                                                     |
| **缺少止盈/止损水平**   | 未配置     | <p>• 在退出设置中启用所需水平<br>• 将退出类型设置为 <code>Percentage</code> （百分比）<br>• 配置止盈百分比</p>                                                      |
| **Webhook 未接收** | 连接问题    | <p>• 使用 webhook.site 测试 webhook URL<br>• 检查消息格式兼容性<br>• 验证 JSON 格式化（如需要）</p>                                                        |
| **重复警报**        | 创建了多个警报 | <p>• 删除所有警报<br>• 仅创建一个主警报<br>• 检查警报历史</p>                                                                                           |

***

## 🎯 集成方法

根据你的技术技能和需求选择集成路径：

{% tabs %}
{% tab title="🚀 无代码（2 分钟设置）" %}
**最快的设置 - 无需编程**

**选项 1：TradingView → Telegram/Discord（通过 Webhook 桥接）**

{% stepper %}
{% step %}
**创建 Webhook 桥接**

1. 访问 [tradingview.to](https://tradingview.to)
2. 创建免费账户
3. 生成 webhook URL
4. 选择目标（Telegram/Discord）
   {% endstep %}

{% step %}
**配置 TradingView 警报**

1. 创建 `Any alert() function call` 警报
2. 从 tradingview\.to 粘贴 webhook URL
3. 完成！消息会自动转发到你的频道
   {% endstep %}
   {% endstepper %}

**选项 2：直接 Discord Webhook**

{% code title="Discord 设置" %}

```
1. 打开 Discord 服务器设置
2. 集成(Integrations) → Webhooks → 新 Webhook
3. 复制 webhook URL
4. 粘贴到 TradingView 警报
```

{% endcode %}

{% hint style="success" %}
**适用于：** 只想在 Telegram/Discord 中接收信号的交易者，无需任何编码
{% endhint %}
{% endtab %}

{% tab title="⚙️ 低代码（灵活）" %}
**视觉自动化工具**

**使用 Pipedream/Make（原名 Integromat）**

**为什么使用这个？**

* 重新格式化消息
* 添加条件逻辑
* 发送到多个目标
* 添加重试逻辑
* 无需服务器

{% code title="示例工作流" %}

```
1. HTTP Webhook 触发（从 TradingView 接收）
2. 解析消息
3. 格式化为目标格式
4. 发送到：
   - Telegram Bot
   - Discord Webhook
   - Google Sheets
   - 电子邮件
   - 数据库
```

{% endcode %}

**Pipedream 工作流示例**

{% code title="pipedream-parser.js" %}

```javascript
export default defineComponent({
  async run({ steps, $ }) {
    // 解析传入的警报
    const lines = steps.trigger.event.body.split("\n");
    const data = {};

    lines.forEach((line) => {
      const [key, value] = line.split("=");
      data[key] = value;
    });

    // 格式化为 Discord
    return {
      content: `🔔 ${data.Symbol} 信号`,
      embeds: [
        {
          title: `${data.Side} 头寸`,
          fields: [
            { name: "进场价", value: data.Entry, inline: true },
            { name: "止盈1", value: data.TP1, inline: true },
            { name: "止损", value: data.SL, inline: true },
          ],
          color: data.Side === "Long" ? 0x00ff00 : 0xff0000,
        },
      ],
    };
  },
});
```

{% endcode %}

{% hint style="info" %}
**适用于：** 需要自定义但不想管理服务器的半技术用户
{% endhint %}
{% endtab %}

{% tab title="🔧 专业（完全控制）" %}
**自定义服务器实现**

为获得最大控制，运行你自己的 webhook 端点：

{% code title="webhook-server.py" lineNumbers="true" %}

```python
from fastapi import FastAPI, Request
import hmac
import hashlib

app = FastAPI()

@app.post("/webhook")
async def handle_alert(request: Request):
    # 验证 TradingView 签名（可选）
    body = await request.body()

    # 解析警报
    data = parse_alert(body.decode())

    # 自定义逻辑
    if data['Symbol'] in WATCHLIST:
        # 执行交易
        execute_trade(data)

        # 记录到数据库
        log_trade(data)

        # 通知多个频道
        notify_telegram(data)
        notify_discord(data)

    return {"status": "processed"}
```

{% endcode %}

**高级功能：**

* 请求验证
* 数据库日志
* 多交易所执行
* 自定义风险管理
* 重试逻辑和错误处理

{% hint style="warning" %}
**适用于：** 需要自定义逻辑、身份验证或复杂路由的开发者
{% endhint %}
{% endtab %}
{% endtabs %}

***

## 🤖 流行的 Bot 集成

### Cornix Bot（自动交易）

{% columns %}
{% column width="60%" %}
**最简单的自动执行：**

1. 从 bot 设置获取 Cornix webhook URL
2. 粘贴到 TradingView 警报 webhook 字段
3. Cornix 自动解析并执行交易

**支持：**

* 多个交易所（Binance、Bybit 等）
* 头寸管理
* 风险设置
* DCA 策略
  {% endcolumn %}

{% column %}
{% hint style="success" %}
**无需编码！** Cornix 直接理解 Infinity Algo 的格式
{% endhint %}
{% endcolumn %}
{% endcolumns %}

### 其他交易 Bot

| Bot 服务            | 设置难度     | 功能         | 最适合   |
| ----------------- | -------- | ---------- | ----- |
| **Cornix**        | ⭐ 最简单    | 完全自动化      | 初学者   |
| **3Commas**       | ⭐⭐ 简单    | DCA、网格 bot | 中级    |
| **TradersPost**   | ⭐⭐ 简单    | 多 broker   | 股票交易者 |
| **PineConnector** | ⭐⭐⭐ 中等   | MT4/MT5 桥接 | 外汇    |
| **自定义 Bot**       | ⭐⭐⭐⭐⭐ 困难 | 无限制        | 开发者   |

***

## ⚠️ 重要限制和陷阱

{% hint style="danger" %}
**必须了解：**

* TradingView 需要**付费计划**才能使用 webhook
* 使用 `Any alert() function call` 作为条件
* 最多 15 个警报/3 分钟（TradingView 限制）
* Discord：每个 webhook 约 30 条消息/分钟
* Telegram：总共约 30 条消息/秒，每个聊天 1 条/秒
  {% endhint %}

***

## 📚 快速开始建议

<details>

<summary><strong>我只想在 Telegram/Discord 中获取信号</strong></summary>

使用 **tradingview\.to**（方案 A）- 2 分钟设置，无需编码

</details>

<details>

<summary><strong>我想在 Binance/Bybit 上自动交易</strong></summary>

使用 **Cornix Bot** - 粘贴 webhook URL，配置风险设置，完成

</details>

<details>

<summary><strong>我需要自定义格式或多个目标</strong></summary>

使用 **Pipedream 或 Make**（方案 B）- 视觉工作流构建器

</details>

<details>

<summary><strong>我是开发者，需要完全控制</strong></summary>

构建自定义端点（方案 C）- 参看专业选项卡中的示例

</details>

***

## ✅ 总结

{% hint style="info" %}
**Backtest 版本提供：**

✅ **零手动设置** - 所有警报自动处理\
✅ **结构化格式** - 为任何平台做好准备解析\
✅ **完整数据** - 一条消息中的所有止盈/止损水平\
✅ **信号识别** - 准确了解哪个策略触发\
✅ **直接集成** - 与任何 webhook 端点兼容\
✅ **回测准确性** - 现实的警报生成用于测试
{% endhint %}

非常适合自动交易系统、回测验证和免提警报管理。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://infinity.aloen.to/backtest-version/alerts-backtest-version.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
