ChartGetInteger 関数 の第 2 パラメーター (prop_id) に CHART_WIDTH_IN_PIXELS
および CHART_HEIGHT_IN_PIXELS
を指定することで、指定したチャートの幅・高さを取得することができます。
取得されるサイズは、チャートの描画領域のみのサイズです(軸の価格表示部分などは含まれません)。
ChartGetInteger()
には次のような 2 つのバージョンがあります。
2 つ目のバージョンを使うと、戻り値で関数の実行に成功したかどうかを調べることができます。
long ChartGetInteger(
long chart_id, // 対象のチャート(0 はカレントチャート)
int prop_id, // 取得したいプロパティの ID
int sub_window=0 // サブウィンドウ番号(0 はメインチャート)
)
bool ChartGetInteger(
long chart_id, // 対象のチャート(0 はカレントチャート)
int prop_id, // 取得したいプロパティの ID
int sub_window, // サブウィンドウ番号(0 はメインチャート)
long& long_var // 取得結果の格納先
)
インジケーター用のサブウィンドウのサイズを調べたい場合は、第 3 パラメーター sub_window
に 1, 2, 3 のような数値を指定します(1 がひとつめのサブチャートです)。
void OnStart() {
long width = ChartGetInteger(0, CHART_WIDTH_IN_PIXELS);
long height = ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS);
MessageBox(StringFormat("width=%d, height=%d", width, height));
}
下記はエラー処理なども行う例です(MT4用)。
#property strict
#include <stdlib.mqh> // ErrorDescription
/**
* 指定したチャートのメインチャートウィンドウの幅(ピクセル)を取得します。
* 取得に失敗した場合は -1 を返します。
*/
int GetChartWidthInPixels(const long chartId = 0) {
long result = -1;
if (!ChartGetInteger(chartId, CHART_WIDTH_IN_PIXELS, 0, result)) {
string err = ErrorDescription(GetLastError());
PrintFormat("ERROR in %s: %s", __FUNCTION__, err);
}
return (int) result;
}
/**
* 指定したチャートのメインチャートウィンドウの高さ(ピクセル)を取得します。
* 取得に失敗した場合は -1 を返します。
*/
int GetChartHeightInPixels(const long chartId = 0) {
long result = -1;
if (!ChartGetInteger(chartId, CHART_HEIGHT_IN_PIXELS, 0, result)) {
string err = ErrorDescription(GetLastError());
PrintFormat("ERROR in %s: %s", __FUNCTION__, err);
}
return (int) result;
}
void OnStart() {
int width = GetChartWidthInPixels();
int height = GetChartHeightInPixels();
MessageBox(StringFormat("width=%d, height=%d", width, height));
}
関連記事
- MQL で Hello World
- MQLマクロ: MQL4 と MQL5 のどちらでコンパイルされているか調べる
- MetaTrader/MQL: チャートのタイムフレーム(H1 や M15)を取得する (Period, PeriodSeconds)
- MetaTrader/MQL: チャート上に矩形を描画する (OBJ_RECTANGLE, CChartObjectRectangle)
- MetaTrader/MQL: チャート上にラベルを描画する (OBJ_LABEL, CChartObjectLabel)
- MetaTrader/MQL: 組み込み関数の実行に失敗したときにエラー情報を表示する (GetLastError, ErrorDescription)
- MetaTrader/MQL: MQL での色の表現方法 (color)