リモートストラテジーはDukascopyが提供するリモートサーバーを使い、JForexプラットフォーム上で、常時ストラテジーを起動させることを可能にした、バーチャルホスティングサービスです。
ローカルストラテジーでの起動と異なり、遠隔での起動となるため、プラットフォームを閉じたとしてもストラテジーを継続して起動させることが可能になります。リモートストラテジーは、ストラテジーのスムーズな稼働と、より迅速な注文約定を可能にするための最適かつ効率的なソリューションです。
リモートストラテジー環境は、ローカルストラテジー環境と同様の実行条件を目指していますが、リモートストラテジー環境で起動させるストラテジーをプログラムする場合、以下の通りいくつか注意が必要な事項があります。注意事項の多くは、ローカルコンピューターのリソース、設定、機能にアクセスできないことに起因しています。
注意事項
- ストラテジーの起動前に、ストラテジーで利用する銘柄を追加することが必要です。
- チャートは利用できません。そのため、IContext.getChartはnullを返します。
- ファイルは利用できません。(例、java.io.File)
- 以上の事項の通り、カスタムインディケーターは、ストラテジー内に定義する必要があります。
- @RequiresFullAccessのアノテーションは利用できません。そのため、外部ライブラリを利用する場合、ストラテジーのコンパイル時に、IContext.getFilesDirのディレクトリに直接配置する必要があります。
- ストラテジー内の自己定義された定数が利用できません。
- リモートストラテジー環境のログは、プラットフォームに記録されません。リモートストラテジー環境のログは、ストラテジー・ログに記録されます。
- IConsole.get()、println()は、1ミリ秒以上で呼び出す必要があります。そうでなければ、ログは、最後のステートメントが記録されます。
- 各ストラテジーのスロットは、48MBのRAMを割り当てられます。ただし、48MBのRAM全てがストラテジーに割り当てられるわけではなく、一部がデューカスコピー・ストラテジーエンジン及びフィードオペレーションに利用されています。従って、相当量のデータを保持する場合、注意いただく必要があります。(例、ヒストリカルデータをjava.util.Map及びjava.util.Set等のデータ構造に保持する場合)
- プロセッサ負荷の制限が適用されます。ストラテジーは、デモ環境でCPU使用率のテストが必要です。マルチスレッドストラテジーをプログラミングする場合はご注意ください。
- 有効なリモートスロット(同時に起動されるリモートストラテジー)は5つに限られています。ご注意ください。
リモートストラテジー環境は、プラットフォームからの管理だけではなく、IRemoteStrategyManager インタフェースによってJForex-SDK 及びプラグインからも管理することができます。IStrategyManagerのjavadocsやJForex-SDKプロジェクトのStratTablePluginを参照ください。