文化的で洗練されたセミリタイア生活を夢見て、EA開発に手を出し始めたサンダーストームです!
先日、外部ファイルをインクルードしようとしたらアッサリ
“can’t open “インクルードファイル名.mph” include file”
というぉおおおお恐ろしいエラーが発生し、苦しみ悶えることとなりました。
本日はその原因と解決法をシェアしたいと思います。
売上が突然上がった。
きっかけは、
あるSNSからの濃いアクセスでした----
インスタグラムのレスポンス率が
他のSNSと比べて高いのをご存知ですか?
Instagram 1.25%
Twitter 0.015%
FaceBook 0.12%
また、Instagramからアクセスしたユーザーは
滞在時間も長いことがわかっています
なぜInstagramのレスポンス率は高く
滞在時間は長いのか?
その特性を生かして何ができるのか?
こちらですべてわかります
インスタを集客に使うべき理由
原因は、ファイルの拡張子
またもや解決してくれたのはこちらのサイト。
.mqh file stand for Meta Quotes Header.
.mqhは、Meta Quotes Headerの略ですよー。と教えてくれました。
そうです、ぼく「.mqh」じゃなくって、拡張子を「.mph」にしてたんです。
そりやまあ、エラーもでますわなあ。
ループ文が入れ子になって読み難かった
なんでファイルを分けようと思ったのかと言いますと、まず、For文などのループが見づらかったというのがあります。
MT4自動売買ツールの開発言語である「mql4」って、保有ポジションひっくり返したり有効注文ひっくり返したり、とかくForなどのループが何重にも入れ子になりがちですよね。
そうなるとプログラムが読み難くなって、ぼくなんてのはもはや自動売買ツール開発というより、眼精疲労と戦う日々みたいになっておりました。
そこで僕は、少しでもFor文の入れ子を解消しようとループの一部を関数に分けることにしました。
ほいで、いじっていたファイルに関数を追加するでもよかったんですが、僕が使ってる開発ツールって、同じファイルを同時に2つ開いて横に並べられなかったんですよね。
これだとプログラムの本体をチラ見しながら、分けた関数をゴニョゴニョ、、、という開発ができないじゃありませんか。
なんか融通きかないなあ、、、なーんてことはこれっぽっちも思ってはおりませんでしたが、それじゃあまあ新しい別のプログラムファイルを作って、そこに関数書いて、インクルードすればいいやって思ったんです。
ファイルが違えば、同時に開いてウィンドウを縦に並べることができますもの。
新規にプログラムファイル作って、試しにPrint(“もげもげ”);だけの関数をとりあえず作って、#IncludeしてコンパイルGO!!
そしたらアッサリ件のエラーw
ファイル読めないよエラーの原因ってほとんどがファイル名の間違いか権限かなので、目をフシアナにしてファイル名をチェックするぼく。
しかしながら、ないのですよ。間違いなんてものは。
それでも続くエラー。
<>カッコを””に変えてみてもエラー
エラー&エラー。
ぁああああああって発狂しそうになって、ゴーグルで検索しまくって、たどり着いたのが先程のサイトです。
.mqhは、Meta Quotes Headerの略ですよー。
人は、とかくファイル名には目と発想は行きますけど、拡張子ってとこまでは頭まわらなかったですね。
しかもqとpって、間違いやすいですしね!ね!?
そしてやっぱり、英語ができると探してる情報にたどり着くスピードが違うなあと思いました。
日本語のサイトで、「mql4ヘッダーファイルの拡張子は、MetaQuotesHeaderだから、mqhだよ」なーんて教えてくれるサイト、ありませんでしたから。
みなさまMql4の傍ら、英語のお勉強も一緒にがんばりましょうね!
インクルードファイル読み込みエラーまとめ
- ファイル名だけじゃなくって、拡張子もチェックしてみよう
- 英語はやっぱり役に立つ
外部ファイルインクルードをうまく活用して、文化的で洗練された自動売買EA開発ライフを送りましょうね!
以上、mql4ヘッダーファイルの拡張子は.mphじゃなくって.mqh!でした。
コメントしちゃう