MQLに慣れるとソースコードが徐々に複雑になっていきます。そこで誰もがぶつかる壁が『ソースコード長すぎて見づらい問題』です。
プログラムの作成中、あーでもないこーでもないと唸っていると
「パラメーターって今どうしてたっけ?」
「この関数ってどういう計算になってたっけ?」
など、作ったコードを見直すことは日常茶飯事で、その都度マウスホイールをカリカリカリカリしながらエディタ内を行ったり来たりするわけです。
長いソースコードは『プロジェクト』で分割しよう
ソースコードの量が多いプログラムの管理をわかりやすくする方法として、『プロジェクト』を作成する方式があります。これはロジック、共通の関数、ライブラリコード、設定ファイルなどを用途別に分けて作成し、コードの修正を容易にする方法です。
複数のスタッフでインジケーターを作る場合などは、プロジェクトで作成しないと現場が混乱しますし、あとからの修正もプロジェクトでないと非常に困難です。
しかしなぜかmq4ファイルの場合、プロジェクト方式でないものをよく見かけますが、それはプロジェクトにする必要がない小さなプログラムであったり、初めて触るプログラミング言語がMQLという独学プログラマーさんの場合、プロジェクトという概念を知らないといったことが理由です。
一定のサイズ以上のインジケーターやEAとなると、プロジェクトを使わないと制作が非常にややこしいので、本格的にインジケーターを作るなら絶対に理解しなければいけないところですね。
プロジェクト化の進め方
今回はプロジェクトの説明に、例として『FX_DE_MOUKETAI』というファイルをプロジェクト化する流れですすめていきます。
まず、ほかのプログラムと見分けがつきやすくしたいので『Experts』フォルダの直下にファイルと同名の『FX_DE_MOUKETAI』フォルダ作って、そのフォルダ内に『FX_DE_MOUKETAI』ファイルを入れておきます。
そして『FX_DE_MOUKETAI』ファイルを右クリックして『ソースから新規プロジェクトを作成』を選択します。
すると『プロジェクト』タブに『FX_DE_MOUKETAI.mqproj』が作成されました。
ここで『プラットフォーム』について、僕は今MT4のプログラムを作成しているので『Meta Trader 4』へ変更しておきます。
次に『Sources』内の『FX_DE_MOUKETAI.mq4』ファイルを右クリックし、『新規ファイル』を選択し、作成されたファイルにここでは仮に『Parameters』と名前を付けます。
この新たにできたファイルに元のソースコードを分けていくわけですが、今回はパラメーターの部分をカット&ペーストしてみます。
これで元のソースコードからパラメータを分けることができました!
もちろん他の項目も必要に応じて分けていくことができます。
分け方の一例紹介
プロジェクトの分け方は人によりますが、一例としては・・
『Parameters』・・・パラメータ部分を置いておく
『Functions』・・・作成した関数を置いておく
『OnInit』、
『OnDeinit』、
『OnTick』など、そのプログラム毎にコードを書いた箇所がある項目を分けてゆく
もともとの『FX_DE_MOUKETAI.mq4』ファイルは最終的にこれくらいになります↓。
これで「関数がみたいなぁ」「OnTickの中身がみたいなぁ」といった時にすぐに見に行くことができて、作業効率が向上します。