ブログタイトルを「FX自動売買システム開発部」から「autoFX」に変更しました!

ENUM(列挙型)を利用したEAパラメータ設定方法

ENUMはEAパラメータとの相性抜群

#property strictとコメント文の意外な関係で触れましたが、#property strictを使うと、パラメータ名の箇所に変数名ではなくコメント文を表示できるようになります。

これには続きがありまして、実はENUM(列挙型)との併用が最強に便利なのです。

自作EAのパラメータを設計する際、何らかの手法をパラメータで変更できるようにしたいケースがあります。

代表的な例をあげるなら、移動平均の種類でしょうか。単純移動平均とか指数平滑移動平均とかです。

私は今まで、この手の種類を変更する類のパラメータには、1とか2とかを設定できるようにしていました。

ただ、この方法の場合、この数字が何を意味しているのか分かりにくい欠点がありました。「このパラメータが1だと、どうなるんだっけ?」ということが時々ありました。

そのため、別途パラメータの文字列等で補足説明する必要がありました。これが不便で分かりにくいなぁと常々感じておりました。

ENUMを使えば、この悩みを解決してくれるんです!例えば、こんな風にね。

ENUMを利用したEAパラメータ設定例1

ENUMを利用したEAパラメータ設定例2

これなら、いちいち文字列での補足説明は不要になります!素晴らしい!

上記画像のように表示するためには、以下のようにコーディングします。

#property strict
// 中略
enum ENUM_ORIGINAL_METHOD{
  Type1 = 1, // A手法
  Type2 = 2, // B手法
  Type3 = 3  // C手法
};
extern ENUM_MA_METHOD       MA_Type       = MODE_SMA; // 移動平均の種類
extern ENUM_ORIGINAL_METHOD Original_Type = Type3; // オリジナル手法の種類

なお、この記事はMT4でEA自作しちゃお~さんのinput変数を参考にして作成しました。

このサイト、欠かすことのできない存在になっておりますので、リンク集に追加することにしました。

MQL4プログラミングの最新記事8件

>完全放ったらかしEA 「AutoEndlessCatchRange」

完全放ったらかしEA 「AutoEndlessCatchRange」

「本業が忙しい!」「でも資産運用したい!」そんなあなたに最適なEAです。兼業トレーダーの方はチャートを毎日みて分析してトレードする時間はなかなか確保できないものです。トレードは本EAに任せて、本業やプライベートの時間をもっと増やしませんか?元々は自分自身のために開発したEAですので、手抜き無しのガチものです。

CTR IMG