【無料】MQL4用情報パネル生成ソースコード配布

こういうやつのソースどうぞ。

生成パネルのサンプル

ごあいさつ

おはようございますこんにちはこんばんは、へもです。

情報パネルを生成するスクリプトを配布します。
自作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はここで売ってます。

覗いて見てねぇっ!

いいなと思ったら応援しよう!