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

为何cBot(cTrader)不遵循设置的止损(Stop Loss)?

cTrader开仓止损值被异常替换的排查方向

你提供的代码如下:

if (condition)
{
    ExecuteMarketOrder(TradeType.Buy, _symbol.Name, _symbol.QuantityToVolumeInUnits(PositionQuantity), positionLabel, stopLossPriceBuy, null);
}
else if (condition2)
{
    ExecuteMarketOrder(TradeType.Sell, _symbol.Name, _symbol.QuantityToVolumeInUnits(PositionQuantity), positionLabel, stopLossPriceSell, null);
}

针对「计算止损值正确但实际开仓后被替换,无后续修改操作」的问题,优先排查以下非bug因素:

  • 平台品种的止损最小距离限制
    cTrader对每个交易品种都有强制的止损最小点距要求(比如EURUSD要求止损至少远离当前价格10个点),如果你的计算值距离当前价格小于这个限制,平台会自动将止损调整到符合要求的最小距离。可以在cTrader的「品种规格」里查看对应品种的「止损/止盈最小距离」参数,对比你计算的止损价与开仓价的点差是否达标。

  • 止损价格的格式与方向是否正确

    1. 确保传入的止损价精度匹配平台报价精度(比如平台报价到小数点后5位,你传入的数值必须符合这个精度,否则会被自动修正);
    2. 做多单的止损价必须低于开仓买入价,做空单的止损价必须高于开仓卖出价,方向搞反的话,平台会自动调整止损到合规位置。
  • cBot内部隐藏逻辑干扰
    检查你的cBot是否继承了带有自动止损调整逻辑的父类,或者存在异步执行的后台代码(比如定时器、事件监听)在开仓后修改止损。即使你没有写显式的止损修改代码,也要排查是否有第三方库、模板类的隐含逻辑。

  • 经纪商服务器端风控规则
    部分经纪商的服务器会设置额外的风控规则(比如禁止过近的止损、强制止损距离),这种情况下即使客户端发送了正确的止损值,服务器也会直接修改。可以联系你的经纪商确认他们的止损相关风控规则。

如果以上所有因素都排查完毕仍未解决,才考虑是cTrader的软件bug:

  • 尝试升级到最新版本的cTrader,看问题是否消失;
  • 在模拟账户复现问题,若能稳定复现,可向Spotware官方提交bug报告。

内容的提问来源于stack exchange,提问作者Alexandre Paiva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:02:18