.NET Frameworkからの移行

.NET 6.0 への移行

cTraderデスクトップは、バージョン4.2で.NET Frameworkから.NET 6.0に移行しました。これにより、UIやcBot/インジケーターのコンパイルおよびビルド方法にいくつかの重要な変更が加えられました。

主な変更点

移行前は、cTraderは.NET Framework 4.0(およびC#バージョン4)を使用しており、すべてのアルゴはメインのcTraderデスクトッププロセス内で実行されていました。

移行後は、cTraderはインジケーター/cBot用に別々の子プロセスを使用するようになりました。また、.algoファイルをビルドするための専用のNugetパッケージも使用しています。

とはいえ、新しいcTraderのリリースは、移行前に書かれたコードと互換性があります。いくつかの例外を除いて、古いバージョンのcTraderでビルドされたインジケーター/cBotを自由に使用できます。

注記

移行中にいくつかのパラメーター名やメソッドが変更されました。古いバージョンのcBot/インジケーターを新しいバージョンのcTraderでビルドする際には、ビルドエラーや警告が表示されることがあります。新しいメソッド/パラメーター名やメソッドのオーバーロードについては、リファレンスライブラリを参照してください。

.NET 6.0 への移行方法

.NET Frameworkから.NET 6.0に移行するには、cTraderデスクトップ4.2以降のバージョンでインジケーター/cBotを再ビルドします。再ビルド中に、cTraderは自動的に.NETプロジェクトの構造を新しいSDKスタイルに変更します。

再ビルド後、インジケーター/cBotのターゲットフレームワークを’Target Framework‘ドロップダウンメニューから.NET 6.0に変更します。

Image title

再ビルド後にインジケーター/cBotをテストします。

注記

インジケーター/cBotがFileRegistry、またはInternetアクセス権を使用している場合は、それらをFullAccessに変更します。

バージョン4.2では、複数のスレッドを使用しているcBot/インジケーターは、APIメンバーを呼び出すことができません。これに対処するには、BeginInvokeOnMainThreadメソッドを使用してAPIメソッド/メンバーを呼び出します。そうしないと、コードがエラーをスローします。

cTrader Algo APIはスレッドセーフではないため、APIメンバーを呼び出す/アクセスするたびにBeginInvokeOnMainThreadメソッドを使用する必要があります。