【MT4】インジケーターでパラメーターを選択できるようにする方法
インジケーターのパラメーターの値部分が選択できる物と、
入力しないといけない物がありますよね?
選択できるようになってる方が、使う人にとっては便利ですよね!
しかも、変な値を入れられて正しく動作しないって問題もなくなります。
上の画像の場合、0~3を入れて欲しいんですが、
4を入れる人がいたり・・・
もちろん、0~3以外の数字が入った時は
警告を出すようにプログラムをする事も出来ますが
それよりも、0~3しか選べないのがスマートですよね
使う人もその方が良いですもんね。
って事で、今回はこのパラーメータ部分を選択できるようにする方法を紹介します。
enum 列挙体を使う!
実はそんなに難しくはないんです。
MQLには列挙体と呼ばれるものがあります。
enum eCORNER{
eLU = 0, // 左上
eRU = 1, // 右上
eLL = 2, // 左下
eRL = 3 // 右下
};
今回の場合だと、こんな風に用意します。
この変数には、この値を持ちますよって宣言ですね。
eCORNERってのが列挙体の名前です(好きな名前つけれます)
そのなかにある、eLU、eRUってのが
この列挙体にはこんな変数があって、どんな値を持ってますよって宣言になります。
列挙体の使い方は
input eCORNER IN_CORNER = eRU; // 表示位置設定
こんな感じになります。
intやstringといった型の一つを自分で作ったと思ってもらえるとわかりやすいんじゃないでしょうか?
このようにすることで
こんな感じで、値の部分が選択方式になります
どうですか?簡単でしょ?
まとめ
たったこれだけの記述で、選択式に変更する事が出来るんです
enum 列挙体
これ1つ覚えるだけで、プログラムがとってもシンプルになりますし、
使うかたの利便性も向上します
今回の場合だと、0~3以外の数字が入ってきたときの処理を書く必要もなくなるメリットもあります!
プログラムは簡潔に、かつ可読性が高い書き方をするとよいですね。
参考になれば幸いです(^^)