You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MM模型退出逻辑问题:已定义Bid1exitCondition但未触发退出

做市商(MM)模型退出条件未触发排查方案

我正在创建MM模型,目前无法触发程序的退出操作。已编写如下代码定义Bid1exitCondition退出条件,但预期条件满足时未产生任何响应。

用户代码:

Highestprice = ta.highest(close, 20)
LowestPrice = ta.lowest(close, 200)

Bid1exitCondition = state == 1 and close > fairValue and close < Highestprice[1]

if Bid1exitCondition
    strategy.close("Bid 1 Close")
    state:= 0

以下是针对性排查方向:

  • 确认state变量的状态:
    退出条件核心依赖state == 1,必须保证开仓后state被正确赋值为1,且没有被其他逻辑意外重置。可以添加plot(state)到代码中,在图表上实时观察state的数值,确认触发退出时state确实处于1的状态。

  • 检查fairValue的有效性:
    close > fairValue是条件之一,要确保fairValue的计算逻辑正确,没有出现NaN、极端值等异常情况。可以同时添加plot(fairValue)和plot(close),对比两者的数值关系,确认价格确实满足大于fairValue的条件。

  • 修正最高价的索引逻辑:
    代码中使用Highestprice[1]指代前一根K线的20周期最高价,如果当前K线收盘价刚好等于这个数值,close < Highestprice[1]会不成立。如果你的策略允许收盘价等于最高价时退出,应改为close <= Highestprice[1];另外也可以检查是否应该使用当前K线的20周期最高价(去掉[1]索引),根据实际策略逻辑调整。

  • 匹配平仓指令的合约名称:
    strategy.close("Bid 1 Close")中的合约名称必须和开仓时strategy.entry/strategy.order中使用的名称完全一致(包括大小写、空格)。如果开仓时用的是"Bid 1",这里写"Bid 1 Close"会找不到对应仓位,自然无法触发平仓。

  • 添加调试标签验证条件触发:
    在if语句块内添加label.new(bar_index, high, "Exit Triggered"),如果条件满足,图表上会显示触发标签,这样就能快速区分是条件从未满足,还是满足后平仓指令未生效。

内容的提问来源于stack exchange,提问作者Ankit Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:55:22