EAに限らず、プログラミングを学び始めたころ私が早く知りたかったものの一つに全体構造があります。
MQL4 サンプルコードと検索すると、関数などの書き方はいくらでも出てきますが、全体の流れのようなものを解説しているものは少ないと感じます。
全体の構造を考えてみる
プログラムを使わないFXトレードの流れをもとにプログラムを構築してみましょう。
基本的には、エントリーと決済の2つですね。
「じゃあエントリーするための記述をググればいいんすね!」とはいきません。
仮に、移動平均線が上を向いたらエントリーという記述をしたとします。
このプログラムを走らせるとどんなことが起こるでしょう。
移動平均線が上を向いている限り、エントリーし続ける
という動作を行います。あっという間に証拠金なくなりますね。
プログラムはあなたに忠実です。書かれたこと以外は実行しません。逆にあなたが書いたことは必ず実行してくれます。
以上のことからエントリーを行う前にエントリーできる状態かをEAに判断させなくてはいけません。
プログラムの原則を思い出してみよう
少しややこしくなってきましたね。そんな時は、あらゆるプログラムに共通する原則に立ち返りましょう。
プログラムの三原則は
- 順次
- 分岐
- 繰り返し
となります。
一つ目の順次から全体の構造を考えてみましょう。
順次の考えをもとに組立てた全体構造は
- エントリー有無の確認
- 決済ロジック
- エントリーロジック
この流れになります。
エントリーが先じゃないの?と思われるでしょうが、プログラムの三原則のうちのひとつに分岐があります。
分岐の基本的な考え方は、
「もし〇〇なら◇◇する」
です。
先ほどの全体構造を分岐の考えを取り入れて考え直していきましょう。
- エントリーの有無を確認する
- もしエントリーしていたら決済ロジックに進む
- もしエントリーしていなければエントリーロジックに進む
となります。