forked from rosh/MQL5Book
49 lines
2.5 KiB
MQL5
49 lines
2.5 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| ObjectRays.mq5 |
| |||
//| Copyright 2021, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//| |
| |||
//| The script creates a channel with right ray tirned ON. |
| |||
//+------------------------------------------------------------------+
| |||
#include "ObjectPrefix.mqh"
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Create and setup a single channel object |
| |||
//+------------------------------------------------------------------+
| |||
void SetupChannel(const int length, const double deviation = 1.0,
| |||
const bool right = false, const bool left = false,
| |||
const color clr = clrRed)
| |||
{
| |||
// create and setup a stddev channel
| |||
const string name = ObjNamePrefix + "Channel"
| |||
+ (right ? "R" : "") + (left ? "L" : "");
| |||
// NB: 0-th binding point must have time less than 1-st binding point,
| |||
// otherwise the channel will collapse to a single point
| |||
ObjectCreate(0, name, OBJ_STDDEVCHANNEL, 0, iTime(NULL, 0, length), 0);
| |||
ObjectSetInteger(0, name, OBJPROP_TIME, 1, iTime(NULL, 0, 0));
| |||
// deviation
| |||
ObjectSetDouble(0, name, OBJPROP_DEVIATION, deviation);
| |||
// color and description
| |||
ObjectSetInteger(0, name, OBJPROP_COLOR, clr);
| |||
ObjectSetString(0, name, OBJPROP_TEXT, StringFormat("%2.1", deviation)
| |||
+ ((!right && !left) ? " NO RAYS" : "")
| |||
+ (right ? " RIGHT RAY" : "") + (left ? " LEFT RAY" : ""));
| |||
// ray properties go here
| |||
ObjectSetInteger(0, name, OBJPROP_RAY_RIGHT, right);
| |||
ObjectSetInteger(0, name, OBJPROP_RAY_LEFT, left);
| |||
// highlight new object by selection (also it allows for easy deletion by user)
| |||
ObjectSetInteger(0, name, OBJPROP_SELECTABLE, true);
| |||
ObjectSetInteger(0, name, OBJPROP_SELECTED, true);
| |||
}
| |||
| |||
//+------------------------------------------------------------------+
| |||
//| Script program start function |
| |||
//+------------------------------------------------------------------+
| |||
void OnStart()
| |||
{
| |||
// create 3 channels with different ray settings
| |||
SetupChannel(24, 1.0, true);
| |||
SetupChannel(48, 2.0, false, true, clrBlue);
| |||
SetupChannel(36, 3.0, false, false, clrGreen);
| |||
}
| |||
//+------------------------------------------------------------------+
|