RSI cBot¶
策略概述 ¶
RSI cBot 实现了一种基于动量的简单反转交易策略,依赖于 Relative Strength Index (RSI) 作为其关键指标。
RSI cBot 根据反映市场动量并确定超买或超卖条件的 RSI 值自动进行买卖。 该 cBot 被编码为在开新仓之前关闭现有仓位,这确保了在任何时候只有一个相关仓位是开放的。
当 RSI 低于 30 时,市场被视为超卖,cBot 会开买入仓位。 买入信号基于价格在市场达到超卖条件后会上涨的预期。
当 RSI 高于 70 时,市场被视为超买,cBot 会开卖出仓位。 卖出信号基于价格在市场超买后会下跌的预期。
基于 RSI 指标的策略最适合 cBot 可以根据 RSI 信号进行反转交易的市场。
cBot 创建 ¶
了解如何通过我们的分步指南使用 C# 或 Python 创建 cBot。
RSI cBot 的代码可在我们的公共 C# 和 Python 代码库中找到。 相同的代码在 cTrader Windows 或 Mac 的算法创建向导中作为模板提供,或者您可以简单地复制并使用以下代码片段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
指标集成 ¶
Relative Strength Index (RSI) 是 RSI cBot 中使用的主要指标。 RSI 是一个动量振荡器,用于衡量价格变动的速度和变化。 它的范围在 0 到 100 之间,用于识别市场中的超买或超卖条件。
基于其对超买或超卖条件的评估,RSI 决定 cBot 是买入还是卖出。 RSI cBot 不依赖任何其他指标或因素,例如移动平均线或交易量;它仅使用 RSI 水平作为交易信号。
cBot 专注于两个关键阈值:
- RSI < 30 表示市场超卖并触发买入订单。
- RSI > 70 表示市场超买并触发卖出订单。
cBot 通过在每个新跳动点上检查 RSI 值来持续监控 RSI 值。 这确保了算法在 RSI 进入超卖或超买区域时始终准备好行动。
逻辑 ¶
初始设置 ¶
RSI 指标在 OnStart() 方法中使用指定的 Source 和 Periods 参数进行初始化,该方法在 cBot 启动时调用。 计算使用 cTrader 内置的指标公式完成。
条件监控 ¶
交易的逻辑条件在 OnTick() 方法中执行,该方法在每次接收到新跳动点(价格更新)时调用。 如果 RSI < 30,则生成买入信号。 如果 RSI > 70,则生成卖出信号。
仓位管理 ¶
在 cBot 根据生成的信号开新仓之前,Close() 方法会检查并关闭所有带有 "SampleRSI" 标签的相反仓位。 此设置确保在任何时候只有一个交易对给定交易品种是活跃的。
交易执行 ¶
Open() 方法检查是否已经存在基于生成信号(买入或卖出)的相同类型的仓位。 如果未找到仓位,cBot 会使用指定的数量和在方法中传递的其他参数开新仓。
| 参数 | 单位 | 定义 | 提示 |
|---|---|---|---|
| 数量 | 手 | 每笔交易的交易量。 | 保守的交易者可能会选择较小的交易手数以最小化风险。 激进的交易者可能会选择较大的交易手数以最大化潜在收益,尽管风险也更高。 |
| 来源 | — | RSI 指标的数据源。 可用选项包括收盘价、开盘价、最高价和最低价。 | 收盘价通常用于 RSI 计算,因为它反映了蜡烛图中最重要的价格点。 然而,交易者可以尝试不同的数据系列,并选择最适合市场条件的系列。 最高价或最低价可以帮助识别极端价格波动,而中位数或典型价格则提供了更平衡的视角。 |
| 周期 | — | 用于计算 RSI 的周期数(蜡烛数)。 默认值 14 是该指标的标准值或常用设置。 | 短线交易者或希望从短期价格波动中获利的交易者(例如,在 5 分钟图表上)可能会选择较短的周期。 此设置使 RSI 更加敏感,导致其更频繁地生成买入和卖出信号。 波段或长期交易者(例如,在 1 小时图表上)可能更喜欢较大的 RSI 周期。 此设置降低了 RSI 的敏感性,使其更加平滑,更能抵抗快速价格波动。 过滤掉噪音后,RSI 专注于主要市场趋势,并生成较少的信号。 |
应用 ¶
区间震荡(横盘)市场 ¶
在区间震荡市场中,价格在阻力位(上边界)和支撑位(下边界)之间波动。 此类事件非常适合基于 RSI 的策略,因为它们提供了许多超买和超卖的情况。 由于价格在区间震荡市场中触及支撑位或阻力位时经常反转方向,RSI 更有可能提供准确的信号。
用例
考虑一种情况,EURUSD 反复在 1.1000 和 1.1200 之间移动。 cBot 可以通过在超卖(RSI < 30)时接近下边界买入并在超买(RSI > 70)时接近上边界卖出来展示良好的表现。
最佳实践
- 专注于在低波动期间进行交易。 当市场没有显著趋势时,RSI 指标表现更好。
- 检查价格图表,寻找价格在明确区间内波动的时期。
- 监控突破。 如果价格显著超出区间,停止 cBot 并重新评估市场状况。
低波动市场 ¶
低波动市场的特点是价格波动小且缺乏主要趋势。 RSI 在此类环境中特别有用,因为它可以在不受强烈方向性趋势影响的情况下识别短期市场失衡。
在低波动环境中,价格往往在超买和超卖水平之间波动,为 cBot 提供了频繁的交易机会。
用例
股票指数如 S&P 500 可能会出现低波动时期,其价格在窄幅区间内移动。 在此类时期,cBot 利用小幅反转。 当 RSI 跌破 30 时,它进入买入头寸;当 RSI 升至 70 以上时,它进入卖出头寸。
最佳实践
- 使用波动性指标来确定市场何时进入低波动阶段。
- 调整手数和 RSI 周期,使指标能够有效瞄准小幅价格变化。
- 使用额外的风险管理策略,如止损,以防止意外的市场波动。
强劲趋势后的盘整市场 ¶
在强劲的上升或下降趋势之后,市场通常会进入一个盘整阶段,价格趋于稳定。 交易者随后获利了结或等待新的市场方向,盘整期成为基于 RSI 交易策略的理想时机。
在强劲趋势后的盘整期内,RSI 指标可以识别市场何时进入超买或超卖区域。 RSI cBot 随后可以在盘整期内捕捉反转点。
用例
考虑一种情况,蓝筹股在经历大幅上涨或下跌后进入盘整。 股价开始在一个狭窄的范围内波动。 cBot 随后在此阶段检测到超买(RSI > 70)或超卖(RSI < 30)条件,并据此进行交易。
最佳实践
- 在强劲趋势后,等待市场开始盘整后再运行 cBot。
- 监控长期支撑位和阻力位,以确保市场真正进入盘整,而不是准备再次突破。
总结 ¶
RSI 指标是 cBot 策略的核心,它驱动所有买入和卖出决策。 虽然 cBot 能够有效地使用该指标在超卖和超买市场中利用反转机会,但其依赖单一算法也带来了虚假信号和市场背景有限的风险。
能够为关键参数指定值并选择数据源,使用户能够根据个人交易风格、风险承受能力和市场条件调整 RSI cBot。 无论您是短线交易者、波段交易者还是长期投资者,调整 cBot 参数都可以更好地与您的策略保持一致,并增加成功的机会。
交易者可以使用不同的值、设置和数据对 cBot 进行回测,以找到适合所选交易品种和时间周期的最佳或盈利参数组合。 此外,cTrader 用户可以修改 cBot 代码并实施波动性指标,以防止强劲趋势并过滤掉非反转信号。