交易时段
自 cTrader Windows 4.5 发布以来,API 包含了 MarketSessions 接口。 它允许您获取当前市场交易时段的信息,并在您的 cBot 和指标中使用这些数据。
算法开发中的交易时段
MarketSession 类型是一个 enum,其值代表各种交易时段(如 Singapore 或 London)。
而 MarketSessions 属性的类型为 MarketSession。 要获取所有当前市场交易时段,请按以下方式使用它。
1 | |
MarketSessions 属性的值应与 cTrader 用户界面左下角 交易时段 字段中显示的时段相匹配。

您可以使用 HasFlag 方法来检查当前时段是否包含特定时段。
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 | |
您还可以处理 MarketSessionsChanged 事件来检测和响应市场交易时段的任何变化。 MarketSessionChangedEventArgs 类有两个属性,即 NewSessions 和 PreviousSessions,它们的工作方式如下:
NewSessions包含所有当前时段,包括刚刚开始的任何时段。NewSessions的值始终等于 cBot 或指标的MarketSessions属性的值。PreviousSessions也包含所有当前时段,但它还包含刚刚结束的任何过去时段。 它的值等于触发MarketSessionsChanged之前 cBot 或指标的MarketSessions属性的值。
要更详细地了解 NewSessions 和 PreviousSessions 的工作原理,请参考下面的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
在日志中,您应该看到每次交易时段变化都有两个新条目。 这些条目将告诉您过去的交易时段是什么,现在是什么。
回测期间的交易时段
MarketSessions 属性在实时和回测环境中都可以使用。 在回测期间,该属性将包含相对于所选回测时间的交易时段。 换句话说,您可以使用它来访问特定历史交易期间活跃的交易时段。