ENUM_CHART_PROPERTY_DOUBLEとは
ENUM_CHART_PROPERTY_DOUBLEとは、MQL5においてチャートの特定のプロパティ(属性や設定項目)をdouble型で扱うための識別子の集合です。これらのプロパティは、チャートの表示や動作を細かく制御するために使用されます。プロパティの値を設定するにはChartSetDouble関数を使用し、現在の値を取得するにはChartGetDouble関数を使用します。
ENUM_CHART_PROPERTY_DOUBLEで定める識別子は以下の通りです。
CHART_SHIFT_SIZE
CHART_SHIFT_SIZEは、右境界線からのゼロバーインデントのサイズを百分率で表すプロパティです。このプロパティは、チャートの右端から最新のバーまでの距離を制御します。値は10%から50%の範囲で設定できます。
【プロパティ型】 double(10〜50 パーセント)
CHART_SHIFT_SIZEを使ったサンプルコード
//+-----------------------------------------------------------------+
//| 右境界線からのゼロバーのシフトサイズを取得する |
//| (10% から 50%) |
//+-----------------------------------------------------------------+
double ChartShiftSizeGet(const long chart_ID=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_SHIFT_SIZE,0,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
//+-----------------------------------------------------------------------------+
//| 右境界線からのゼロバーのシフトサイズを取得する |
//| (10% から50%) |
//| シフトモードを有効にするには、CHART_SHIFT プロパティ値を true に設定する必要がある |
//+-----------------------------------------------------------------------------+
bool ChartShiftSizeSet(const double value,const long chart_ID=0)
{
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- 実行成功
return(true);
}
【文法解説】
- ChartShiftSizeGet関数: 指定されたチャートIDの右境界線からのゼロバーインデントのサイズを取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- ChartShiftSizeSet関数: 指定されたチャートIDの右境界線からのゼロバーインデントのサイズを設定します。設定値はdouble型で、10%から50%の範囲で指定します。ChartSetDouble関数でプロパティ値を設定し、失敗した場合はエラーメッセージをエキスパート操作ログに出力します。成功した場合はtrueを返します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_FIXED_POSITION
CHART_FIXED_POSITIONは、左の境界からのチャートの固定位置をパーセント値で表すプロパティです。チャートの固定位置は、水平時間軸上の小さな灰色の三角形でマークされます。
このプロパティは、ティック着信時のチャート右への自動スクロールが無効になっている場合にのみ表示されます(CHART_AUTOSCROLLプロパティを参照)。固定位置にあるバーは、ズームインやズームアウトしても移動しません。
【プロパティ型】
double
CHART_FIXED_POSITIONを使ったサンプルコード
//+----------------------------------------------------------------------------------------+
//| 百分率で表された、左の境界からのチャートの固定位置を取得する |
//+----------------------------------------------------------------------------------------+
double ChartFixedPositionGet(const long chart_ID=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_POSITION,0,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
//+-----------------------------------------------------------------------------------------+
//| 百分率で表された、左の境界からのチャートの固定位置を取得する |
//| チャートの固定位置をみるには CHART_AUTOSCROLL プロパティ値 |
//| を false にするのが必要 |
//+-----------------------------------------------------------------------------------------+
bool ChartFixedPositionSet(const double value,const long chart_ID=0)
{
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_POSITION,value))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- 実行成功
return(true);
}
【文法解説】
- ChartFixedPositionGet関数: 指定されたチャートIDの左の境界からのチャートの固定位置を取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- ChartFixedPositionSet関数: 指定されたチャートIDの左の境界からのチャートの固定位置を設定します。設定値はdouble型で、パーセント値を指定します。ChartSetDouble関数でプロパティ値を設定し、失敗した場合はエラーメッセージをエキスパート操作ログに出力します。成功した場合はtrueを返します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_FIXED_MAX
CHART_FIXED_MAXは、固定されたチャートの最大値を設定するためのプロパティです。このプロパティは、チャートのY軸(価格軸)における最大値を固定する際に使用します。固定することで、チャートがスクロールされたり、ズームイン・ズームアウトされたりしても最大値が変わらないようにします。
この後出てくるCHART_PRICE_MAXはチャートの実際のデータに基づく最大値であり、動的に変わる値です。一方、CHART_FIXED_MAXはユーザーが設定する固定値であり、チャートの表示範囲を一定に保つために使われます。
【プロパティ型】
double
CHART_FIXED_MAXを使ったサンプルコード
//+------------------------------------------------------------------+
//| チャートの固定された最大限を取得する |
//+------------------------------------------------------------------+
double ChartFixedMaxGet(const long chart_ID=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_MAX,0,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
//+------------------------------------------------------------------+
//| チャートの固定された最大限を設定する |
//| プロパティ値をかえるには、CHART_SCALEFIX プロパティ |
//| 値を予め true にすることが必要 |
//+------------------------------------------------------------------+
bool ChartFixedMaxSet(const double value,const long chart_ID=0)
{
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_MAX,value))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- 実行成功
return(true);
}
【文法解説】
- ChartFixedMaxGet関数: 指定されたチャートIDの固定された最大値を取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- ChartFixedMaxSet関数: 指定されたチャートIDの固定された最大値を設定します。設定値はdouble型で、チャートのY軸(価格軸)の最大値を固定します。ChartSetDouble関数でプロパティ値を設定し、失敗した場合はエラーメッセージをエキスパート操作ログに出力します。成功した場合はtrueを返します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_FIXED_MIN
CHART_FIXED_MINは、固定されたチャートの最小値を設定するためのプロパティです。このプロパティは、チャートのY軸(価格軸)における最小値を固定する際に使用します。固定することで、チャートがスクロールされたり、ズームイン・ズームアウトされたりしても最小値が変わらないようにします。
※一方で、この後出てくるCHART_PRICE_MINはチャートの実際のデータに基づく最小値であり、動的に変わる値です。
【プロパティ型】
double
CHART_FIXED_MINを使ったサンプルコード
//+------------------------------------------------------------------+
//| チャートの固定された最大限を取得 |
//+------------------------------------------------------------------+
double ChartFixedMinGet(const long chart_ID=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_FIXED_MIN,0,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
//+------------------------------------------------------------------+
//| チャートの固定された最大限を設定する |
//| プロパティ値をかえるには、CHART_SCALEFIX プロパティ |
//| 値を予め true にすることが必要 |
//+------------------------------------------------------------------+
bool ChartFixedMinSet(const double value,const long chart_ID=0)
{
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_FIXED_MIN,value))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- 実行成功
return(true);
}
【文法解説】
- ChartFixedMinGet関数: 指定されたチャートIDの固定された最小値を取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- ChartFixedMinSet関数: 指定されたチャートIDの固定された最小値を設定します。設定値はdouble型で、チャートのY軸(価格軸)の最小値を固定します。ChartSetDouble関数でプロパティ値を設定し、失敗した場合はエラーメッセージをエキスパート操作ログに出力します。成功した場合はtrueを返します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_POINTS_PER_BAR
CHART_POINTS_PER_BARは、チャートのスケール、すなわちバーあたりのポイント単位を設定するためのプロパティです。このプロパティを使用することで、チャート上で1バーあたりのポイント数を制御することができます。
※ポイントとは、最小の価格変動単位を指します。例えば、ドル円(USD/JPY)では、1ポイントは通常0.001円です。
CHART_POINTS_PER_BARを設定することで、チャートの価格スケールが決まります。大きな単位(例えば100ポイント)を設定すると、チャートはより広範囲の価格変動をカバーし、細かな動きを捉えにくくなります。一方、小さな単位(例えば10ポイント)を設定すると、チャートはより詳細な価格変動を表示し、細かな動きも捉えやすくなります。
この設定は、トレーダーがチャート上でどの程度の詳細さを求めるかによって調整されます。
これにより、チャートの表示スケールを調整し、視覚的な分析を容易にします。
【プロパティ型】 double
CHART_POINTS_PER_BARを使ったサンプルコード
//+------------------------------------------------------------------+
//| ポイント単位のバーあたりのスケールを取得する |
//+------------------------------------------------------------------+
double ChartPointsPerBarGet(const long chart_ID=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_POINTS_PER_BAR,0,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
//+----------------------------------------------------------------------+
//| チャートスケールを設定する(バーあたりのポイント単位) |
//| このプロパティの値の変化を見るには、 |
//| CHART_SCALE_PT_PER_BAR プロパティを予め true にすることが必要 |
//+----------------------------------------------------------------------+
bool ChartPointsPerBarSet(const double value,const long chart_ID=0)
{
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を設定する
if(!ChartSetDouble(chart_ID,CHART_POINTS_PER_BAR,value))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
return(false);
}
//--- 実行成功
return(true);
}
【文法解説】
- ChartPointsPerBarGet関数: 指定されたチャートIDのバーあたりのポイント単位のスケールを取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- ChartPointsPerBarSet関数: 指定されたチャートIDのバーあたりのポイント単位のスケールを設定します。設定値はdouble型で、チャート上の1バーが表すポイント数を指定します。ChartSetDouble関数でプロパティ値を設定し、失敗した場合はエラーメッセージをエキスパート操作ログに出力します。成功した場合はtrueを返します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_PRICE_MIN
CHART_PRICE_MINは、チャートの最小値を取得するためのプロパティです。このプロパティは読み取り専用(read only)であり、指定されたサブウィンドウにおけるチャートの最小価格を返します。チャートの価格軸における最低値を確認する際に使用されます。
一方、CHART_FIXED_MINはユーザーが設定する固定値であり、チャートの表示範囲を一定に保つために使われます。
【プロパティ型】
double r/o(修飾子 – サブウィンドウ番号)
CHART_PRICE_MINを使ったサンプルコード
//+------------------------------------------------------------------+
//| チャートの最小値を取得する |
//+------------------------------------------------------------------+
double ChartPriceMinGet(const long chart_ID=0, const int sub_window=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_PRICE_MIN,sub_window,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
【文法解説】
- ChartPriceMinGet関数: 指定されたチャートIDとサブウィンドウにおけるチャートの最小値を取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。
CHART_PRICE_MAX
CHART_PRICE_MAXは、チャートの最大値を取得するためのプロパティです。このプロパティは読み取り専用(read only)であり、指定されたサブウィンドウにおけるチャートの最大価格を返します。チャートの価格軸における最高値を確認する際に使用されます。
一方、CHART_FIXED_MAXはユーザーが設定する固定値であり、チャートの表示範囲を一定に保つために使われます。
【プロパティ型】
double r/o(修飾子 – サブウィンドウ番号)
CHART_PRICE_MAXを使ったサンプルコード
//+------------------------------------------------------------------+
//| チャートの最大値を取得する |
//+------------------------------------------------------------------+
double ChartPriceMaxGet(const long chart_ID=0, const int sub_window=0)
{
//--- 結果取得のために変数を準備する
double result=EMPTY_VALUE;
//--- エラー値をリセットする
ResetLastError();
//--- プロパティ値を受け取る
if(!ChartGetDouble(chart_ID,CHART_PRICE_MAX,sub_window,result))
{
//--- エキスパート操作ログでエラーメッセージを表示する
Print(__FUNCTION__+", Error Code = ",GetLastError());
}
//--- チャートプロパティの値を返す
return(result);
}
【文法解説】
- ChartPriceMaxGet関数: 指定されたチャートIDとサブウィンドウにおけるチャートの最大値を取得します。初期値を保持するための変数resultを使用し、ChartGetDouble関数でプロパティ値を取得します。取得に失敗した場合、エラーメッセージをエキスパート操作ログに出力します。
- Print関数: メッセージをエキスパートログに出力します。このサンプルでは、関数の実行結果やエラーメッセージを表示するために使用されます。
- __FUNCTION__: 現在の関数名を文字列として返します。エラーメッセージを出力する際に、どの関数でエラーが発生したかを明示するために使用されます。
- GetLastError関数: 最後に発生したエラーコードを取得します。関数の実行結果がfalseを返した場合に、エラーの詳細を確認するために使用します。
- ResetLastError関数: エラーコードをリセットします。関数の実行前に呼び出すことで、以前のエラーコードが残っていることによる誤解を防ぎます。
- EMPTY_VALUE: 初期値として使用される特別な値です。この値は、プロパティの取得が成功したかどうかを判定するために使用されます。取得が成功した場合、この値はChartGetDouble関数によって更新されます。