Ana içeriğe geç

.NET Framework'ten Geçiş

.NET 6.0'a Geçiş

cTrader Windows, 4.2 sürümünde .NET Framework'ten .NET 6.0'a geçiş yaptı. Bu, kullanıcı arayüzünde ve cBot'ların ve göstergelerin nasıl derlenip oluşturulduğunda bir dizi önemli değişikliğe yol açtı.

Temel değişiklikler

Geçişten önce cTrader, .NET Framework 4.0'ı (ve C# sürüm 4'ü) kullanıyordu. Tüm algoritmalar ana cTrader Windows süreci içinde çalışıyordu.

Geçişten sonra cTrader, göstergeler ve cBot'lar için ayrı alt süreçler kullanmaktadır. Ayrıca .algo dosyalarını oluşturmak için özel bir NuGet paketi kullanır.

Bununla birlikte, cTrader'ın yeni sürümleri, geçişten önce yazılan kodlarla geriye dönük uyumludur. Birkaç istisna dışında, cTrader'ın eski sürümlerinde oluşturulan göstergeleri ve cBot'ları serbestçe kullanabilirsiniz.

Not

Geçiş sırasında bazı parametre adları ve yöntemler değiştirilmiştir. Eski cBot'larınızı veya göstergelerinizi cTrader'ın daha yeni sürümlerinde oluştururken, bu nedenle derleme hataları veya uyarıları alabilirsiniz. Yeni yöntem veya parametre adlarını ve yöntem aşırı yüklemelerini öğrenmek için referans kütüphanesine başvurun.

.NET 6.0'a nasıl geçilir

.NET Framework'ten .NET 6.0'a geçmek için göstergelerinizi ve cBot'larınızı cTrader Windows 4.2 veya daha yeni bir sürümde yeniden oluşturun. Yeniden oluşturma sırasında cTrader, .NET proje yapısını otomatik olarak yeni SDK stiline değiştirecektir.

Yeniden oluşturduktan sonra, göstergenizin veya cBot'unuzun hedef çerçevesini Hedef çerçeve açılır menüsü aracılığıyla .NET 6.0 olarak değiştirin.

Image title

Yeniden oluşturduktan sonra göstergenizi veya cBot'unuzu test edin.

Not

Göstergeniz veya cBot'unuz File, Registry veya Internet erişim haklarını kullanıyorsa, bunları FullAccess olarak değiştirin.

4.2 sürümünde, birden çok iş parçacığı kullanan cBot'lar ve göstergeler herhangi bir API üyesini çağıramaz. Bu, bir API yöntemini veya üyesini çağırmak için BeginInvokeOnMainThread yöntemini kullanarak giderilebilir. Aksi takdirde, kodunuz bir hata atacaktır.

cTrader Algo API iş parçacığı açısından güvenli değil olduğundan, bir API üyesini her çağırdığınızda veya eriştiğinizde BeginInvokeOnMainThread yöntemini kullanmanız gerekir.