PlotIndexGetInteger

この関数は、対応する指示線の対応するプロパティの値を設定します。指標プロパティは int、color、bool または char 型でなければなりません。この関数には 2 つのバージョンがあります。

プロパティの識別子を示す呼び出し

int  PlotIndexGetInteger(
  int  plot_index,        // プロットスタイルインデックス
  int  prop_id,          // プロパティ識別子
  );

プロパティの識別子と修飾子を示す呼び出し

int  PlotIndexGetInteger(
  int  plot_index,        // プロットインデックス
  int  prop_id,          // プロパティ識別子
  int  prop_modifier      // プロパティ修飾子
  )

パラメータ

plot_index

[in] グラフィックプロットのインデックス

prop_id

[in] 値は ENUM_PLOT_PROPERTY_INTEGER 列挙のいずれかです。

prop_modifier

[in]  指定されたプロパティの修飾子。修飾子は色インデックスプロパティのみで必要です。

注意事項

この関数は、適切な指標線の描画の設定を抽出するように設計されています。この関数は線の描画プロパティを別の線に複製する PlotIndexSetInteger 関数と連結して機能します。

例: 曜日に応じてローソク足を塗る指標。曜日ごとの色はプログラムで設定されます。

ローソク足は曜日に応じて塗られます。

 

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//---- ColorCandles をプロットする
#property indicator_label1 "ColorCandles"
#property indicator_type1   DRAW_COLOR_CANDLES
#property indicator_style1 STYLE_SOLID
#property indicator_width1  1
//--- 指標バッファ
double         OpenBuffer[];
double         HighBuffer[];
double         LowBuffer[];
double         CloseBuffer[];
double         ColorCandlesColors[];
color          ColorOfDay[6]={CLR_NONE,clrMediumSlateBlue,
                            clrDarkGoldenrod,clrForestGreen,clrBlueViolet,clrRed};
//+------------------------------------------------------------------+
//| カスタム指標を初期化する関数                            |
//+------------------------------------------------------------------+
void OnInit()
 {
//--- 指標バッファマッピング
  SetIndexBuffer(0,OpenBuffer,INDICATOR_DATA);
  SetIndexBuffer(1,HighBuffer,INDICATOR_DATA);
  SetIndexBuffer(2,LowBuffer,INDICATOR_DATA);
  SetIndexBuffer(3,CloseBuffer,INDICATOR_DATA);
  SetIndexBuffer(4,ColorCandlesColors,INDICATOR_COLOR_INDEX);
//--- 色バッファの色の数を設定
  PlotIndexSetInteger(0,PLOT_COLOR_INDEXES,6);
//--- 色バッファの色を設定
  for(int i=1;i<6;i++)
    PlotIndexSetInteger(0,PLOT_LINE_COLOR,i,ColorOfDay[i]);
//--- 精度を設定
  IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
  printf("We have %u colors of days",PlotIndexGetInteger(0,PLOT_COLOR_INDEXES));
//---
 }
//+------------------------------------------------------------------+
//| カスタム指標の反復関数                                   |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
              const int prev_calculated,
              const datetime &time[],
              const double &open[],
              const double &high[],
              const double &low[],
              const double &close[],
              const long &tick_volume[],
              const long &volume[],
              const int &spread[])
 {
//---
  int i;
  MqlDateTime t;
//----
  if(prev_calculated==0) i=0;
  else i=prev_calculated-1;
//----
  while(i<rates_total)
    {
     OpenBuffer[i]=open[i];
     HighBuffer[i]=high[i];
     LowBuffer[i]=low[i];
     CloseBuffer[i]=close[i];
    //--- それぞれのローソク足の色を設定
    TimeToStruct(time[i],t);
     ColorCandlesColors[i]=t.day_of_week;
    //---
     i++;
    }
//--- 次の呼び出しのために prev_calculated の値を返す
  return(rates_total);
 }
//+------------------------------------------------------------------+