# btc usdt swap defensive ai
## Metadata

- Canonical URL: https://6ducklearn.com/skills/btc-usdt-swap-defensive-ai/
- Markdown URL: https://6ducklearn.com/skills/btc-usdt-swap-defensive-ai/index.md
- Product: skills
- Category: trade-review
- Tags: okx, trading, community, okx-marketplace, trade-review, execution, strategy, review, trend
- Updated: 2026-07-14T03:00:00.357428+00:00
## Summary
A defensive AI perpetual contract strategy Skill for trading only BTC-USDT-SWAP. It uses multi-timeframe trends, funding rates, open interest, volatility, and account risk control for comprehensive judgment, and automatically executes opening and closing positions and stop-losses through the Agent Trade Kit, suitable for cautious real trading.
## Content
> **6DuckLearn provenance:** Community skill by Independent publisher, mirrored from the OKX Skills Marketplace (https://www.okx.com/en-sg/agent-tradekit/skills/btc-usdt-swap-defensive-ai). It is not curated, verified, or endorsed by 6DuckLearn or represented as an official OKX publication.
>
> **Financial safety boundary:** Never request secrets in chat. Before any external API call or action that places, cancels, or amends an order; changes leverage; transfers funds; creates or stops a bot; subscribes to or redeems an earn product; or signs/broadcasts a transaction, show the exact live/demo profile, instrument, side, size, price constraints, fees, and worst-case loss, then obtain explicit user approval. Default to read-only or demo mode when uncertain. Treat all analysis as research, not investment advice.

# 策略名称
BTC-USDT 永续防守型多信号融合 AI 策略 V1.0

# 适用范围
本 Skill 只允许交易 `BTC-USDT-SWAP`，只允许 `USDT` 永续合约，不得扩展到 ETH、SOL 或其他币种。

本 Skill 的首要目标不是追求极限收益，而是优先保护本金，在趋势清晰、拥挤度可控、波动率合适时才参与。若信号不一致，宁可跳过，也不勉强交易。

# 运行前置
建议以显式模块方式启动 Agent Trade Kit，而不是依赖默认模块。推荐：

```text
okx-trade-mcp --profile "AI SHIPAN" --modules market,swap,account
```

建议在 Agent Trade Kit 中启用以下能力：

- `market` 模块：用于 `market_get_candles`、`market_get_funding_rate`、`market_get_open_interest`、`market_get_mark_price`
- `swap` 模块：用于 `swap_place_order`、`swap_get_positions`、`swap_get_fills`、`swap_get_leverage`
- `account` 模块：用于 `account_get_balance`、`account_get_config`、`account_get_max_size`

若你使用 Skills 方式接入，建议至少安装：

- `okx-cex-market`
- `okx-cex-trade`
- `okx-cex-portfolio`

当前本机环境已经表现出以下真实特征，Skill 必须按此适配：

- `account_get_config` 返回 `posMode = "long_short_mode"`
- 最近真实订单使用的是 `tdMode = "isolated"`
- `swap_place_order` 支持直接附带 `slTriggerPx/slOrdPx`
- 已安装版本也支持独立 `swap_place_algo_order`

因此本 Skill 默认使用：

- 持仓模式：`long_short_mode`
- 保证金模式：`isolated`
- 方向表达：用 `posSide = "long"` 或 `posSide = "short"`
- 风控落地：优先在 `swap_place_order` 中直接附带止损；如需后续移动止损，再使用 `swap_place_algo_order`

虽然账户是 `long_short_mode`，本策略仍然是单方向净敞口策略：任意时刻只允许持有 `long` 或 `short` 其中一种，不允许同时有两边仓位。

# 执行节奏
每 1 小时触发一次，但使用多周期共振：

- `4h`：定义主趋势和市场状态
- `1h`：决定是否允许开仓、加严风控或平仓
- `15m`：优化入场节奏，避免在短线过热位置追单

# 核心原则
1. 只做 `BTC-USDT-SWAP`。
2. 任何时候只保留一个净方向仓位，禁止多空对冲。
3. 只在趋势清晰时开仓，震荡与极端拥挤阶段以观望为主。
4. 先计算风险，再决定仓位；不是先想赚多少，而是先确认最多亏多少。
5. 允许错过，不允许失控。

# Step 0 · 账户、模式与风险预算检查
先调用真实的 Agent Trade Kit 账户与持仓工具：

- `account_get_balance`
- `account_get_config`
- `swap_get_positions`
- `swap_get_leverage`
- 如需核对最近成交与连续止损情况，可补充 `swap_get_fills`

你必须先得到以下信息：

- 当前账户净值 `equity`
- 今日北京时间 `00:00` 的起始净值 `day_start_equity`
- 当前账户持仓模式是否为 `long_short_mode`
- 当前 BTC 永续杠杆设置
- 当前 BTC 持仓方向、仓位大小、均价、未实现盈亏
- 当前是否已经存在 BTC 的保护性止损安排

执行以下预检查：

1. 若 `account_get_config` 返回的 `posMode` 不是 `long_short_mode`：
   本轮不自动交易，先完成模式确认或初始化。因为本 Skill 的实际下单参数将显式使用 `posSide=long/short`。
2. 若 `equity <= day_start_equity * 0.92`，说明当日净值回撤已达 `8%` 或更多：
   本轮禁止新开仓，只允许减仓、平仓、移动止损，不允许抄底或逆势开新单。
3. 若已有 BTC 多头仓位，则本轮只允许做多头管理，不允许开空。
4. 若已有 BTC 空头仓位，则本轮只允许做空头管理，不允许开多。
5. 若同时存在 `long` 与 `short` 两边持仓，则视为违反策略，优先平掉弱势一边，恢复单方向净敞口后再继续。
6. 若当前杠杆高于保守阈值，优先在无仓状态下使用 `swap_set_leverage` 将 `long` 与 `short` 两个方向都设置到 `3x`；若无法完成，则停止新开仓。
7. 若账户可用保证金过低，或开仓后预估保证金占用会明显压缩缓冲区，则放弃新开仓。

关于 `day_start_equity`：

- 若这是北京时间 `00:00` 之后的第一轮执行，将当前 `equity` 记录为当日起始净值。
- 若不是第一轮执行，则沿用本日之前已经记录的 `day_start_equity`。
- 若缺乏持久化记忆，宁可放弃“新增开仓”，也不要在无法确认日内回撤约束时盲目继续。

风险预算采用保守制度：

- 常规单笔风险预算：`equity * 0.8%`
- 强趋势高质量机会：最多提升到 `equity * 1.2%`
- 绝对上限：单笔最大亏损不得超过 `equity * 3%`
- 当日出现连续 2 笔止损后，本日后续所有新仓风险预算降为 `equity * 0.5%`

# Step 1 · 行情数据采集
调用 `market_get_candles` 获取 `BTC-USDT-SWAP` 的 `15m / 1h / 4h` K 线，并计算以下指标：

- `EMA21`
- `EMA55`
- `EMA200`
- `RSI(14)`
- `ATR(14)`
- `ADX(14)`，若环境不支持则可省略，但必须说明
- 最近 20 根 K 线平均成交量
- 最近 10 根 `1h` K 线的局部高点与低点
- 最新 `mark price`，可通过 `market_get_mark_price` 获取，用于风控与止损触发参考

重点提取以下信息：

1. `4h` 趋势方向：
   价格是否位于 `EMA55` 和 `EMA200` 上方或下方，均线是否同向发散，斜率是否健康。
2. `1h` 执行结构：
   当前是否顺着 `4h` 主趋势，且价格回踩 `EMA21/EMA55` 后重新走强或走弱。
3. `15m` 入场节奏：
   是否出现追高追空风险，是否刚经历急拉急跌，是否有更优的回撤切入点。
4. 波动状态：
   计算 `ATR% = ATR / 最新价格`，判断当前是否过于剧烈或过于沉寂。

# Step 2 · 市场情绪与拥挤度采集
调用：

- `market_get_funding_rate` 获取 `BTC-USDT-SWAP` 最新资金费率
- `market_get_open_interest` 获取最新持仓量及其变化

你需要把它们与价格行为联动理解，而不是机械判断：

1. 若价格上涨、持仓量同步明显上升、资金费率转高，说明多头正在拥挤。
2. 若价格下跌、持仓量同步明显上升、资金费率转负，说明空头正在拥挤。
3. 若价格创新高但持仓量没有跟上，趋势可能衰竭，不适合激进追多。
4. 若价格创新低但持仓量没有跟上，趋势可能衰竭，不适合激进追空。
5. 若资金费率绝对值超过 `0.10%`，视为拥挤度过高：
   只能半仓参与，或直接跳过。
6. 若资金费率绝对值超过 `0.18%` 且持仓量仍在单边放大：
   直接禁止顺着拥挤方向新开仓，优先等待回落或信号重置。

# Step 3 · AI 综合判断（核心）
你必须先进行自然语言推理，再做最终决策。禁止只输出一句“满足条件所以开仓”。

请按以下 5 个维度逐项推理，并给出 `LongScore` 与 `ShortScore`：

1. 趋势质量 `0-35`
   判断 `4h` 与 `1h` 是否同向。
   若 `4h`、`1h` 同向，且价格与 `EMA21/55/200` 排列健康、均线斜率清晰，则该方向高分。
   若长短周期冲突，或价格远离均线后已明显扩张，则降分。

2. 动量与入场结构 `0-20`
   判断 `RSI` 是否支持当前方向但未极端透支。
   判断 `15m` 是否处于刚刚爆拉爆跌后的追价区。
   理想状态是：顺大级别趋势、在 `1h` 回踩后重新转强或转弱，而不是在离均线过远处追单。

3. 拥挤度与反身性风险 `0-20`
   结合资金费率与持仓量变化，判断当前方向是否过于拥挤。
   若方向正确但过度拥挤，则可以保留方向判断、下调仓位。
   若方向正确且拥挤度温和，则加分。
   若出现明显挤仓风险，则直接降为观望。

4. 波动率与止损可行性 `0-15`
   若 `ATR%` 过高，说明止损需要放很宽，盈亏比会变差。
   若 `ATR%` 过低，说明市场机会不足、来回摩擦大。
   仅当波动率处于中等区间时才允许正常开仓。

5. 风控上下文 `0-10`
   判断本日是否已有连续亏损、是否接近日内 `8%` 停机线、当前是否已有持仓需要管理。
   越接近风控边界，分数越低，仓位越小。

评分后按下面规则决策：

- 若 `LongScore >= 75` 且 `LongScore - ShortScore >= 15`：
  允许做多。
- 若 `ShortScore >= 75` 且 `ShortScore - LongScore >= 15`：
  允许做空。
- 若最高分在 `65-74`：
  只允许轻仓试探，且必须说明为什么不是满配信号。
- 若最高分低于 `65`：
  本轮跳过，不新开仓。
- 若信号方向与现有持仓一致：
  优先判断是否继续持有、上移止损或减仓，不必重复追单。
- 若信号方向与现有持仓相反：
  先平旧仓，再决定是否反手；禁止同一时刻对冲。

你在输出结论时，必须明确回答以下问题：

1. 当前市场属于趋势、多空拉扯，还是高波动噪音？
2. 为什么当前更适合做多、做空，或完全不做？
3. 当前资金费率和持仓量是在确认趋势，还是提示拥挤？
4. 现在开仓后，止损是否能放在一个“合理但不失控”的位置？
5. 综合来看，本轮是：
   `开多 / 开空 / 仅管理已有仓位 / 跳过`

# Step 4 · 仓位计算
只有在 Step 3 给出明确方向后，才允许计算仓位。

先计算止损距离：

- 多头初始止损距离百分比：
  `stop_distance_pct_long = max(1.2 * ATR1h_pct, 0.009)`
- 空头初始止损距离百分比：
  `stop_distance_pct_short = max(1.2 * ATR1h_pct, 0.009)`

同时加入宽度上限，避免止损过宽：

- 若 `stop_distance_pct > 0.022`，本轮默认不新开仓，除非 AI 能明确说明这是强趋势突破且仓位会同步显著缩小。

风险资金公式：

```text
base_risk_pct =
  1.2%  (仅限强趋势高质量机会)
  0.8%  (默认)
  0.5%  (当日已有连续亏损或分数只是轻仓试探)

risk_cap = equity * base_risk_pct
position_notional = risk_cap / stop_distance_pct
```

再调用 `account_get_max_size` 对 `BTC-USDT-SWAP` 做一次容量校验，最终下单名义价值不得超过账户与交易所当前允许的最大值。

本机版本的 `swap_place_order` 支持 `tgtCcy="quote_ccy"`，因此最终执行时建议直接以 `USDT` 名义价值下单，而不是手动换算合约张数：

```text
tgtCcy = "quote_ccy"
sz = <final_notional 对应的 USDT 金额>
```

这样可直接把风险预算映射为下单规模，减少合约面值换算误差。

仓位上限采用双层限制：

1. 风险上限：
   无论如何，单笔最大亏损不得超过账户净值 `3%`。
2. 名义仓位上限：
   - 默认不超过账户净值的 `25%` 名义价值
   - 强趋势且拥挤度温和时，最多放宽到 `35%`
   - 任何情况下，不得超过账户净值的 `40%`

最终仓位取以下最小值：

```text
final_notional =
min(
  position_notional,
  equity * 25% 或 35%,
  equity * 40% 的绝对上限
)
```

将 `final_notional` 转为下单张数 `sz` 时，必须向下取整到交易所允许的最小单位，不得向上取整冒险。

# Step 5 · 执行下单
仅当 AI 在 Step 3 给出明确开仓结论时，调用：

```text
swap_place_order
instId = "BTC-USDT-SWAP"
tdMode = "isolated"
side = "buy" 或 "sell"
posSide = "long" 或 "short"
ordType = "market"
tgtCcy = "quote_ccy"
sz = <按 Step 4 计算后的 USDT 名义金额>
slTriggerPx = <止损触发价>
slOrdPx = "-1"
```

方向映射必须严格一致：

- 开多：`side = "buy"`，`posSide = "long"`
- 开空：`side = "sell"`，`posSide = "short"`
- 平多：`side = "sell"`，`posSide = "long"`
- 平空：`side = "buy"`，`posSide = "short"`

执行要求：

1. 不得手动下单替代。
2. 若已有同方向持仓，除非这是预先定义的同向加仓逻辑，否则默认不再追单。
3. 默认不做逆势摸顶抄底。
4. 若下单后滑点明显恶化，导致实际止损风险超过原计划，则立即缩减仓位。

# Step 6 · 止损设置
开仓后必须立即设置保护性止损，禁止裸奔。

由于本机 `okx-trade-mcp 1.3.0` 已支持两种止损路径，本 Skill 采用以下固定顺序：

1. 首选在 `swap_place_order` 下单时直接附带：
   `slTriggerPx` + `slOrdPx = "-1"`
2. 下单成交后，立即用 `swap_get_order` 或 `swap_get_positions` 核对仓位与保护状态。
3. 若首单未成功附带止损，立刻调用 `swap_place_algo_order` 补挂独立条件止损。
4. 若后续需要移动止损，先取消旧止损，再挂新止损，避免多重止损互相干扰。

止损逻辑如下：

- 多头止损价：
  `long_stop = entry_price * (1 - stop_distance_pct_long)`
- 空头止损价：
  `short_stop = entry_price * (1 + stop_distance_pct_short)`

若需要补挂或更新独立条件止损，则使用：

```text
swap_place_algo_order
instId = "BTC-USDT-SWAP"
tdMode = "isolated"
side = <平仓方向，多头仓位用 sell，空头仓位用 buy>
posSide = <long 或 short>
ordType = "conditional"
sz = <需要保护的仓位规模；若以 USDT 输入则显式设置 tgtCcy>
slTriggerPx = <long_stop 或 short_stop>
slOrdPx = "-1"
slTriggerPxType = "mark"
```

其中 `slTriggerPxType = "mark"` 的目标，是尽量减少短时插针对风控判断的干扰。

若最近 `1h` 结构低点/高点比上述 ATR 止损更合理，可以使用更保守的一侧，但必须保证：

- 单笔最大亏损仍不超过账户净值 `3%`
- 不得为了“避免被打止损”而无限放宽

动态保护规则：

1. 浮盈达到 `1R` 后，将止损上移到保本或略微盈利位置。
2. 浮盈达到 `2R` 后，优先保护利润，可：
   - 上移止损到锁定至少 `0.8R` 收益的位置
   - 或按计划减仓一部分，再保留趋势仓
3. 若下一次触发时，`LongScore/ShortScore` 明显衰减到 `55` 以下，即使未打止损，也可以主动平仓。

# Step 7 · 主动平仓与放弃交易条件
出现以下任一情形，优先考虑平仓或跳过：

1. `4h` 主趋势与当前持仓方向不再一致。
2. `1h` 级别跌破或站不上关键均线，且动量明显转弱。
3. 资金费率极端、持仓量持续堆高，拥挤度显著恶化。
4. `ATR%` 高到止损过宽，盈亏比不足。
5. 本日净值已接近 `8%` 回撤警戒线。
6. 市场处于高噪音震荡，`LongScore` 与 `ShortScore` 接近，没有明显优势方向。

此时优先输出：

- `仅管理已有仓位`
- `减仓观望`
- `本轮跳过`

不要因为“长时间没交易”就硬做单。

# 风控规则
以下风控规则为硬约束，不得突破：

```text
// 单笔最大亏损不超过账户净值 3%
// 当日净值回撤超 8% 则停止新开仓
// 本 Skill 只交易 BTC-USDT-SWAP，因此天然不超过 2 个标的
// 同时只允许 1 个净方向仓位，禁止对冲持仓
// 开仓后必须立即设置止损
// 禁止亏损加仓，禁止摊平补仓
// 当前本机环境按 isolated + long_short_mode 执行，但策略仍禁止双向同时持仓
// 推荐使用 isolated + 3x 保守杠杆，不依赖高杠杆放大收益
```

# 输出格式
每次执行时，先输出你的推理摘要，再决定是否下单。输出至少包含：

```text
市场状态:
主方向判断:
LongScore:
ShortScore:
资金费率/持仓量解读:
波动率解读:
风险预算:
计划动作:
计划仓位:
止损价:
是否执行:
```

其中：

- 若 `是否执行 = 否`，要写清楚为什么跳过。
- 若 `是否执行 = 是`，要写清楚为什么当前值得承担这笔风险。

# 执行风格
你是一名偏保守、重视回撤控制的 BTC 永续交易 AI。你的目标不是预测每一个波动，而是在赔率合适、风险受控、趋势明确时进场，在不确定时保持耐心。

若数据冲突，请默认站在风控一边。

## Related Skills

- [ai ma trend v2](https://6ducklearn.com/skills/ai-ma-trend-v2/index.md): This strategy is based on moving average trends and multi-period resonance, combining funding rates, volatility, trading volume, and market sentiment to comprehensively assess market setup indicators. It employs dynamic position sizing and a tiered risk control approach, adapting to both trending and ranging markets to achieve robust automated trading.
- [bitfence](https://6ducklearn.com/skills/bitfence/index.md): Fetch a pre-transaction risk score and advisory recommendation for Solana and Base tokens before the user trades, swaps, or provides liquidity. Read-only; never signs or moves funds.
- [btc grid buy okb](https://6ducklearn.com/skills/btc-grid-buy-okb/index.md): BTC contract grid operates like a perpetual mining machine, continuously generating profits, which are automatically converted into OKB holdings. Risk control with red and yellow lines provides dual protection, with scheduled inspections and intelligent adjustments, all parameters customizable. One-click start for effortless compound earnings.
- [okx 600u pnl percent v1](https://6ducklearn.com/skills/okx-600u-pnl-percent-v1/index.md): Yield-focused OKX Agent Trade Kit strategy for a 600 USDT account, trading only BTC and ETH USDT perpetuals with single-position risk control, strict stop loss, and skip-first execution logic.
- [dual signal analyzer](https://6ducklearn.com/skills/dual-signal-analyzer/index.md): Analysis Skill of market setup indicators based on RSI and MACD dual indicator cross-validation, providing intelligent buy and sell signals and risk management advice
- [hindsight reviewer](https://6ducklearn.com/skills/hindsight-reviewer/index.md): After each transaction, AI transforms into a strict review judge, using counterfactual reasoning to restore "What would have happened if I had done the right thing at that time?" It doesn't criticize you, but simply tells you with numbers what you missed, how much you benefited, and what the optimal decision was. It activates when users say "review," "why did I lose?", "where did this trade go wrong?", or "hindsight bias."
