オブジェクトの可視性

オブジェクトの可視性フラグの組み合わせは、オブジェクトが表示されるチャートの時間軸を決定します。OBJPROP_TIMEFRAMES プロパティ値を設定または取得するには ObjectSetInteger()/ObjectGetInteger() 関数を使用します。

ID

説明

OBJ_NO_PERIODS

0

オブジェクトは全ての時間軸には描画されていません。

OBJ_PERIOD_M1

0x00000001

オブジェクトは 1 分チャートに描画されています。

OBJ_PERIOD_M2

0x00000002

オブジェクトは 2 分チャートに描画されています。

OBJ_PERIOD_M3

0x00000004

オブジェクトは 3 分チャートに描画されています。

OBJ_PERIOD_M4

0x00000008

オブジェクトは 4 分チャートに描画されています。

OBJ_PERIOD_M5

0x00000010

オブジェクトは 5 分チャートに描画されています。

OBJ_PERIOD_M6

0x00000020

オブジェクトは 6 分チャートに描画されています。

OBJ_PERIOD_M10

0x00000040

オブジェクトは 10 分チャートに描画されています。

OBJ_PERIOD_M12

0x00000080

オブジェクトは 12 分チャートに描画されています。

OBJ_PERIOD_M15

0x00000100

オブジェクトは 15 分チャートに描画されています。

OBJ_PERIOD_M20

0x00000200

オブジェクトは 20 分チャートに描画されています。

OBJ_PERIOD_M30

0x00000400

オブジェクトは 30 分チャートに描画されています。

OBJ_PERIOD_H1

0x00000800

オブジェクトは 1 時間チャートに描画されています。

OBJ_PERIOD_H2

0x00001000

オブジェクトは 2 時間チャートに描画されています。

OBJ_PERIOD_H3

0x00002000

オブジェクトは 3 時間チャートに描画されています。

OBJ_PERIOD_H4

0x00004000

オブジェクトは 4 時間チャートに描画されています。

OBJ_PERIOD_H6

0x00008000

オブジェクトは 6 時間チャートに描画されています。

OBJ_PERIOD_H8

0x00010000

オブジェクトは 8 時間チャートに描画されています。

OBJ_PERIOD_H12

0x00020000

オブジェクトは 12 時間チャートに描画されています。

OBJ_PERIOD_D1

0x00040000

オブジェクトは 1 日チャートに描画されています。

OBJ_PERIOD_W1

0x00080000

オブジェクトは 1 週間チャートに描画されています。

OBJ_PERIOD_MN1

0x00100000

オブジェクトは 1 ヶ月チャートに描画されています。

OBJ_ALL_PERIODS

0x001fffff

オブジェクトは全ての時間軸に描画されています。

可視性フラグは「 | 」シンボルを使用して組み合わせることが出来ます。例えば OBJ_PERIOD_M10|OBJ_PERIOD_H4 はオブジェクトが 10 分と4 時間時間軸で表示されることを意味します。

例:

void OnStart()
 {
//---
  string highlevel="PreviousDayHigh";
  string lowlevel="PreviousDayLow";
  double prevHigh;           // 昨日の高値
  double prevLow;           // 昨日の安値
  double highs[],lows[];     // 高安値の配列
 
//--- 最終エラ—をリセットする
  ResetLastError();
//--- 毎日の時間軸の最後の 2 つの高値を取得する
  int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
  if(highsgot>0) // 複製が成功
    {
    Print("High prices for the last 2 days were obtained successfully");
     prevHigh=highs[0]; // 昨日の高値
    Print("prevHigh = ",prevHigh);
    if(ObjectFind(0,highlevel)<0) // highlevel オブジェクトが見つからない
       {
        ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // 水平線オブジェクトを作成する
       }
    //--- highlevel 線の価格レベルの値を設定する
    ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
    //--- 可視を PERIOD_M10 及び PERIOD_H4 に設定する
    ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
    }
  else
    {
    Print("Could not get High prices over the past 2 days, Error = ",GetLastError());
    }
 
//--- 最終エラ—をリセットする
  ResetLastError();
//--- 1 日時間軸の 2 日の安値を取得する
  int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
  if(lowsgot>0) // 複製が成功
    {
    Print("Low prices for the last 2 days were obtained successfully");
     prevLow=lows[0]; // 昨日の安値
    Print("prevLow = ",prevLow);
    if(ObjectFind(0,lowlevel)<0) // lowlevel オブジェクトが見つからない
       {
        ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // 水平線オブジェクトを作成する
       }
    //--- lowlevel 線の価格レベルの値を設定する
    ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
    //--- 可視を PERIOD_M10 及び PERIOD_H4 に設定する
    ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
    }
  else Print("Could not get Low prices for the last 2 days, Error = ",GetLastError());
 
  ChartRedraw(0); // チャートの再描画を強制する
 }

参照

PeriodSeconds期間チャート時間軸日付と時刻