MT4のログファイルには問題解決のヒントが詰まってる
EAやインジケーターを開発あるいは運用していて、「動かない」「変な動きをする」といった問題に遭遇することがありますよね。
そんな時、皆さんどうしていますか?
他人が作ったものならその作者に問い合わせれば、解決の糸口を見つけられるかもしれません。
しかし、自分が作ったものの場合はそうはいきません。
相談できる人が身近にいるなら別ですが、そうでなければ基本的には自分で原因を調査・特定し、解決しなければなりません。
問題はどうやってその原因を調査すればいいのか?
答えはログファイルの中身を確認することです。
ログファイルとは何でしょうか?
ログをWikipediaで調べると、こう書かれています。
ログファイルはソフトウェアの動作を記録したファイルなわけですが、それだと味気なくて「ふ~ん」で終わってしまいそうですね。
もっと価値のある表現にしてみましょう、
ログファイルというのは問題が起きた時にその原因のヒントを与えてくれるファイルです。
ログファイルは普段、日の目を見ることがない地味で目立たない存在ですが、いざトラブルが発生した時には正義の味方のごとく開発者を助けてくれる頼もしい存在なのです。
「ログファイルなくしてソフトウェアは成立しない」と言っても過言ではないぐらい凄いやつなんです!
ですので、おかしいなと思ったらすぐにログファイルを確認するクセを付けましょう。
実はこれは開発者に限った話ではなく、ユーザーであっても同じです。
作成者に「動きません。どうすればいいですか?」とだけ伝えても、「いやそれじゃわかんねーから」と思われるのがオチです。
人によっては冷たくあしらわれるか、優先順位を下げられてしまうでしょう。
あなたは困っていて、できるだけ早く問題を解決したいと思っているはずです。
であれば、作成者がすぐに動いてくれるようにひと手間かけるのが賢い方法だと思いませんか?
どうすればいいか?
そうです。ログファイルを送ってあげればいいのです。
その時は、ログファイルとともに「いつ」「どんな状態(どこのFX業者のMT4かとかどの通貨ペア、時間足かとかパラメーターの設定内容とか)で」「何をしたら」「どうなったか」を伝えてあげると良いでしょう。
これをやるだけで、作成者側は「すぐに調べたろ」って思うものです。
そんなもんです。作成者も人の子ですから。
閑話休題。
「ログファイルが重要なのはわかった。で、そのログファイルはどこにあるの?」という声が聞こえてきそうです。
というわけで、ログファイルのありかについて説明します。
「エキスパート」タブのログが最も重要
ログファイルの中身は実はMT4で確認することができます。
MT4を起動し、ターミナルウィンドウを開きます。
そして「エキスパート」タブをクリックしてください。
これです。
これがログファイルの中身です。
ここを見てエラーや警告が出ていないかをチェックするのが最初にやるべきことです。
ただ、ここには最後にMT4を起動した後からのものしか表示されません。
その前のログも見たい場合は、「エキスパート」タブのウィンドウで右クリックして「表示」を選択してください。
ログ全体を確認できます。
この画面なら文字列検索や日付指定もできて便利です。
でもって、このログ画面の元になっているログファイルの格納場所はどこかと言いますと、「エキスパート」タブのウィンドウで右クリックして「開く」を選択すれば自動的に格納場所に飛んでくれます。
データフォルダ(長い文字列)¥MQL4¥Logs¥yyyymmdd.logがログファイルの本体です。
このファイルをメールなどで送ればいいのですが、1つ注意事項があります。
「エキスパート」タブのウィンドウで右クリックして「開く」経由でログファイルをコピーするか、MT4を閉じてから上記フォルダを直接参照(Windowsのエクスプローラーで直接フォルダの位置を指定)してログファイルをコピーするようにしてください。
やってはいけないのはMT4を開きっぱなしにした状態で、上記フォルダを直接参照してログファイルをコピーすることです。
なぜダメなのかというと、このやり方ではログファイルが最新化されないからです。
直近のログが記録されていない状態のものがコピーされてしまいます。
さて、「エキスパート」タブのログファイルにはMT4が自動的に出力するログの他に、開発者によるオリジナルのログが書かれているのが一般的です。
ログファイルにログを書き込む命令はPrint関数です。どこに仕込むべきかは慣れないと判断が難しいと思います。
ポイントは問題が起きた時にどのタイミングでどの情報をログファイルに出力しておけば後で原因調査できそうか?という視点を持つことです。
ん~~~ということであれば、とりあえずあちこちに仕込んでみてはどうでしょうか。
それと、MT4のログファイルは実はもう1種類あります。
データフォルダ¥logs¥yyyymmdd.logです。
「エキスパート」タブの右隣にある「操作履歴」タブの本体となっています。
こちらはあまり出番はありません。少なくとも私は滅多にみません。
混同しないようにご注意ください。
余談ですが、ログファイルを確認しなければならない状態で、冒頭のアイキャッチ画像のように、にこやかな表情になっていることはまずありません(笑)