【無料】MQL4用情報パネル生成ソースコード配布
こういうやつのソースどうぞ。
![](https://assets.st-note.com/img/1728571866-Q3Ab018IJNVqlc6Xi5tnEwsH.jpg)
ごあいさつ
おはようございますこんにちはこんばんは、へもです。
情報パネルを生成するスクリプトを配布します。
自作EAに搭載するために書きましたが、ソース見たいとのお声が
結構ありましたので、mqh化しました。
完全無料です。
ご利用、改変、改造、無償での譲渡、組み込んでの販売などご自由にどうぞ。
※readme.txtだけはちゃんと読んでね。
皆さんのEAに少しでも華を添えれたら嬉しく思います。
また、もっとカッコいいパネルに仕上げてもらっても喜びます。
ぜひ、カスタマイズされた際は見せてくださいねっ!!
ポイント①
角丸のシェイプが作れないので、「OBJ_RECTANGLE_LABEL」じゃなくて、「OBJ_EDIT」を使用しています。
そのままだと、入力欄のだから触れちゃうので、以下の記述を追加して、オブジェクトを触れない&変更できない様にしてます。
ObjectSet(hp_prefix + "_XXXXX", OBJPROP_READONLY, true);
ObjectSet(hp_prefix + "_XXXXX", OBJPROP_SELECTABLE, false);
ObjectSet(hp_prefix + "_XXXXX", OBJPROP_HIDDEN, true);
デザイン的な制約を自分的にクリアしたくての工夫です。
ポイント②
ナンバーフォーマットは関数を文字列で返却するようにして、そのままオブジェクトに突っ込めるようにしてます。
浮動小数点の問題もあるし、結構考えました。
関数化してるんで、カスタマイズして返却型変えたりすると、別のとこでも使い所あるかもです。
// ナンバーフォーマット(num = フォーマットする数値)
string NumberFormat(double num) {
// numが0の場合の処理
if (num == 0) {
return "0";
}
// 数値が3桁以下の場合
if (num >= -999 && num <= 999) {
return (string)num;
}
string return_string = "";
bool is_negative = (num < 0); // 負の数かどうかをチェック
if (is_negative) {
num = -num; // 絶対値を使用
}
// 整数部分と小数部分を分ける
string num_string = DoubleToString(num, 6); // 小数点以下6桁までフォーマット
string parts[];
StringSplit(num_string, '.', parts); // 「.」で分割
// 整数部分をフォーマット
int integer_part = (int)parts[0]; // 整数部分を取得
int count = 0;
while (integer_part > 0) {
// 3桁ごとにカンマを入れる
if (count > 0 && count % 3 == 0) {
return_string = "," + return_string;
}
return_string = IntegerToString(integer_part % 10) + return_string; // 一桁を追加
integer_part /= 10; // 次の桁へ
count++;
}
// 負の数の場合は符号を追加
if (is_negative) {
return_string = "-" + return_string;
}
// 小数部分を追加
if (ArraySize(parts) > 1) {
if ((int)parts[1] > 0) {
return_string += "." + parts[1]; // 小数部分を追加
}
}
return return_string;
}
それでは、MQLパーリー楽しんでくださーい!!
アンケートやリポストなど、たくさんご協力いただきました。
ほんと、いつもありがとうございます!
フォローいただけると嬉ションっす。(小声)
へものEAはここで売ってます。
覗いて見てねぇっ!