Przejdź do treści

Migracja z .NET Framework

Migracja do .NET 6.0

cTrader Windows przeszedł z .NET Framework na .NET 6.0 w wersji 4.2. Spowodowało to szereg istotnych zmian w interfejsie użytkownika oraz w sposobie kompilowania i budowania cBotów i wskaźników.

Kluczowe zmiany

Przed migracją cTrader używał .NET Framework 4.0 (i C# w wersji 4). Wszystkie algorytmy działały wewnątrz głównego procesu cTrader Windows.

Po migracji cTrader używa teraz oddzielnych procesów podrzędnych dla wskaźników i cBotów. Używa również dedykowanego pakietu NuGet do budowania plików .algo.

Niemniej jednak nowe wersje cTrader są wstecznie kompatybilne z kodem napisanym przed migracją. Poza kilkoma wyjątkami możesz swobodnie używać wskaźników i cBotów, które zostały zbudowane w starszych wersjach cTrader.

Uwaga

Niektóre nazwy parametrów i metody zostały zmienione podczas migracji. Podczas budowania starych cBotów lub wskaźników w nowszych wersjach cTrader możesz otrzymać błędy lub ostrzeżenia kompilacji z tego powodu. Zapoznaj się z biblioteką referencyjną, aby poznać nowe nazwy metod lub parametrów oraz przeciążenia metod.

Jak przeprowadzić migrację do .NET 6.0

Aby przeprowadzić migrację z .NET Framework do .NET 6.0, przebuduj swoje wskaźniki i cBoty w cTrader Windows 4.2 lub nowszym. Podczas przebudowy cTrader automatycznie zmieni strukturę projektu .NET na nowy styl SDK.

Po przebudowie zmień platformę docelową swojego wskaźnika lub cBota na .NET 6.0 za pomocą menu rozwijanego Target framework.

Image title

Przetestuj swój wskaźnik lub cBota po przebudowie.

Uwaga

Jeśli Twój wskaźnik lub cBot używa praw dostępu File, Registry lub Internet, zmień je na FullAccess.

W wersji 4.2 cBoty i wskaźniki używające wielu wątków nie mogą wywoływać żadnych elementów API. Można to rozwiązać, używając metody BeginInvokeOnMainThread do wywołania metody lub elementu API. W przeciwnym razie Twój kod zgłosi błąd.

Ponieważ API cTrader Algo nie jest bezpieczne wątkowo, musisz używać metody BeginInvokeOnMainThread za każdym razem, gdy wywołujesz lub uzyskujesz dostęp do elementu API.