货币转换器
在算法交易中,让 cBot 和指标能够使用当前市场汇率自主转换货币是至关重要的。 在这个 API 指南中,我们介绍了 cTrader 如何实现这一功能。
一分钟内完成货币转换!
Convert (double value, Asset from, Asset to和Convert(double value, string from, string to))方法返回指定资产之间或指定名称资产之间的精确转换率。 通过Algo类的新AssetConverter属性访问它们。Asset类包含自己的Convert(Asset to, double value)和Convert(string to, double value)方法,可以从任何Asset对象轻松调用。- 在回测时,cTrader 将自动使用历史转换率。 这意味着您始终可以期待历史准确的结果,并全面评估 cBot 的表现。
货币转换的工作原理
cAlgo.API.Internals 命名空间中的 IAssetConverter 接口包含 Convert() 方法,它有以下重载:
double Convert(double value, Asset from, Asset to)- 将指定值从from资产转换为to资产。double Convert(double value, string from, string to)- 将指定值从名称匹配from字符串的资产转换为名称匹配to字符串的资产。
Algo 类现在包括 IAssetConverter 类型的 AssetConverter 属性。 您可以通过以下方式访问上述两种方法。
1 | |
Asset 类还有自己的 Convert() 方法,具有以下重载:
double Convert(Asset to, double value)- 将指定值从调用此方法的资产转换为to资产。double Convert(string to, double value)- 将指定值从调用此方法的资产转换为名称匹配to字符串的资产。
考虑下面的例子,我们的 cBot 将英镑转换为日元,然后使用计算出的值作为订单量执行新的市价单。
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 | |
如果我们查看日志,可以看到我们的 cBot 表现如预期。 在实例启动时,GBPJPY 的买入价为 159.619。

回测中的货币转换
cTrader 在回测中完全支持历史转换率。
这意味着,当您回测使用上述任何方法的 cBot 时,转换计算将使用历史准确的数据,而不是指定资产之间的当前汇率。 这个功能确保了回测和优化的结果在过去的市场条件下尽可能精确。
请注意,cTrader 可以使用潜在无限的交易工具构建准确的转换链。 因此,即使您的账户存款货币与您想要执行回测的交易品种的基础或报价资产不同,cTrader 也会处理所有必要的计算,为您提供精确的回测结果。
总之,转换率是另一个有价值的工具,可以确保您的 cBot 和指标完全按预期执行。 由于 cTrader 在回测中转换资产时支持使用历史数据,您可以确信所有回测和优化结果在历史上都是准确的。