forked from rosh/MQL5Book
52 lines
2 KiB
MQL5
52 lines
2 KiB
MQL5
//+------------------------------------------------------------------+
| |
//| ChartIndicatorMove.mq5 |
| |
//| Copyright 2021, MetaQuotes Ltd. |
| |
//| https://www.mql5.com |
| |
//+------------------------------------------------------------------+
| |
#property script_show_inputs
| |
| |
//+------------------------------------------------------------------+
| |
//| Move direction |
| |
//+------------------------------------------------------------------+
| |
enum DIRECTION
| |
{
| |
Up = -1,
| |
Down = +1,
| |
};
| |
| |
//+------------------------------------------------------------------+
| |
//| Inputs |
| |
//+------------------------------------------------------------------+
| |
input DIRECTION MoveDirection = Up;
| |
input bool JumpOver = true;
| |
| |
//+------------------------------------------------------------------+
| |
//| Script program start function |
| |
//+------------------------------------------------------------------+
| |
void OnStart()
| |
{
| |
const int w = ChartWindowOnDropped();
| |
if(w == 0 && MoveDirection == Up)
| |
{
| |
Alert("Can't move up from window at index 0");
| |
return;
| |
}
| |
const int n = ChartIndicatorsTotal(0, w);
| |
for(int i = 0; i < n; ++i)
| |
{
| |
const string name = ChartIndicatorName(0, w, i);
| |
const string caption = EnumToString(MoveDirection);
| |
const int button = MessageBox("Move '" + name + "' " + caption + "?",
| |
caption, MB_YESNOCANCEL);
| |
if(button == IDCANCEL) break;
| |
if(button == IDYES)
| |
{
| |
const int h = ChartIndicatorGet(0, w, name);
| |
ChartIndicatorAdd(0, w + MoveDirection * (JumpOver + 1), h);
| |
ChartIndicatorDelete(0, w, name);
| |
IndicatorRelease(h);
| |
break;
| |
}
| |
}
| |
}
| |
//+------------------------------------------------------------------+
|