【MQL4】おかしいなと思ったらログファイルを見るべし

MT4のログファイルには問題解決のヒントが詰まってる

EAやインジケーターを開発あるいは運用していて、「動かない」「変な動きをする」といった問題に遭遇することがありますよね。

そんな時、皆さんどうしていますか?

他人が作ったものならその作者に問い合わせれば、解決の糸口を見つけられるかもしれません。

しかし、自分が作ったものの場合はそうはいきません。

相談できる人が身近にいるなら別ですが、そうでなければ基本的には自分で原因を調査・特定し、解決しなければなりません。

問題はどうやってその原因を調査すればいいのか?

答えはログファイルの中身を確認することです。

ログファイルとは何でしょうか?

ログをWikipediaで調べると、こう書かれています。

アプリケーション、OS、サービスが処理内容、警告などの履歴を逐一記録し、障害発生時や開発時(デバッグ)などに参照できるようにするため作成する。ログファイル名には年月日を用い、拡張子には .log が用いられることが多い。

ログファイルはソフトウェアの動作を記録したファイルなわけですが、それだと味気なくて「ふ~ん」で終わってしまいそうですね。

もっと価値のある表現にしてみましょう、

ログファイルというのは問題が起きた時にその原因のヒントを与えてくれるファイルです。

ログファイルは普段、日の目を見ることがない地味で目立たない存在ですが、いざトラブルが発生した時には正義の味方のごとく開発者を助けてくれる頼もしい存在なのです。

「ログファイルなくしてソフトウェアは成立しない」と言っても過言ではないぐらい凄いやつなんです!

ですので、おかしいなと思ったらすぐにログファイルを確認するクセを付けましょう。

実はこれは開発者に限った話ではなく、ユーザーであっても同じです。

作成者に「動きません。どうすればいいですか?」とだけ伝えても、「いやそれじゃわかんねーから」と思われるのがオチです。

人によっては冷たくあしらわれるか、優先順位を下げられてしまうでしょう。

あなたは困っていて、できるだけ早く問題を解決したいと思っているはずです。

であれば、作成者がすぐに動いてくれるようにひと手間かけるのが賢い方法だと思いませんか?

どうすればいいか?

そうです。ログファイルを送ってあげればいいのです。

その時は、ログファイルとともに「いつ」「どんな状態(どこのFX業者のMT4かとかどの通貨ペア、時間足かとかパラメーターの設定内容とか)で」「何をしたら」「どうなったか」を伝えてあげると良いでしょう。

これをやるだけで、作成者側は「すぐに調べたろ」って思うものです。

そんなもんです。作成者も人の子ですから。

閑話休題。

「ログファイルが重要なのはわかった。で、そのログファイルはどこにあるの?」という声が聞こえてきそうです。

というわけで、ログファイルのありかについて説明します。

「エキスパート」タブのログが最も重要

ログファイルの中身は実はMT4で確認することができます。

MT4を起動し、ターミナルウィンドウを開きます。

そして「エキスパート」タブをクリックしてください。

これです。

エキスパートタブ

これがログファイルの中身です。

ここを見てエラーや警告が出ていないかをチェックするのが最初にやるべきことです。

ただ、ここには最後にMT4を起動した後からのものしか表示されません。

その前のログも見たい場合は、「エキスパート」タブのウィンドウで右クリックして「表示」を選択してください。

ログ全体を確認できます。

エキスパートタブのログ全体

この画面なら文字列検索や日付指定もできて便利です。

でもって、このログ画面の元になっているログファイルの格納場所はどこかと言いますと、「エキスパート」タブのウィンドウで右クリックして「開く」を選択すれば自動的に格納場所に飛んでくれます。

データフォルダ(長い文字列)¥MQL4¥Logs¥yyyymmdd.logがログファイルの本体です。

ログファイルのパス

このファイルをメールなどで送ればいいのですが、1つ注意事項があります。

「エキスパート」タブのウィンドウで右クリックして「開く」経由でログファイルをコピーするか、MT4を閉じてから上記フォルダを直接参照(Windowsのエクスプローラーで直接フォルダの位置を指定)してログファイルをコピーするようにしてください。

やってはいけないのはMT4を開きっぱなしにした状態で、上記フォルダを直接参照してログファイルをコピーすることです。

なぜダメなのかというと、このやり方ではログファイルが最新化されないからです。

直近のログが記録されていない状態のものがコピーされてしまいます。

さて、「エキスパート」タブのログファイルにはMT4が自動的に出力するログの他に、開発者によるオリジナルのログが書かれているのが一般的です。

ログファイルにログを書き込む命令はPrint関数です。どこに仕込むべきかは慣れないと判断が難しいと思います。

ポイントは問題が起きた時にどのタイミングでどの情報をログファイルに出力しておけば後で原因調査できそうか?という視点を持つことです。

ん~~~ということであれば、とりあえずあちこちに仕込んでみてはどうでしょうか。

それと、MT4のログファイルは実はもう1種類あります。

データフォルダ¥logs¥yyyymmdd.logです。

「エキスパート」タブの右隣にある「操作履歴」タブの本体となっています。

こちらはあまり出番はありません。少なくとも私は滅多にみません。

混同しないようにご注意ください。

余談ですが、ログファイルを確認しなければならない状態で、冒頭のアイキャッチ画像のように、にこやかな表情になっていることはまずありません(笑)

MT4の無料プログラミング講座

メルマガ登録して、MT4のプログラミング講座を無料で受けちゃおう!

超豪華プレゼントも盛りだくさん♪

MT4プログラミングを習得すると、オリジナルEA運用、作成代行、商品販売等、複数の収入源を手に入れられるよ。副業に最適だね!

↓↓↓ 詳細はこちら ↓↓↓

アイキャッチ

>

エターナル・パートナーPRO ~MT4裁量トレード支援ツール~ 「MT4は裁量トレーダーに優しくない」そう思ったことありませんか?もっと快適にトレードするための強力な売買ツールが必要だと考え、開発したのが「エターナル・パートナーPRO」です。元々は自分自身のために開発したツールですので、手抜き無しのガチものです。既に200名近い方に手に取っていただき、喜びの声が続々と届いております。ぜひご覧ください!

CTR IMG