如何在 5 分钟内为 cTrader 创建一个 cBot
在本文及其对应的视频中,我们将描述一种快速创建 cBot 的方法。 我们将创建的 cBot 将实现一个名为 three white soldiers 和 three black crows 的简单交易策略。 您可以在 我们的知识库 中了解更多关于此策略的信息。
在遵循我们的说明之前,请确保您已经从 官方网站 下载并安装了 cTrader Windows 或 Mac 应用程序。 启动它,并导航到 cTrader Algo 部分。 您可以在左侧面板中找到它。 点击 Algo 选项卡,cTrader Algo 部分应该会出现。
添加一个新的 cBot
点击 cTrader Algo 中的 新建 按钮以开始 创建一个新的 cBot。 输入一个名称,选择 C# 或 Python 作为编程语言,并继续操作,直到代码编辑器打开。
添加 cBot 设置
在我们开始实施交易策略之前,我们将查看基本的 cBot 参数和方法。 您还可以查阅 我们的文档 以熟悉不同参数和方法的作用。
-
cBot 参数 – 允许您定义可配置的属性,例如交易量或止损/止盈距离。
-
cBot 方法 – 定义您的 cBot 在特定事件发生时的行为。 在开发 cTrader cBot 时,您需要处理四个主要事件,每个事件都由 cTrader 提供的相应方法管理。 这些方法是 C# 的
OnStart()、OnTick()、OnBar()、OnStop()和 Python 的on_start()、on_tick()、on_bar_closed()、on_stop()。 请注意,C# 的OnBar()和 Python 的on_bar_closed()方法不包含在默认代码模板中。
下表详细定义了这四个方法。
| C# | Python | 目的 |
|---|---|---|
OnStart() | on_start() | 当 cBot 实例开始操作时触发。 它用于初始化您计划在 cBot 中使用的任何变量,例如指标、计数器、事件处理程序或计时器。 |
OnTick() | on_tick() | 在 cBot 实例运行的交易图表上每次价格更新时触发。 通常用于基于实时数据的快速入场或出场逻辑。 在此方法中,您可以编程自定义的入场和出场条件,以及在新价格到达时需要运行的任何其他辅助功能。 |
OnBar() | on_bar_closed() | 在每个柱线关闭时触发。 在此方法中,您可以编程自定义的入场和出场条件,或需要在每个新柱线形成时运行的任何其他功能。 |
OnStop() | on_stop() | 当 cBot 停止时调用。 用于执行最终操作,例如关闭头寸、保存状态等。 |
添加交易逻辑
我们现在将为我们的交易策略添加代码。 我们的 cBot 应在图表上形成三个绿色柱线时开立买入头寸,并在连续出现三个红色柱线时开立卖出头寸。
首先,我们需要定义 cBot 的参数。 这些参数将可以从 cTrader UI 完全自定义。 我们将在 cBot 中定义三个参数。
- 每笔交易的交易量。
- 止损点数。
- 止盈点数。
将以下代码粘贴到您的代码编辑器中,紧接在类声明 (public class NewcBot : Robot) 之后的花括号下方。
1 2 3 4 5 6 7 8 | |
注意
Python cBot 使用在其 .cs 文件 中声明的可自定义参数。
1 2 3 4 5 6 7 8 | |
我们现在需要实现交易策略背后的逻辑。 将以下代码粘贴到您的 OnBar() 或 on_bar_closed() 方法中。 请记住,此方法在每次形成新柱线时被调用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
1 2 3 4 5 6 7 8 9 10 11 | |
现在我们将更仔细地检查代码。 cTrader 提供了对图表历史柱线的访问,允许我们检查最后三个柱线是否都是绿色或红色。 在上面的 C# OnBar() 和 Python on_bar_closed() 方法中,我们首先检查最后三个柱线是否都是绿色。 然后我们评估这些柱线是否都是红色。
如果其中一个条件为真,我们使用 ExecuteMarketOrder() 方法下达市价单。 它接受多个输入(参数),其中最重要的是交易方向、交易品种、交易量、止损和止盈。
在我们的案例中,订单方向 (TradeType.Buy, TradeType.Sell) 由交易策略条件决定。 交易品种名称直接从我们的 cBot 运行的图表中获取 SymbolName。 交易量、止损和止盈(C# 的 Volume、StopLoss、TakeProfit 和 Python 的 VolumeInLots、StopLossInPips、TakeProfitInPips)都从我们定义的 cBot 参数中获取。
构建并运行 cBot
我们现在需要检查我们的 cBot 是否成功构建。 默认情况下,构建结果窗口位于代码编辑器的正下方。 如果您没有看到它,请点击 cTrader 界面最顶部的 布局 按钮,然后选择 构建结果。 此操作的键盘快捷键是 Ctrl + W。
之后,点击 cTrader 界面最顶部的 构建 按钮。 或者,右键点击您的 cBot,并在新出现的菜单中点击 构建,或者直接按下 Ctrl + B。

如果构建成功,您将在代码编辑器底部的 构建结果 区域看到一条绿色消息。

或者,如果您的代码存在问题,您将看到一条红色消息以及所有构建错误的详细摘要。

在您的 cBot 成功构建后,您就可以开始使用它了。 您只需要在交易图表上 添加一个实例。 为此,只需点击 cBot 名称右侧的 + 图标。 您将看到可以运行 cBot 的所有交易品种列表。

我们将选择 EURUSD。 选择交易品种后,将添加一个新的 cBot 实例。 您将在 cBot 列表中看到一个新的项目,其中包含交易品种名称和您希望交易的时间周期。
您还应该看到您在 参数 选项卡中编码的参数,该选项卡位于交易图表的正下方。

您可以随意更改这些参数,或者保持它们的默认值。
此外,您将在 EURUSD 图表的顶部看到一个 播放 按钮。

要启动您的实例,请按下此按钮。 或者,此按钮的副本也位于左侧 cBot 列表中实例的右侧。 这两个按钮中的任何一个都会启动 cBot。
点击任一按钮后,您应该会看到它变为橙色,这意味着我们的 cBot 实例现在正在运行。 在 日志 选项卡中,您还应该看到一条新行,表明 cBot 已启动。
回测 cBot
我们的 cBot 在实盘交易图表上可能需要很长时间才能开仓。 我们将运行一个快速回测,以查看它在历史数据上的表现。 为此,请打开 回测 选项卡。

使用屏幕顶部附近的日历滑块选择您希望用于回测的日期范围。 启用 可视化模式 标志以实时跟踪回测结果。
我们将滑块向后移动一个月。 点击 播放 按钮以在选定的历史数据上启动 cBot。
之后,您将能够在交易图表下方和 参数 部分右侧的选项卡中看到新仓位的开仓和/或平仓。 具体来说,在检测到我们编码的两种模式中的任何一种后,cBot 将下买单或卖单。
运行回测是分析您的 cBot 是否正常工作的有用方法。
总结
我们希望本文对您有所帮助,展示了如何使用 cTrader 创建自动交易机器人。
