Конвертер валют
В алгоритмической торговле крайне важно предоставить сиБотам и индикаторам возможность автономно конвертировать валюты, используя текущие рыночные курсы. В этом руководстве по API мы рассмотрим, как эта функция реализована в cTrader.
Конвертация валют за одну минуту!
- Методы
Convert (double value, Asset from, Asset toиConvert(double value, string from, string to))возвращают точный курс конвертации между указанными активами или активами с указанными названиями. Получите к ним доступ через новое свойствоAssetConverterклассаAlgo. - Класс
Assetвключает собственные методыConvert(Asset to, double value)иConvert(string to, double value), которые можно легко вызвать из любого объектаAsset. - При бэктестинге cTrader будет автоматически использовать исторические курсы конвертации. Это означает, что вы всегда можете ожидать исторически точных результатов и полностью оценить эффективность своих сиБотов.
Как работает конвертация валют
Интерфейс IAssetConverter в пространстве имен cAlgo.API.Internals содержит метод Convert(), который имеет следующие перегрузки:
double Convert(double value, Asset from, Asset to)— конвертирует указанное значение из активаfromв активto.double Convert(double value, string from, string to)— конвертирует указанное значение из актива, название которого соответствует строкеfrom, в актив, название которого соответствует строкеto.
Класс Algo теперь включает свойство AssetConverter типа IAssetConverter. Вы можете получить доступ к двум вышеуказанным методам, введя следующее.
1 | |
Класс Asset также имеет собственные методы Convert() со следующими перегрузками:
double Convert(Asset to, double value)— конвертирует указанное значение из актива, из которого вызывается этот метод, в активto.double Convert(string to, double value)— конвертирует указанное значение из актива, из которого вызывается этот метод, в актив, название которого соответствует строкеto.
Рассмотрим пример ниже, в котором наш сиБот конвертирует GBP в JPY, а затем исполняет новый рыночный ордер, используя рассчитанное значение в качестве объема ордера.
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 | |
Если мы посмотрим на лог, то увидим, что наш сиБот ведет себя так, как ожидалось. В момент запуска экземпляра цена продажи для GBPJPY составляла 159,619.

Конвертация валют в бэктестинге
cTrader полностью поддерживает исторические курсы конвертации в бэктестинге.
Это означает, что когда вы запускаете бэктестинг сиБота, который использует любой из описанных выше методов, расчеты конвертации будут выполняться с использованием исторически точных данных, а не текущих обменных курсов между указанными активами. Эта функция гарантирует, что результаты бэктестинга и оптимизации будут максимально точными с учетом прошлых рыночных условий.
Обратите внимание, что cTrader может строить точные цепочки конвертации, используя потенциально неограниченное количество торговых инструментов. В результате, даже если валюта депозита вашего счета отличается от базового или котируемого активов символа, на котором вы хотите выполнить бэктестинг, cTrader выполнит все необходимые расчеты, чтобы предоставить вам точные результаты бэктестинга.
Подводя итог, курсы конвертации представляют собой еще один ценный инструмент для обеспечения того, чтобы ваши сиБоты и индикаторы работали именно так, как ожидается. Поскольку cTrader поддерживает использование исторических данных при конвертации активов в бэктестинге, вы можете быть уверены, что все результаты бэктестинга и оптимизации исторически точны.