Re: 4 Time Frame and All TFs Indicators for MT5

3
//+------------------------------------------------------------------+
//| MultiTF_ADX_RSI_MACD_Panel_FULL.mq5 |
//| ПОЛНАЯ ВЕРСИЯ — все доработки сделаны (Drag & Drop) |
//+------------------------------------------------------------------+
#property copyright "Grok / xAI - Готовый индикатор"
#property version "2.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots 0

input int ADX_Period = 14;
input int RSI_Period = 14;
input int MACD_Fast = 12;
input int MACD_Slow = 26;
input int MACD_Signal = 9;

input color Color_Header = clrDodgerBlue;
input color Color_BG = clrBlack;
input color Color_Text = clrWhite;
input int Font_Size = 9;
input string Font_Name = "Arial Bold";

input bool UseAlerts = true;
input string AlertSound = "alert2.wav";

input int PanelX = 20;
input int PanelY = 20;

//---
ENUM_TIMEFRAMES Timeframes[8] = {PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1};
string TF_Names[8] = {"M5","M15","M30","H1","H4","D1","W1","MN1"};

bool Dragging = false;
int DragOffsetX = 0;
int DragOffsetY = 0;
int CurrentPanelX = 20;
int CurrentPanelY = 20;

//+------------------------------------------------------------------+
int OnInit()
{
CurrentPanelX = PanelX;
CurrentPanelY = PanelY;
DeleteAllObjects();
CreatePanel();
return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) { DeleteAllObjects(); }

int OnCalculate(...) { UpdatePanel(); if(UseAlerts) CheckMultiTFAlerts(); return(rates_total); }

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if(id == CHARTEVENT_MOUSE_MOVE && Dragging)
{
CurrentPanelX = (int)lparam - DragOffsetX;
CurrentPanelY = (int)dparam - DragOffsetY;
RedrawPanelPositions();
}
if(id == CHARTEVENT_CLICK)
{
int mx = (int)lparam, my = (int)dparam;
if(mx >= CurrentPanelX && mx <= CurrentPanelX+520 && my >= CurrentPanelY && my <= CurrentPanelY+28)
{
Dragging = true;
DragOffsetX = mx - CurrentPanelX;
DragOffsetY = my - CurrentPanelY;
}
}
if(id == CHARTEVENT_MOUSE_RELEASE) Dragging = false;
}

//--- все остальные функции (DeleteAllObjects, CreatePanel, RedrawPanelPositions, UpdatePanel, CheckMultiTFAlerts, CreateRect, CreateLabel
These users thanked the author Shavkat for the post:
Banzai