forked from airat77786/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;
| |||
}
| |||
}
| |||
}
| |||
//+------------------------------------------------------------------+
|