MetaTrader 4 + Python: ZeroMQ

MetaTrader 4 + Python: ZeroMQ

ZeroMQ は、ファイルに依存したり、ソケットを一から実装したり、外部ストレージを低速にポーリングしたりせずに、MetaTrader 4 と Python を接続する実用的な方法です。一般的な構成では、ZeroMQ DLL を読み込む Expert Advisor を MT4 上で実行し、Python プロセスから pyzmq を使って通信します。

よくあるセットアップ上の問題

MQL4 や Python のコードをデバッグする前に、まず MT4 側の次の 2 つの要件を確認してください。

  • Microsoft Visual C++ 2015 Redistributable がインストールされている必要があります。 libzmq.dll が Visual C++ ランタイムに依存していて、そのランタイムが存在しない場合、ファイルが正しいディレクトリに置かれていても MT4 が DLL の読み込みに失敗することがあります。
  • EA を読み込むときに Allow DLL imports を有効にする必要があります。 このオプションが未チェックの場合、MT4 は ZeroMQ への呼び出しを拒否し、Cannot call 'libzmq.dll::zmq_ctx_new', DLL is not allowed のようなエラーを報告することがあります。

MetaTrader 4 Expert Advisor の DLL インポート設定

チェックリスト

  1. 使用している ZeroMQ DLL ビルドに必要な Visual C++ Redistributable をインストールする。
  2. MT4 ターミナルが読み込める場所に ZeroMQ DLL を配置する。通常はターミナルの MQL4/Libraries ディレクトリ配下です。
  3. Expert Advisor をチャートに読み込む。
  4. EA の設定で Common タブを開き、Allow DLL imports にチェックを入れる。
  5. ターミナルがすでに起動している状態で DLL を追加した場合は、MT4 を再起動する。
  6. MT4 上で EA が正常に動作していることを確認してから、Python プロセスを起動する。

それでも接続に失敗する場合は、まず MT4 の Experts タブと Journal タブを確認してください。通常、DLL インポートがブロックされているのか、依存関係が不足しているのか、EA 内部の実行時エラーなのかが表示されます。

Leave a Reply