【MQL4定数】チャート設定の定数:Double型(ENUM_CHART_PROPERTY_DOUBLE)

【辞書】MQLリファレンス

チャート設定の定数:Double型

チャート設定の定数(Double型)は、チャート設定関数の引数として使用します。

主に、ChartSetDouble関数と ChartGetDouble関数です。

以下、関数の簡単な説明です。

  • ChartSetDouble関数:チャートの状態を設定する
  • ChartGetDouble関数:チャートの状態を取得する

 

ここで注意して欲しいのは、定数の数値が直接設定されるのではなく、定数の項目に値を設定するということです。

そのため定数の他に、別の値を設定する必要があります。

 

チャート操作用の定数には、Double型の他にも String型Integer型の3種類があります。

ここでは、Double型の情報を記載しております。

 

チャート設定の定数:Double型(ENUM_CHART_PROPERTY_DOUBLE)

定数説明
CHART_SHIFT_SIZE右端のインデントのサイズ(bar)
CHART_FIXED_POSITIONチャート固定位置(%)
CHART_FIXED_MAXチャート固定の上限
CHART_FIXED_MINチャート固定の下限
CHART_POINTS_PER_BARチャートのスケール固定(point / bar)
CHART_PRICE_MINチャートの最小値
CHART_PRICE_MAXチャートの最大値

 

チャート設定の定数:Double型の使い方

主に、ChartSetDouble関数とChartGetDouble関数で使用されます。

上記の定数を入力しましょう。

すると、その定数に対応した設定値が設定されます。

例えば、以下のように使用します。

  //ChartSetDouble関数
  //右端のインデントのサイズを10barに設定
  bool chartSetDouble = ChartSetDouble(ChartID(), CHART_SHIFT_SIZE, 10);

  //ChartGetDouble関数
  //右端のインデントのサイズを取得
  double chartGetDouble = ChartGetDouble(ChartID(), CHART_SHIFT_SIZE, 0);

 

返り値は、ChartSetDouble関数はbool型で、ChartGetDouble関数はdouble型です。

 

サンプルプログラム

以下は、チャート設定の定数(Double型)を使用したサンプルプログラムです。各定数の値を取得し、エキスパートログに出力します。

//+------------------------------------------------------------------+
//| ChartPropertyDoubleサンプル                                       |
//+------------------------------------------------------------------+
void OnStart()
{
   long chartId = ChartID();

   // CHART_SHIFT_SIZE:右端のインデントのサイズを取得
   double shiftSize = ChartGetDouble(chartId, CHART_SHIFT_SIZE, 0);
   Print("CHART_SHIFT_SIZE = ", shiftSize);

   // CHART_FIXED_POSITION:チャート固定位置を取得
   double fixedPosition = ChartGetDouble(chartId, CHART_FIXED_POSITION, 0);
   Print("CHART_FIXED_POSITION = ", fixedPosition);

   // CHART_FIXED_MAX:チャート固定の上限を取得
   double fixedMax = ChartGetDouble(chartId, CHART_FIXED_MAX, 0);
   Print("CHART_FIXED_MAX = ", fixedMax);

   // CHART_FIXED_MIN:チャート固定の下限を取得
   double fixedMin = ChartGetDouble(chartId, CHART_FIXED_MIN, 0);
   Print("CHART_FIXED_MIN = ", fixedMin);

   // CHART_POINTS_PER_BAR:スケール固定値を取得
   double pointsPerBar = ChartGetDouble(chartId, CHART_POINTS_PER_BAR, 0);
   Print("CHART_POINTS_PER_BAR = ", pointsPerBar);

   // CHART_PRICE_MIN:チャートの最小値を取得
   double priceMin = ChartGetDouble(chartId, CHART_PRICE_MIN, 0);
   Print("CHART_PRICE_MIN = ", priceMin);

   // CHART_PRICE_MAX:チャートの最大値を取得
   double priceMax = ChartGetDouble(chartId, CHART_PRICE_MAX, 0);
   Print("CHART_PRICE_MAX = ", priceMax);

   // CHART_SHIFT_SIZEを20に設定する例
   bool result = ChartSetDouble(chartId, CHART_SHIFT_SIZE, 20);
   if(result)
      Print("CHART_SHIFT_SIZEの設定に成功しました。");
   else
      Print("CHART_SHIFT_SIZEの設定に失敗しました。");
}

 

【補足】チャート設定の定数:Double型の列挙型(ENUM_CHART_PROPERTY_DOUBLE)

チャート設定の定数は、ENUM_CHART_PROPERTY_DOUBLE​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_CHART_PROPERTY_DOUBLE chartPropertyDouble = CHART_SHIFT_SIZE;

上記のようにプログラムすると、chartPropertyDouble変数に CHART_SHIFT_SIZEの数値が代入されます。