コンテンツにスキップ

.NET Frameworkからの移行

.NET 6.0への移行

cTrader Windowsは、バージョン4.2で.NET Frameworkから.NET 6.0に移行しました。 これにより、UIやcBotおよびインジケーターのコンパイルとビルド方法に多くの重要な変更がもたらされました。

主な変更点

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

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

ただし、移行前に記述されたコードとの後方互換性が保たれているため、新しいバージョンのcTraderでも問題なく使用できます。 いくつかの例外を除き、古いバージョンのcTraderで作成されたインジケーターやcBotを自由に使用できます。

注意

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

.NET 6.0への移行方法

.NET Frameworkから.NET 6.0に移行するには、cTrader Windows 4.2以降でインジケーターとcBotをリビルドしてください。 リビルド中に、cTraderは自動的に.NETプロジェクト構造を新しいSDKスタイルに変更します。

リビルド後、ターゲットフレームワークドロップダウンメニューからインジケーターまたはcBotのターゲットフレームワークを.NET 6.0に変更してください。

Image title

リビルド後、インジケーターまたはcBotをテストしてください。

注意

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

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

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