← К каталогу
Исходный код · ID 4517

AutoPivot

###auto pivot2 button 1.03.mq5
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор для MetaTrader 5, отображающий на графике ценовые уровни, рассчитанные по данным предыдущих периодов. Поддерживаются дневные, недельные и месячные уровни, а также уровни поддержки и сопротивления. Индикатор работает в окне графика и не предназначен для автоматической торговли.

Пользователь может включать или отключать отображение отдельных групп уровней, настраивать цвета линий, шрифт и размер подписей, а также управлять положением подписей и линий. Дополнительно предусмотрена кнопка на графике для быстрого скрытия или показа всех построений.

Входные параметры позволяют выбрать, учитывать ли данные воскресенья, задать смещение линий и подписей, стиль линий и цвета для каждого типа уровней. Кнопка на графике имеет настраиваемые размеры, шрифт, цвета и положение.

Индикатор не содержит торговых функций и не выполняет автоматических операций; он предназначен исключительно для визуального анализа уровней на графике.

Настройки программы

НастройкаОписание
Use_Sunday_Data Учитывать ли данные воскресенья при расчёте дневных уровней.
Daily Включает или отключает отображение дневных уровней (Pivot, R1-R3, S1-S3).
Daily_SR_Levels Включает или отключает отображение дневных уровней поддержки и сопротивления (R1-R3, S1-S3).
Weekly Включает или отключает отображение недельных уровней (Pivot, WR1-WR3, WS1-WS3).
Weekly_SR_Levels Включает или отключает отображение недельных уровней поддержки и сопротивления (WR1-WR3, WS1-WS3).
Monthly Включает или отключает отображение месячных уровней (Pivot, MR1-MR3, MS1-MS3).
Monthly_SR_Levels Включает или отключает отображение месячных уровней поддержки и сопротивления (MR1-MR3, MS1-MS3).
Labels_Adjust Смещение текстовых подписей уровней по горизонтали в барах.
Lines_Move_to_Right Если включено, линии уровней продлеваются вправо от текущего бара.
Lines_Shift Величина сдвига линий вправо в барах при включённом параметре Lines_Move_to_Right.
note1 Текстовая метка-разделитель в списке настроек; не влияет на работу индикатора.
LineFont Название шрифта для текстовых подписей уровней.
FontSize Размер шрифта для текстовых подписей уровней.
myLineStyle Стиль линий уровней (например, пунктирный, сплошной).
DailyLineColors Текстовая метка-разделитель для группы цветов дневных линий; не влияет на расчёт.
PivotLine Цвет дневного центрального уровня Pivot.
R1_Line Цвет дневного уровня сопротивления R1.
R2_Line Цвет дневного уровня сопротивления R2.
R3_Line Цвет дневного уровня сопротивления R3.
S1_Line Цвет дневного уровня поддержки S1.
S2_Line Цвет дневного уровня поддержки S2.
S3_Line Цвет дневного уровня поддержки S3.
WeeklyLineColors Текстовая метка-разделитель для группы цветов недельных линий; не влияет на расчёт.
WeekPivotLine Цвет недельного центрального уровня Pivot.
WR1_Line Цвет недельного уровня сопротивления R1.
WR2_Line Цвет недельного уровня сопротивления R2.
WR3_Line Цвет недельного уровня сопротивления R3.
WS1_Line Цвет недельного уровня поддержки S1.
WS2_Line Цвет недельного уровня поддержки S2.
WS3_Line Цвет недельного уровня поддержки S3.
MonthlyLineColors Текстовая метка-разделитель для группы цветов месячных линий; не влияет на расчёт.
MonthPivotLine Цвет месячного центрального уровня Pivot.
MR1_Line Цвет месячного уровня сопротивления R1.
MR2_Line Цвет месячного уровня сопротивления R2.
MR3_Line Цвет месячного уровня сопротивления R3.
MS1_Line Цвет месячного уровня поддержки S1.
MS2_Line Цвет месячного уровня поддержки S2.
MS3_Line Цвет месячного уровня поддержки S3.
button_note1 Текстовая метка-разделитель перед группой настроек кнопки; не влияет на работу.
btn_corner Угол графика для привязки кнопки управления отображением.
btn_text Текст, отображаемый на кнопке управления отображением.
btn_Font Шрифт текста на кнопке управления отображением.
btn_FontSize Размер шрифта текста на кнопке управления отображением.
btn_text_color Цвет текста на кнопке управления отображением.
btn_background_color Цвет фона кнопки управления отображением.
btn_border_color Цвет рамки кнопки управления отображением.
button_x Горизонтальное смещение кнопки управления отображением в пикселях.
button_y Вертикальное смещение кнопки управления отображением в пикселях.
btn_Width Ширина кнопки управления отображением в пикселях.
btn_Height Высота кнопки управления отображением в пикселях.
button_note2 Текстовая метка-разделитель после группы настроек кнопки; не влияет на работу.
Получить полный код

Поиск по коду файла

#property indicator_chart_window

   extern bool             Use_Sunday_Data      = true;
   extern bool             Daily                = true;
   extern bool             Daily_SR_Levels      = true;
   extern bool             Weekly               = false;
   extern bool             Weekly_SR_Levels     = false;
   extern bool             Monthly              = false;
   extern bool             Monthly_SR_Levels    = false;
   extern int              Labels_Adjust        = 10;
   extern bool             Lines_Move_to_Right  = false;
   extern int              Lines_Shift          = 0;
extern string              note1                = "------------------------------";
extern string              LineFont             = "Arial Black";
extern int                 FontSize             = 6;
extern ENUM_LINE_STYLE     myLineStyle          = STYLE_DASH;

extern string              DailyLineColors      = "---Daily Colors-------------";
extern color               PivotLine            = clrMagenta;
extern color               R1_Line              = clrRed;
extern color               R2_Line              = clrRed;
extern color               R3_Line              = clrRed;
extern color               S1_Line              = clrGreen;
extern color               S2_Line              = clrGreen;
extern color               S3_Line              = clrGreen;

extern string              WeeklyLineColors     = "---Weekly Colors-------------";
extern color               WeekPivotLine        = clrAqua;
extern color               WR1_Line             = clrDarkOrange;
extern color               WR2_Line             = clrDarkOrange;
extern color               WR3_Line             = clrDarkOrange;
extern color               WS1_Line             = clrSteelBlue;
extern color               WS2_Line             = clrSteelBlue;
extern color               WS3_Line             = clrSteelBlue;

extern string              MonthlyLineColors    = "---Monthly Colors-------------";
extern color               MonthPivotLine       = clrAqua;
extern color               MR1_Line             = clrBlue;
extern color               MR2_Line             = clrBlue;
extern color               MR3_Line             = clrBlue;
extern color               MS1_Line             = clrSilver;
extern color               MS2_Line             = clrSilver;
extern color               MS3_Line             = clrSilver;

extern string             button_note1          = "------------------------------";
extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER; // chart btn_corner for anchoring
extern string             btn_text              = "Pivot";
extern string             btn_Font              = "Arial";
extern int                btn_FontSize          = 10;                             //btn__font size
extern color              btn_text_color        = clrWhite;
extern color              btn_background_color  = clrDimGray;
extern color              btn_border_color      = clrBlack;
extern int                button_x              = 20;                                     //btn__x
extern int                button_y              = 13;                                     //btn__y
extern int                btn_Width             = 60;                                 //btn__width
extern int                btn_Height            = 20;                                //btn__height
extern string             button_note2          = "------------------------------";
bool                      show_data             = true;
string IndicatorName, IndicatorObjPrefix;
int WorkTime=0,Periods=0;

   double YesterdayHigh;
   double YesterdayLow;
   double YesterdayClose;
   double Day_Price[][6];
   double Pivot,S1,S2,S3,R1,R2,R3;

   double WeekHigh;
   double WeekLow;
   double WeekClose;
   double Weekly_Price[][6];
   double WeekPivot,WS1,WS2,WS3,WR1,WR2,WR3;

   double MonthHigh;
   double MonthLow;
   double MonthClose;
   double Month_Price[][6];
   double MonthPivot,MS1,MS2,MS3,MR1,MR2,MR3;

   datetime endTime=0, startTime=0;
   bool     PlotFactor=false;
   bool Daily2, Daily_SR_Levels2, Weekly2, Weekly_SR_Levels2, Monthly2, Monthly_SR_Levels2;

string GenerateIndicatorName(const string target) //don't change anything here
{
   string name = target;
   int try = 2;
   while (WindowFind(name) != -1)
   {
      name = target + " #" + IntegerToString(try++);
   }
   return name;
}

class VisibilityCotroller //don't change anything here
{
   string buttonId, visibilityId;
   bool show_data, recalc;
public:
   void Init(string id, string indicatorName, string caption, int x, int y) //don't change anything here
   {
      recalc = false;
      visibilityId = indicatorName + "_visibility";
      double val;
      if (GlobalVariableGet(visibilityId, val))
         show_data = val != 0;

      buttonId = id;
      ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, 1);
      createButton(buttonId, caption, btn_Width, btn_Height, btn_Font, btn_FontSize, btn_background_color, btn_border_color, btn_text_color);
      ObjectSetInteger(0,buttonId,OBJPROP_YDISTANCE, button_y);
      ObjectSetInteger(0,buttonId,OBJPROP_XDISTANCE, button_x);

   }

   void DeInit()
   {
      ObjectDelete(ChartID(), buttonId);

        DeleteObjectsByString("Line",0);
        DeleteObjectsByString("Label",0);
   }

   bool HandleButtonClicks() //don't change anything here
   {
      if (ObjectGetInteger(0, buttonId, OBJPROP_STATE))
      {
         ObjectSetInteger(0, buttonId, OBJPROP_STATE, false);
         show_data = !show_data;
         GlobalVariableSet(visibilityId, show_data ? 1.0 : 0.0);
         recalc = true;
         return true;
      }
      return false;
   }

   bool IsRecalcNeeded() //don't change anything here
   {
      return recalc;
   }

   void ResetRecalc() //don't change anything here
   {
      recalc = false;
   }

   bool IsVisible() //don't change anything here
   {
      return show_data;
   }

private: //don't change anything here much
   void createButton(string buttonID,string buttonText,int width,int height,string font,int fontSize,color bgColor,color borderColor,color txtColor)
   {
      ObjectDelete    (0,buttonID);
      ObjectCreate    (0,buttonID,OBJ_BUTTON,0,0,0);
      ObjectSetInteger(0,buttonID,OBJPROP_COLOR,txtColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BGCOLOR,bgColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BORDER_COLOR,borderColor);
      ObjectSetInteger(0,buttonID,OBJPROP_BORDER_TYPE,BORDER_RAISED);
      ObjectSetInteger(0,buttonID,OBJPROP_XSIZE,width);
      ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,height);
      ObjectSetString (0,buttonID,OBJPROP_FONT,font);
      ObjectSetString (0,buttonID,OBJPROP_TEXT,buttonText);

Показано первые 50% кода (символов: 9735)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
973,50₽ ≈ $11.90