MT4のEAから外部プロセスを起動

MT4売買補助用のEAを開発しようとしていてMQ4が辛くてC#に流れた。

 

 

MQ4は外部DLLが使えるので、そこから CreateProcess を使って外部プロセスを起動。CreateProcess なら標準入出力も扱える。

DLL側で完結させるという手もあるが、WPFが使ってみたかったので外部プロセスに。(WPFは次回)

 

Tick と水平線を外部プロセスの標準入力に流してみる。

 

コード ↓

 

process.cpp からできた dll は MQL4/Libraries に配置。outer.mt4 は MQL4/Experts に配置。

Program.cs からできた exe は outer.exe にリネームして、MT4 の terminal.exe のある場所 (OANDA MT4 だと C:\Program Files (x86)\OANDA - MetaTrader) に配置。

 

コンソールだと動くが、WPFでやってみたら標準入力からうまく取れなかったので、パイプを使う方向に変更予定。

複数チャートをまとめて扱えるしパイプのがよさそうか。