Conversor de moeda
Na negociação algorítmica, dar aos cBots e indicadores a capacidade de converter moedas autonomamente usando taxas de mercado atuais é essencial. Neste guia da API, abordamos como este recurso é implementado no cTrader.
Conversão de moeda em um minuto!
- Os métodos
Convert (double value, Asset from, Asset toeConvert(double value, string from, string to))retornam a taxa de conversão exata entre os ativos especificados ou os ativos com os nomes especificados. Aceda-os através da nova propriedadeAssetConverterda classeAlgo. - A classe
Assetinclui os seus próprios métodosConvert(Asset to, double value)eConvert(string to, double value)que podem ser facilmente invocados a partir de qualquer objetoAsset. - Ao fazer testes de verificação, o cTrader usará automaticamente taxas de conversão históricas. Isto significa que pode sempre esperar resultados historicamente precisos e avaliar completamente o desempenho dos seus cBots.
Como funciona a conversão de moeda
A interface IAssetConverter no namespace cAlgo.API.Internals contém o método Convert() que tem as seguintes sobrecargas:
double Convert(double value, Asset from, Asset to)- converte o valor especificado do ativofrompara o ativoto.double Convert(double value, string from, string to)- converte o valor especificado do ativo cujo nome corresponde à stringfrompara o ativo cujo nome corresponde à stringto.
A classe Algo agora inclui a propriedade AssetConverter do tipo IAssetConverter. Pode aceder aos dois métodos acima digitando o seguinte.
1 | |
A classe Asset também tem os seus próprios métodos Convert() com as seguintes sobrecargas:
double Convert(Asset to, double value)- converte o valor especificado do ativo a partir do qual este método é chamado para o ativoto.double Convert(string to, double value)- converte o valor especificado do ativo a partir do qual este método é chamado para o ativo cujo nome corresponde à stringto.
Considere o exemplo abaixo no qual o nosso cBot converte GBP em JPY e depois executa uma nova ordem de mercado usando o valor calculado como o volume da ordem.
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 | |
Se olharmos para o registo, podemos ver que o nosso cBot se comporta como esperado. No momento em que a instância foi iniciada, o preço de venda para GBPJPY era igual a 159,619.

Conversão de moeda em testes de verificação
O cTrader suporta totalmente taxas de conversão históricas em testes de verificação.
Isto significa que, quando faz um teste de verificação de um cBot que usa qualquer um dos métodos descritos acima, os cálculos de conversão serão realizados usando dados historicamente precisos em vez das taxas de câmbio atuais entre os ativos especificados. Esta funcionalidade garante que os resultados dos testes de verificação e otimização sejam tão precisos quanto possível, dadas as condições de mercado passadas.
Note que o cTrader pode construir cadeias de conversão precisas usando potencialmente instrumentos de negociação ilimitados. Como resultado, mesmo que a moeda de depósito da sua conta seja diferente dos ativos base ou de cotação do símbolo no qual gostaria de realizar um teste de verificação, o cTrader irá lidar com todos os cálculos necessários para fornecer resultados precisos de teste de verificação.
Em resumo, as taxas de conversão constituem outra ferramenta valiosa para garantir que os seus cBots e indicadores funcionem exatamente como esperado. Como o cTrader suporta o uso de dados históricos ao converter ativos em testes de verificação, pode ter a certeza de que todos os resultados de testes de verificação e otimização são historicamente precisos.