Ir para o conteúdo

Migrar do .NET Framework

Migrar para .NET 6.0

O cTrader Windows migrou do .NET Framework para o .NET 6.0 na versão 4.2. Isto resultou num número significativo de alterações na interface do utilizador e na forma como os cBots e indicadores são compilados e construídos.

Alterações principais

Antes da migração, o cTrader utilizava o .NET Framework 4.0 (e a versão 4 do C#). Todos os algos eram executados dentro do processo principal do cTrader Windows.

Após a migração, o cTrader utiliza agora processos secundários separados para indicadores e cBots. Também utiliza um pacote NuGet dedicado para construir ficheiros .algo.

Dito isto, as novas versões do cTrader são compatíveis com o código escrito antes da migração. À exceção de alguns casos, pode utilizar livremente indicadores e cBots que foram construídos em versões mais antigas do cTrader.

Nota

Alguns nomes de parâmetros e métodos foram alterados durante a migração. Ao construir os seus cBots ou indicadores antigos em versões mais recentes do cTrader, poderá receber erros ou avisos de compilação devido a isto. Consulte a biblioteca de referência para conhecer os novos nomes de métodos ou parâmetros e as sobrecargas de métodos.

Como migrar para .NET 6.0

Para migrar do .NET Framework para o .NET 6.0, reconstrua os seus indicadores e cBots no cTrader Windows 4.2 ou mais recente. Durante a reconstrução, o cTrader alterará automaticamente a estrutura do projeto .NET para o novo estilo SDK.

Após a reconstrução, altere a framework de destino do seu indicador ou cBot para .NET 6.0 através do menu suspenso Target framework.

Image title

Teste o seu indicador ou cBot após a reconstrução.

Nota

Se o seu indicador ou cBot utilizar os direitos de acesso File, Registry ou Internet, altere-os para FullAccess.

Na versão 4.2, os cBots e indicadores que utilizam múltiplas threads não podem chamar quaisquer membros da API. Isto pode ser resolvido utilizando o método BeginInvokeOnMainThread para chamar um método ou membro da API. Caso contrário, o seu código lançará um erro.

Como a API do cTrader Algo não é thread safe, deve utilizar o método BeginInvokeOnMainThread sempre que chamar ou aceder a um membro da API.