MetaTraderのファイル/レジストリアクセスを監視する方法。

昨日の記事では、MT4 のネットワークの接続状態を監視するツールを紹介しましたが、次に監視したくなるものは、やはり、ファイルアクセスでしょう。
(……監視したくないですか。そうですか。でも、此処はそういうブログなんです...。)


トレードには全く役に立たないのですが、MT4 と連携するツールを作ろうとした時に、例えばヒストリカルデータは、いつディスクに書き出されるのか??
あるいは、MT4 はレジストリを使用しないと言われているけど、本当なのか??
等を調べるときに、ちょびっとだけ便利なツールであるProcess Monitor を紹介します。
このツールは、ファイル、レジストリ、ネットワークへのアクセスを時系列順に延々とモニターすることが出来ます。

(1) ソフトのダウンロード
http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx
の一番下の「Process Monitor のダウンロード」からProcessMonitor.zip を入手し解凍します。

(2) 使い方

画面内のボタンを適当に押してみれば、およその機能は分かります。(…というか、分かって...。)


(3) フィルタ設定
ProcessMonitor 起動直後は、大量のイベントが監視されているので、フィルタ設定が不可欠です。
ロート状のアイコンをクリックして、フィルタ設定ウィンドウを開き、

Process Name is terminal.exe Include

と設定して、Add ボタンを押します。


(4) 眺める...
MT4 を動かしつつ、適当にフィルタ条件を変えて( そのままでは表示される情報量が多いので、不要な情報を表示させないようにして )みてゆきます。

上図は、terminal.exe がレジストリにアクセスしている様子が分かります。

上図は、terminal.exe がファイルを読み書きしている様子です。
ある操作をすると、どのファイルにアクセスされるのかが、これでばっちり分かります。!!
一般の人には図を見ても、何が起きているのかさっぱり分からないかもしれませんが、こういうツールで地道にMT4 の動きを観察しているという雰囲気だけ感じてもらえれば十分です...。





(5) Windows を再起動する。
とても重要なことですが、Process Monitor を一度起動してしまうと、それ以後、Windows を再起動するまで MetaEditor からコンパイルが出来なくなります。
これは、コンパイル時に呼ばれる MetaLang.exe には、ハッキング防止処理が施されている為、Process Monitor のような のぞき見ツールが動いていると、MetaLang.exe が起動できなくなるのです。
なので、一通りの監視作業が終わったら、Windows を再起動してください。





Process Monitor に限らず、類似のフリーソフトを動かした場合もやはりコンパイル不能になるので、この点だけは覚えておいても良いかもしれません。