今回は、Strategy Testerを使って手動注文をリンクするシンプルな方法をご紹介します。多くの方がご存知の通り、ChartEventはStrategy Testerでは動作しません。そして、現時点で基本的なMQL5コードを使う場合、Strategy Testerに配置できる最もシンプルなオブジェクトは「ラベル」と「ボタン」のみです。ラベルは問題なく設置できますが、ボタンに関しては、テスターに配置できても、クリックされたかどうかの状態を検出するには高度なプログラミングが必要です。
私がこの機能を実現するために使ったトリックは、シンプルなファイル検出プロセスです。このEAをスタンドアロンの受信機と考えてください。ティックごとに、EAは特定のフォルダ内にあるファイルをチェックして、注文をトリガーします。指定されたフォルダに必要なテキストファイルが検出されると、EAはそのファイルに基づいて注文を実行し、その後ファイルを削除します。したがって、特定のフォルダ内に存在するファイルが取引を実行するための主なトリガーとなります。
これで、EAに注文を実行させるために、特定のファイルをフォルダに置くだけで済みます。
このEAでは、MetaTrader 5の「...\Common\Files\」フォルダに「buy.txt」、「sell.txt」、「close.txt」という名前のファイルを置くことで、ファイル名に基づいて特定の注文を実行するコマンドがトリガーされます。テキストファイルは空ですが、重要なのはファイル名とそのフォルダ内の存在です。ファイルは一度に一つだけ表示される必要があります(私のフォルダは次のようになっています: C:\Users\Rmd user\AppData\Roaming\MetaQuotes\Terminal\Common\Files\)。3つのファイルのうちの1つだけがフォルダ内に表示されなければならず、そうでなければ、EAが最初に読み込んだファイルが実行され、その後EAは3つのファイルのいずれかを削除します。
次に必要なのは、指定されたフォルダ内に必要なテキストファイルを作成または提供する外部アプリケーションです。もしくは、ターゲットフォルダにファイル名を転送する方法を見つけても良いでしょう。私はVisual Basicで作成しましたが、ここに実行可能ファイルをアップロードできるかどうか疑問なので、自分で作成するか、同様のものを探してみてください。いずれにしても、コマンドテキストファイルを適切なフォルダに置くだけです。下のディスカッションエリアで、私がどのようにパネルを作ったかを投稿しますので、ぜひチェックしてください。

おすすめのポイント:
- テスターで自分好みのインジケーターを使いたい場合は、インジケーターテンプレートを「StrategyTesterPracticeTrade.tpl」として保存または名前変更してください。これは、Strategy Testerで使用するEAと同じ名前です。
- コマンドテキストファイルが現れる適切なフォルダの場所に注意してください(...\MetaQuotes\Terminal\Common\Files\)。
- このアイデアはStrategy Testerだけでなく、他のEAコードに外部からの影響をリンクする方法としても使えます。例えば、単にファイル名の存在だけでなく、FileOpenを使用してファイルの内容を読み取り、テイクプロフィットやストップロス、ロットサイズのデータなどを取得することも可能です。このようにして、外部アプリケーションがEAの反応をカバーする他の可能性を持たせることができます。