说明
Angora 交易系统 — BB + RSI 区间网格 cBot
--------------------------------------------------
概述
Angora 交易系统是一个均值回归 cBot。它寻找价格拉伸至布林带边缘,同时 RSI 确认超买或超卖状态,并交易回归中间带的走势。ADX 指标决定市场是区间还是趋势,因此机器人仅在条件适合此方法时交易。基于 ATR 的可选网格可以在价格逆向首次入场时向篮子中添加仓位。每条腿共享一个篮子止损,该止损随每个订单发送给经纪商。
该机器人设计并测试于 BTCUSD、US30、XAUUSD、EURUSD、GBPUSD 和 USDJPY M15。它适用于任何品种和时间框架,但您应对每个工具进行回测并调整参数。
使用的指标
- 布林带:入场区域(上轨和下轨)及退出目标(中轨或对侧轨)。
- RSI(相对强弱指数):确认入场和网格加仓的超买和超卖状态。
- ADX 及 +DI / -DI(方向移动系统):识别市场状态(区间或趋势)及趋势方向,并触发趋势突破退出。
- ATR(平均真实波幅):将所有参数按当前波动率缩放,包括网格间距、篮子止损距离、带宽过滤器、目标距离过滤器和点差过滤器。
所有信号仅使用已收盘的K线,因此不会重绘。
交易方式
1) 市场状态(ADX)
- ADX 低于“ADX 最大入场值”(默认25)= 区间。机器人双向交易带反转。
- ADX 在“ADX 最大入场值”和“趋势 ADX 最大值”(默认25-45)之间 = 趋势,如果趋势对齐模式开启。机器人仅在趋势方向交易回调:上涨趋势中(+DI > -DI)买入下轨,下跌趋势中(-DI > +DI)卖出上轨。
- ADX 高于“趋势 ADX 最大值”= 不新开仓(极端或抛物线行情)。
- 区间模式下,ADX 快速上升时跳过入场,因为可能新趋势正在形成。
2) 入场信号
- 再入场模式(默认):前一根K线触及或收盘于带外,最后一根K线收盘回到带内。RSI 必须在最近两根K线之一超卖(买入)或超买(卖出)。
- 触及模式:K线触及带且满足 RSI 条件即可。
- 过滤器:最小布林带宽度(避免挤压和突破前状态)、最小目标距离(移动必须足够覆盖成本)、点差、交易时段和账户保护。
3) 网格(可选)
- 当价格逆向篮子移动“网格步长”×ATR时,机器人在相同方向加仓,最多加到“最大网格层数”。已平仓的腿也计入此限制。
- 加仓需 RSI 仍接近极端区且 ADX 低于网格限制。趋势模式下,DI 必须仍指向篮子方向。
- 所有腿共享一个篮子止损,置于最后可能的网格层之外。每个订单均发送止损,因此无仓位无止损。
- 利润保护激活时不再加仓。
4) 退出
- 目标:价格达到中轨(或对侧轨),且篮子利润至少为“目标时最小篮子利润”。
- 利润保护:保本锁定和跟踪利润底线(见下文)。
- 篮子最大亏损(以R计),加上经纪商端的篮子止损。
- 软时间退出(N根K线后在保本或更好时平仓)和硬时间退出(N根K线后强制平仓)。
- 趋势突破退出:当 ADX 超过阈值且 DI 反向篮子时,平掉亏损篮子。
什么是“R”?
机器人以 R 来衡量风险和利润:
- 1R(篮子)= 如果所有网格层被填满且篮子止损被触发时的总亏损金额。
- Rp(保护)= 第一条腿到篮子止损的风险。利润保护阈值默认使用 Rp,因此启用网格时更合理。关闭网格时,R 和 Rp 相同。
参数
[交易]
- 使用固定手数:开启 = 每条腿使用“每腿固定手数”。关闭 = 按“篮子风险百分比”计算仓位大小。
- 每腿固定手数(手):固定手数开启时每条腿的手数。默认 0.01.
- 篮子风险百分比:如果所有网格层被填满且篮子止损被触发,损失的权益百分比(1R)。固定手数关闭时使用。默认 2。
- 每腿最大手数(手):单条腿的最大手数限制。默认 1.0。
- 亏损冷却(K线):亏损篮子后等待的K线数量。默认 4。
- 最大滑点(点):大于0时,订单作为市场限价单发送,滑点限制为此值。0 = 普通市价单。
- 标签 / 自动标签后缀:仓位标签。启用后标签变为 Label_Symbol_Timeframe,多个实例可同时运行且互不干扰。
[布林带 & RSI]
- BB 周期 / BB 标准差 / BB 移动平均类型:布林带设置。默认 20 / 2.0 / 简单。
- RSI 周期:默认 14。
- RSI 超卖(买入)/ RSI 超买(卖出):区间模式下的 RSI 阈值。默认 30 / 70。
[入场]
- 入场模式:再入场(默认)或触及。
- 最小带宽(xATR):带宽必须至少相隔此ATR倍数。默认 2.0。
- 最小目标距离(xATR):入场到目标的距离必须至少为此ATR倍数。默认 0.8。
- 允许买入 / 允许卖出:启用或禁用各方向。
[趋势模式]
- 使用趋势对齐模式:当 ADX 高于区间阈值时允许趋势方向的回调入场。默认开启。
- 趋势 ADX 最大值:超过此 ADX 值不新开仓。默认 45。
- 趋势最小 DI 差距:+DI 和 -DI 之间确认趋势方向所需的最小差值。默认 5。
- 趋势 RSI 超卖 / 超买:回调时更宽松的 RSI 阈值。默认 40 / 60。
- 趋势网格步长倍数:趋势篮子的网格步长乘数。默认 1.5。
- 趋势最大网格层数:趋势篮子的最大腿数。默认 3。
[ADX & ATR]
- ADX 周期:默认 14。
- ADX 最大入场值:区间/趋势阈值。默认 25。
- ADX 斜率回溯 / ADX 最大上升斜率:如果 ADX 在回溯期间上升超过此值,则跳过区间入场。默认 3 根K线 / 3.0(0 = 关闭)。
- ATR 周期:默认 14。
[网格]
- 使用网格:启用或禁用网格加仓。默认开启。
- 网格步长(xATR):网格腿之间的逆向距离。默认 1.0。
- 最大网格层数:每个篮子的最大腿数,包括首次入场。默认 4。
- 网格手数倍数:每层的手数乘数。1.0 = 等手数(推荐)。超过1.3会触发马丁格尔警告。
- 止损缓冲(xATR):篮子止损距离最后网格层的距离。默认 1.5。
- 加仓需 RSI / 加仓 RSI 缓冲:仅当 RSI 在阈值加缓冲范围内时才加仓。默认开启 / 10。
- 网格最大 ADX:超过此 ADX 值不加仓(区间篮子)。默认 30。
- 网格最小加仓间隔(秒):加仓尝试之间的最短时间。默认 60。
[退出]
- 退出目标:中轨(默认)或对侧轨。
- 目标时最小篮子利润(R):仅当篮子利润至少达到此值时才触发目标退出。默认 0.05.
- 篮子最大亏损(R):达到此亏损时平掉篮子。默认 1.0(0 = 关闭)。
- 软时间退出(K线):经过此数量的K线后,只要篮子达到保本或更好即平仓。默认 32。
- 硬时间退出(K线):经过此数量的K线后强制平仓。默认 96。
- 使用趋势突破退出 / 趋势突破 ADX:当 ADX 达到此值且 DI 反向仓位时,平掉亏损篮子。默认开启 / 35。
[利润保护]
- 使用利润保护:默认开启。
- 保护 R 基础:第一条腿(默认,启用网格时推荐)或全篮子。
- 保本触发 / 保本锁定(R):当峰值利润达到触发值时,锁定至少等于保本锁定的利润。默认 0.75 / 0.1。
- 跟踪开始 / 跟踪保持比例:峰值利润达到跟踪开始后,机器人保持此比例的峰值利润。底线仅上移。默认 2.0 / 0.5。
- 将经纪商止损移动到底线:将保护利润转换为价格,并将每条腿的止损移动至此,确保经纪商端也保护利润。默认开启。
- 使用部分止盈 / 部分止盈(R)/ 部分平仓比例:在达到指定利润时部分平仓。默认关闭。
- 固定止盈(R):无视布林带,在固定利润时平掉整个篮子。0 = 关闭。
[市场过滤器]
- 最大点差(点)/ 最大点差(xATR):点差过大时跳过入场和网格加仓。默认关闭 / 0.2 x ATR。
- 使用交易时段过滤器 / 交易时段开始 / 结束时间(UTC):仅在指定时间内交易。默认关闭。
- 阻止周末入场 / 周五截止时间:可选周末保护。
[账户保护]
- 最大日亏损(权益百分比)/ 达到日亏损限制时平仓:停止当天剩余时间的新入场并可平掉持仓。默认 5% / 开启。
- 最大回撤(峰值权益百分比)/ 达到最大回撤时停止机器人:关闭所有仓位并可停止机器人。默认 20% / 开启。
- 每日最大交易次数:0 = 不限。
- 总风险上限(权益百分比):对所有持仓到止损的总风险上限。默认 3%。按风险百分比计算仓位时始终应用。
- 固定模式下应用风险上限:固定手数开启时也应用上述上限。默认关闭。
[日志]
- 日志级别:静默、普通或详细。
- 打印 CSV 交易行:每个完成的篮子打印一行 CSV,便于分析。
重启安全与报告
- 重启或重新连接后,机器人通过仓位备注和交易历史重建开放篮子(方向、腿数、止损、已实现利润)。
- 机器人停止时打印统计摘要:交易次数、胜率、利润因子、平均盈亏、最大回撤和连败次数,以及按退出原因分组的结果(例如区间/目标,趋势/利润锁定)。
入门指南
1. 在您的品种和时间框架上使用默认参数进行回测,使用tick数据,周期至少3-6个月。
2. 查看日志中的“按原因统计”行,了解哪些退出方式盈利或亏损。
3. 保持网格保守:等手数(网格手数倍数=1.0)和3-4层。
4. 将每篮子风险(或固定手数)保持在正常交易不会触发日亏损保护的水平。
5. 在模拟账户上进行前向测试后再进行实盘交易。
风险声明
交易杠杆产品如差价合约和加密货币风险较高,可能不适合所有投资者。网格和均值策略在强趋势中可能加大亏损。历史表现(包括回测结果)不保证未来收益。请自行承担风险,仅使用您能承受损失的资金使用此 cBot。
摘要
The system supports an optional ATR-based grid that adds positions when the price moves against the initial entry, with all legs sharing a single basket stop loss sent to the broker. Exits include reaching target bands, profit protection via break-even locks and trailing stops, basket max loss limits, time-based exits, and trend-break exits triggered by ADX signals.
Designed and tested on multiple instruments including BTCUSD, US30, XAUUSD, EURUSD, GBPUSD, and USDJPY on the M15 timeframe, it is adaptable to other symbols and timeframes with parameter adjustments. Risk and profit are measured in "R" units, representing the basket risk. The bot includes configurable parameters for trading volume, grid settings, market filters, and risk management tools such as stop loss, take profit, trailing stop, break-even management, and daily loss guards. It supports market orders and reconstructs open positions after restarts for continuity.
