跳转至

cTrader 中的范围柱策略

范围图表用于表示指定范围的价格变动,无论价格完成该变动需要多长时间。 这过滤掉了小于范围大小的价格变动,使趋势更容易可视化。 在 cTrader 中,基于范围柱开发自动化交易策略的过程与基于标准时间蜡烛图创建此类策略的过程相同。 在本文及其对应的视频中,我们将演示如何基于范围柱开发和回测一个简单的策略。

定义买入和卖出信号

我们将简要概述我们的交易逻辑。

  • 买入信号 - 当一根看涨范围柱跟随一根看跌范围柱并收盘高于看跌柱的开盘价时出现。
  • 卖出信号 - 当一根看跌范围柱跟随一根看涨范围柱并收盘低于看涨柱的开盘价时出现。

买入信号的解释是,当看跌趋势遇到强劲阻力时,是时候买入以期待反弹。 卖出信号的反向设置适用:看涨趋势遇到阻力,我们必须通过下卖单来利用这一点。

创建示例 cBot

我们可以开始创建我们的 cBot。 我们首先定义必要的参数。

1
2
3
4
5
6
7
8
[Parameter(DefaultValue = 10000)]
public double Volume { get; set; }

[Parameter(DefaultValue = 20)]
public double StopLoss { get; set; }

[Parameter(DefaultValue = 20)]
public double TakeProfit { get; set; }

我们可以将我们的买入信号编码如下。

1
2
3
4
if (Bars.Last(0).Close > Bars.Last(0).Open && Bars.Last(1).Close < Bars.Last(1).Open && Bars.Last(0).Close > Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Buy, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

我们的卖出信号如下所示。

1
2
3
4
if (Bars.Last(0).Close < Bars.Last(0).Open && Bars.Last(1).Close > Bars.Last(1).Open && Bars.Last(0).Close < Bars.Last(1).Open)
{
    ExecuteMarketOrder(TradeType.Sell, SymbolName, Volume,InstanceId, StopLoss, TakeProfit);
}

回测策略

构建新的 cBot 后,我们切换到 回测 选项卡并运行回测。 以下是结果。

注意

范围柱策略使用与基于蜡烛图的策略相同的数据结构。 例如,我们使用 Bars 集合来检索我们的范围柱;我们也会在尝试检索蜡烛图时使用相同的集合。 cTrader 的这一功能使您可以开发可以在任何图表类型上测试和运行的策略,而无需进行任何修改。

在本教程中,我们演示了如何快速开发基于范围图的简单策略。 我们还建议,此类策略可以自由地重用于包含时间蜡烛图的图表。