【MQL4入門】EA開発で重要なインデントの書き方と理由を解説(初心者向け)

スーツ姿のデグーマウスがMT4 EAのコードを指しながら解説しているイラスト。ぷろぐらむFXのデフォルトアイキャッチ。
EAを自作してみよう
スポンサーリンク

MQL4を使ってEA(自動売買プログラム)を開発しようとしたとき、「コードの構造がごちゃごちゃで見にくい…」と感じたことはありませんか?

その原因の多くは、「インデント(字下げ)」が正しく使われていないことにあります。

本記事では、プログラミング初心者やMQL4入門者向けに、以下の内容を丁寧に解説していきます:

  • インデントとは何か?
  • なぜEA開発において重要なのか?
  • 実際にどう書けばよいのか?(MQL4の例つき)

コードの読みやすさと品質を高める第一歩として、ぜひこの記事で「正しい書き方の基本」を身につけてください。

本記事は、これからMQL4でEAを自作したい初心者の方、 またはサンプルコードを理解しながら学びたい方向けの記事です。

「自分でコードを書く前提」で解説しています。

インデントとは?

そもそもインデントって何?

インデントとは、プログラムの構造を見やすくするために、行頭に空白やタブを入れて階層を分かりやすくする書き方のことです。日本語で言えば「字下げ」のようなもの。

【MQL4入門】EA開発で重要なインデントの書き方と理由を解説(初心者向け)

この水色の部分(わかりやすいように塗っています)ですが初めて見ると、何でこんなに文字の前にスペースで余白取ってるんだろうってなりますよね。これが、プログラミング用語でインデントと呼ばれています。

なぜインデントが重要なの?

コンピューターには不要、でも人間には必須

実は、コンピューターにとってインデントはなくても処理できます。しかし、コードを読む人間にとっては命綱とも言える存在です。

会社でプログラマーとして働くなら、インデントが整っていないだけでレビュー時に指摘されるのは日常茶飯事。逆に、正しくインデントされていれば、コードの流れや構造が一目でわかりやすくなります。

実例で比較!インデントの有無でこんなに違う

以下の2つのコードを比べてみましょう。

// インデントあり
if(OrderType() == OP_BUY) {
    if(OrderLots() > 0.1) {
        OrderClose(...);
    }
}

// インデントなし
if(OrderType() == OP_BUY){if(OrderLots() > 0.1){OrderClose(...);}}

どちらが見やすいかは一目瞭然。インデントがあることで、処理の入れ子構造が視覚的に明確になります。

もう少し長いパターンでも。

↑がインデントがあるパターンで、↓がインデントが無いパターンです。やっぱり左側の方が見やすいですよね!

※本記事は、if文の基本構文が分かっている方向けです。
まだ if文に慣れていない場合は、先にこちらを読むと理解がスムーズです。

スポンサーリンク

インデントが必要な3つの理由

① プログラム構造が一目で分かる

どの処理がどの条件文やループに属しているのかがインデントで判断できます。

② 可読性が上がる

他人がコードを読むとき、または自分が数日後に見返すとき、インデントがないと理解に時間がかかります。

③ バグを防ぎやすくなる

if文などの影響範囲を見誤って、意図しない処理が行われるケースは初心者にありがちです。インデントをきちんとつけることで、こうしたミスを防ぎやすくなります。

インデントの基本ルールと付け方

かぎカッコ{ }を使うたびにインデントを

インデントは、条件分岐(if)や繰り返し処理(for, while)などでカッコ「{」を使ったら、次の行からタブ1つ分(もしくはスペース4つなど)を下げて書くのが一般的です。

if(条件) {
    // この行はインデント1段
    処理A();
}

カッコを閉じる「}」ときには、インデントを元に戻します。

Tabキー or スペース?どちらを使うべき?

どちらでもOKですが、MQL4のMetaEditorの場合はTabキーで問題ないです。

こんな感じでTabキーで増やして、Shift+Tabキーで減らす事ができます。

【MQL4入門】EA開発で重要なインデントの書き方と理由を解説(初心者向け)

Tabキー での使い方

MetaEditorではもちろん1行で使う事もできますが、マウスで複数行選択してから

【MQL4入門】EA開発で重要なインデントの書き方と理由を解説(初心者向け)

TabキーやShift+Tabキーを押す事で複数行のインデントの増減を修正する事も可能です。

インデントがないと起きるトラブル

後から自分で読めなくなるコードになる

数日後や機能追加のタイミングでコードを見返したとき、 「どこからどこまでが処理なのか分からない…」と感じる原因No.1が インデントの乱れです。

バグの温床になる

「if文の中だと思ったら、外だった」など、見た目で誤解を招き、実行時エラーの原因になることもあります。


❓ MQL4のインデントに関するよくある質問【初心者向けQ&A】

💬 EA開発を始めたばかりの方がつまずきやすい「インデント」に関する疑問をまとめました。

MQL4ではインデントを付けなくてもEAは動きますか?

はい、MQL4ではインデントがなくてもコンパイル・実行は可能です。
ただし、コードの構造が分かりにくくなり、バグや修正ミスの原因になりやすいため、実務的には必須の書き方と考えられています。

インデントが崩れていると、どんな問題が起きますか?

if文やループの範囲を見誤り、「思っていない場所で処理が実行される」ことがあります。
特に初心者の場合、インデントの乱れが原因でロジックを誤解し、バグに気づきにくくなります。

Tabキーとスペース、どちらでインデントを付けるべきですか?

MetaEditorを使う場合は、Tabキーで問題ありません
TabキーやShift+Tabキーを使えば、複数行のインデント調整も簡単に行えます。

インデントはどのタイミングで深くすればいいですか?

if文・for文・while文などで「{」を使った場合、
その中の処理は1段深いインデントにするのが基本ルールです。
「}」でブロックを閉じるときは、インデントを元に戻します。

インデントを意識すると、EA開発の何が変わりますか?

コードの構造が一目で分かるようになり、修正・機能追加・デバッグが圧倒的に楽になります
初心者のうちから正しいインデントを意識することで、EA開発の上達スピードも大きく変わります。

まとめ|インデントを正しく使えば、プログラムが変わる!

  • インデントはプログラムの読みやすさを劇的に改善する
  • パソコンのためではなく「人が読むため」のルール
  • if文やfor文の構造を正しく理解する助けになる

初心者のうちからインデントを意識して書くことで、 コードの品質だけでなく、理解力や修正のしやすさも大きく変わってきます。

インデントが理解できたら、 次は 条件分岐(if文)をどう整理して書くか を学ぶと、 EAのコードがさらに読みやすくなります。


✅EA開発初心者の方はこちらもチェック!

MT4やMQL4の知識がなくても大丈夫!
当サイトでは、プログラミング未経験者でも分かるEA開発の基本から、サンプルコードを使った実践的なチュートリアルまで多数ご用意しています。

ChatGPTやEAつくーるでのEAの作り方に興味がある方は是非参考にしてください。

コメント

タイトルとURLをコピーしました