記事「多通貨エキスパートアドバイザーの開発(第22回):設定のホットスワップへの移行を開始する」についてのディスカッション

 

新しい記事「多通貨エキスパートアドバイザーの開発(第22回):設定のホットスワップへの移行を開始する」はパブリッシュされました:

定期的な最適化を自動化するのであれば、取引口座上ですでに稼働しているEAの設定を自動更新することについても検討する必要があります。これにより、ストラテジーテスター内でエキスパートアドバイザー(EA)を実行しながら、単一の実行の中でその設定を変更できるようにする必要があります。

では、私たちが達成したいことをもう少し詳しく説明してみましょう。理想的には、システムは次のような動作をすることを想定しています。

  1. 最適化期間の終了日として現在の日付を設定したプロジェクトが生成されます。 
  2. 生成されたプロジェクトはパイプラインで実行されます。その実行には数日から数週間かかることがあります。
  3. プロジェクトの結果が最終EAに読み込まれます。最終EAがまだ取引を開始していない場合は、実口座上で起動します。すでに口座上で稼働していた場合は、パイプラインを通過した直近のプロジェクトで得られた新しいパラメータに置き換えられます。
  4. ポイント1に移ります。

それぞれのポイントについて考えてみましょう。まず最初のポイントの実装には、前回の記事で作成したプロジェクト生成スクリプトEAを使用できます。このEAでは、パラメータを使って最適化の終了日を選択することが可能です。ただし、現状では手動でしか起動できません。これは、プロジェクト実行パイプライン(「コンベア」)に新たなステージを追加し、現在のプロジェクトのすべてのステージが完了した後に新しいプロジェクトを生成するようにすれば解決できます。この場合、最初の一度だけ手動で実行すれば済みます。

次に2つ目のポイントですが、必要なのはパラメータで指定されたデータベースを持つOptimization.ex5 EAがインストールされたターミナルだけです。このEAには、新たに未処理のプロジェクトタスクが発生すると、それらがキューの順序に従って実行されます。新しいプロジェクトを作成するステージの直前の最終ステージでは、何らかの形でプロジェクト最適化の結果を最終EAに渡す必要があります。

3つ目のポイントが最も難しい部分です。現在、最終EAへのパラメータ受け渡しの単一の方法は実装済みですが、依然として手動操作が必要です。具体的には、別のEAを実行してパラメータライブラリをファイルに書き出し、そのファイルをプロジェクトフォルダにコピーして、最終EAを再コンパイルする必要があります。現在ではこれらの操作をプログラムコードに委譲することは可能ですが、構造自体が不必要に煩雑に見えてきます。もっと簡単で信頼性の高い方法にしたいところです。


作者: Yuriy Bykov