Bỏ qua

Di chuyển từ .NET Framework

Chuyển đổi sang .NET 6.0

cTrader Windows đã chuyển đổi từ .NET Framework sang .NET 6.0 trong phiên bản 4.2. Điều này dẫn đến một số thay đổi đáng kể đối với giao diện người dùng và cách thức biên dịch và xây dựng cBot và chỉ báo.

Những thay đổi chính

Trước khi chuyển đổi, cTrader sử dụng .NET Framework 4.0 (và phiên bản C# 4). Tất cả các thuật toán đều chạy trong quy trình chính của cTrader Windows.

Sau khi chuyển đổi, cTrader hiện sử dụng các quy trình con riêng biệt cho chỉ báo và cBot. Nó cũng sử dụng một gói NuGet chuyên dụng để xây dựng các tệp .algo.

Tuy nhiên, các phiên bản mới của cTrader vẫn tương thích ngược với mã được viết trước khi chuyển đổi. Ngoại trừ một vài trường hợp ngoại lệ, bạn có thể tự do sử dụng các chỉ báo và cBot được xây dựng trong các phiên bản cũ hơn của cTrader.

Ghi chú

Một số tên tham số và phương thức đã được thay đổi trong quá trình chuyển đổi. Khi xây dựng cBot hoặc chỉ báo cũ của bạn trong các phiên bản mới hơn của cTrader, bạn có thể nhận được lỗi hoặc cảnh báo xây dựng vì điều này. Hãy tham khảo thư viện tham chiếu để tìm hiểu tên phương thức hoặc tham số mới và các phương thức nạp chồng.

Cách chuyển đổi sang .NET 6.0

Để chuyển đổi từ .NET Framework sang .NET 6.0, hãy xây dựng lại các chỉ báo và cBot của bạn trong cTrader Windows 4.2 hoặc mới hơn. Trong quá trình xây dựng lại, cTrader sẽ tự động thay đổi cấu trúc dự án .NET sang kiểu SDK mới.

Sau khi xây dựng lại, hãy thay đổi khung mục tiêu của chỉ báo hoặc cBot thành .NET 6.0 thông qua menu thả xuống Target framework.

Image title

Kiểm tra chỉ báo hoặc cBot của bạn sau khi xây dựng lại.

Ghi chú

Nếu chỉ báo hoặc cBot của bạn sử dụng quyền truy cập File, Registry hoặc Internet, hãy thay đổi chúng thành FullAccess.Trong phiên bản 4.2, cBot và chỉ báo sử dụng nhiều luồng không thể gọi bất kỳ thành viên API nào. Điều này có thể được giải quyết bằng cách sử dụng phương thức BeginInvokeOnMainThread để gọi một phương thức hoặc thành viên API. Nếu không, mã của bạn sẽ báo lỗi.Vì cTrader Algo API không an toàn cho luồng, bạn phải sử dụng phương thức BeginInvokeOnMainThread bất cứ khi nào bạn gọi hoặc truy cập một thành viên API.