Visibility of Objects
Visibility of Objects
Visibility of Objects
The combination of object visibility flags determines chart timeframes, where the object is visible. To set/get the value of the OBJPROP_TIMEFRAMES property, you can use the ObjectSet()/ObjectGet or ObjectSetInteger()/ObjectGetInteger() functions.
| ID | Value | Description |
|---|---|---|
| OBJ_NO_PERIODS, EMPTY | -1 | The object is not drawn in all timeframes |
| OBJ_PERIOD_M1 | 0x0001 | The object is drawn in 1-minute chart |
| OBJ_PERIOD_M5 | 0x0002 | The object is drawn in 5-minute chart |
| OBJ_PERIOD_M15 | 0x0004 | The object is drawn in 15-minute chart |
| OBJ_PERIOD_M30 | 0x0008 | The object is drawn in 30-minute chart |
| OBJ_PERIOD_H1 | 0x0010 | The object is drawn in 1-hour chart |
| OBJ_PERIOD_H4 | 0x0020 | The object is drawn in 4-hour chart |
| OBJ_PERIOD_D1 | 0x0040 | The object is drawn in day charts |
| OBJ_PERIOD_W1 | 0x0080 | The object is drawn in week charts |
| OBJ_PERIOD_MN1 | 0x0100 | The object is drawn in month charts |
| OBJ_ALL_PERIODS | 0x01ff | The object is drawn in all timeframes |
Visibility flags can be combined using the symbol “|”, for example, the combination of flags OBJ_PERIOD_M15|OBJ_PERIOD_H1 means that the object will be visible on the 15-minute and hourly timeframes.
Example:
void OnStart()
{
//---
string highlevel="PreviousDayHigh";
string lowlevel="PreviousDayLow";
double prevHigh; // The previous day High
double prevLow; // The previous day Low
double highs[],lows[]; // Arrays for High and Low
//--- Reset the last error
ResetLastError();
//--- Get the last 2 High values on the daily timeframe
int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
if(highsgot>0) // If copying was successful
{
Print("High prices for the last 2 days were obtained successfully");
prevHigh=highs[0]; // The previous day High
Print("prevHigh = ",prevHigh);
if(ObjectFind(0,highlevel)<0) // Object with the name highlevel not found
{
ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // Create the Horizontal Line object
}
//--- Set value for the price level for the line highlevel
ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
//--- Set the visibility only PERIOD_M15 and PERIOD_H1
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M15|OBJ_PERIOD_H1);
}
else
{
Print("Could not get High prices over the past 2 days, Error = ",GetLastError());
}
//--- Reset the last error
ResetLastError();
//--- Get the 2 days values Low on the daily timeframe
int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
if(lowsgot>0) // If copying was successful
{
Print("Low prices for the last 2 days were obtained successfully");
prevLow=lows[0]; // The previous day Low
Print("prevLow = ",prevLow);
if(ObjectFind(0,lowlevel)<0) // Object with the name lowlevel not found
{
ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // Create the Horizontal Line object
}
//--- Set value for the price level for the line lowlevel
ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
//--- Set the visibility only PERIOD_M15 and PERIOD_H1
ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M15|OBJ_PERIOD_H1);
}
else Print("Could not get Low prices for the last 2 days, Error = ",GetLastError());
ChartRedraw(0); // redraw the chart forcibly
}See also
Last updated on