Table of Contents
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のようなエラーを報告することがあります。

チェックリスト
- 使用している ZeroMQ DLL ビルドに必要な Visual C++ Redistributable をインストールする。
- MT4 ターミナルが読み込める場所に ZeroMQ DLL を配置する。通常はターミナルの
MQL4/Librariesディレクトリ配下です。 - Expert Advisor をチャートに読み込む。
- EA の設定で Common タブを開き、Allow DLL imports にチェックを入れる。
- ターミナルがすでに起動している状態で DLL を追加した場合は、MT4 を再起動する。
- MT4 上で EA が正常に動作していることを確認してから、Python プロセスを起動する。
それでも接続に失敗する場合は、まず MT4 の Experts タブと Journal タブを確認してください。通常、DLL インポートがブロックされているのか、依存関係が不足しているのか、EA 内部の実行時エラーなのかが表示されます。
