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

Golden MA MTF TT [x5]

golden ma mtf tt [x5] button.mq5
Вы автор или правообладатель?

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

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

О программе

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

Визуализация включает линии предыдущего дневного максимума/минимума, маркеры начала и конца периода, а также текстовые метки для каждого уровня (зоны покупки, продажи, разворота, предупреждения о перекупленности/перепроданности). Все объекты рисуются на графике как скрытые не selectable объекты.

Встроенная кнопка на графике позволяет переключать видимость всех отрисованных объектов одним кликом. Состояние видимости сохраняется в глобальной переменной терминала. Индикатор обрабатывает события графика через OnChartEvent для взаимодействия с кнопкой.

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

НастройкаОписание
PeriodGraphics PeriodGraphics — Таймфрейм для расчёта уровней индикатора
Price Price — Метод расчёта центральной цены (Close, Open+Close+Low+High, Median, Typical, Weighted)
StartPips StartPips — Расстояние от центральной цены до первого уровня в пунктах
InsidePips InsidePips — Шаг внутренних подуровней в пунктах
BeyondBoundaries BeyondBoundaries — Разрешает отображение внутренних уровней за пределами базовых зон
12; (HowManyHoursToTheRight) HowManyHoursToTheRight — Сдвиг горизонтальной оси вправо (в часах) для отображения линий
StartEndPeriod StartEndPeriod — Отображение вертикальных линий начала и конца периода
note1 note1 — Текстовый параметр-заметка
YesterdayHiLo YesterdayHiLo — Отображение линий предыдущего дневного максимума и минимума
YesterdayColor YesterdayColor — Цвет линий предыдущего дневного максимума/минимума
YesterdaySize YesterdaySize — Толщина линий предыдущего дневного максимума/минимума
Yesterday Yesterday — Стиль линий предыдущего дневного максимума/минимума
note2 note2 — Текстовый параметр-заметка
ShowTextLabels ShowTextLabels — Отображение текстовых меток на графике
TextSize TextSize — Размер шрифта текстовых меток
TagsRight TagsRight — Размещение текстовых меток справа от уровня
TextColor TextColor — Цвет текстовых меток
Label Shift +move right -move left (ShiftPreviousHiLabel) ShiftPreviousHiLabel — Сдвиг метки предыдущего максимума в пикселях (+ вправо, - влево)
Label Shift +move right -move left (ShiftPreviousLoLabel) ShiftPreviousLoLabel — Сдвиг метки предыдущего минимума в пикселях (+ вправо, - влево)
Label Shift +move right -move left (ShiftOtherLabels) ShiftOtherLabels — Сдвиг текстовых меток в пикселях (+ вправо, - влево)
button_note1 button_note1 — Текстовый параметр-заметка для кнопки
chart btn_corner for anchoring (btn_corner) btn_corner — Угол привязки кнопки на графике
btn_text btn_text — Текст на кнопке
btn_Font btn_Font — Шрифт текста кнопки
btn__font size (btn_FontSize) btn_FontSize — Размер шрифта кнопки
btn_text_ON_color btn_text_ON_color — Цвет текста кнопки при отображении данных
btn_text_OFF_color btn_text_OFF_color — Цвет текста кнопки при скрытых данных
btn_background_color btn_background_color — Цвет фона кнопки
btn_border_color btn_border_color — Цвет рамки кнопки
btn__x (button_x) button_x — Горизонтальная позиция кнопки от угла привязки
btn__y (button_y) button_y — Вертикальная позиция кнопки от угла привязки
btn__width (btn_Width) btn_Width — Ширина кнопки в пикселях
btn__height (btn_Height) btn_Height — Высота кнопки в пикселях
button_note2 button_note2 — Текстовый параметр-заметка для кнопки
Получить полный код

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

#property description "Оригинальная идея:  GaoShan  @   k**c*@yeah.net"
#property description " "
#property description "расширил настройки  :-))" 
#property description " "
#property description "Почта:  t*******e*@mail.ru" 

#property indicator_chart_window
#property indicator_buffers 0

enum calcPR { CO, OCLH, MEDIAN, TYPICAL, WEIGHTED };

extern ENUM_TIMEFRAMES PeriodGraphics  =  PERIOD_D1;
extern calcPR                   Price  =  TYPICAL;
extern int                  StartPips  =  20;
extern int                 InsidePips  =  1;
extern bool          BeyondBoundaries  =  false;
extern int     HowManyHoursToTheRight  =  4;  //12;
extern bool            StartEndPeriod  =  true;
extern string           note1          = "------------------------------";
extern color              ColorCenter  =  clrDarkSlateBlue,  //LightSteelBlue,
                              ColorHI  =  clrMediumBlue,
                              ColorLO  =  clrMediumVioletRed;   //Brown;
extern int                 SizeCenter  =  5,
                             SizeHiLo  =  4;
extern bool             YesterdayHiLo  =  true;
extern color           YesterdayColor  =  clrOrange;
extern int              YesterdaySize  =  1;
extern ENUM_LINE_STYLE      Yesterday  =  STYLE_DOT;
extern string           note2          = "------------------------------";
extern bool             ShowTextLabels = true;
extern int                   TextSize  =  8;
extern bool                 TagsRight  =  true;
extern color                TextColor  =  clrDimGray;
extern int        ShiftPreviousHiLabel =  -20;//Label Shift +move right -move left
extern int        ShiftPreviousLoLabel =  -20;//Label Shift +move right -move left
extern int            ShiftOtherLabels =  20;//Label Shift +move right -move left
string                          ШРИФТ  =  "Verdana";   //"Arial";

extern string             button_note1          = "------------------------------";
extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER; // chart btn_corner for anchoring
extern string             btn_text              = "Gold MA";
extern string             btn_Font              = "Arial";
extern int                btn_FontSize          = 10;                             //btn__font size
extern color              btn_text_ON_color     = clrWhite;
extern color              btn_text_OFF_color    = clrRed;
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;

double HIGH, LOW, OPEN, CLOSE, MID;
double HI1, HI2, HI3, HI4, HI5;
double LO1, LO2, LO3, LO4, LO5;    int stPIP, inPIP;
double POINT;   datetime LastBarOpenTime;  string PREF;

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;
}

string buttonId;

int OnInit()
{
      // код доступен только после оплаты
   }

void createButton(string buttonID,string buttonText,int width,int height,string font,int fontSize,color bgColor,color borderColor,color txtColor)
{
      ObjectDelete    (ChartID(),buttonID);
      ObjectCreate    (ChartID(),buttonID,OBJ_BUTTON,0,0,0);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_COLOR,txtColor);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_BGCOLOR,bgColor);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_BORDER_COLOR,borderColor);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_XSIZE,width);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_YSIZE,height);
      ObjectSetString (ChartID(),buttonID,OBJPROP_FONT,font);
      ObjectSetString (ChartID(),buttonID,OBJPROP_TEXT,buttonText);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_FONTSIZE,fontSize);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_SELECTABLE,0);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_CORNER,btn_corner);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_HIDDEN,1);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_XDISTANCE,9999);
      ObjectSetInteger(ChartID(),buttonID,OBJPROP_YDISTANCE,9999);
}

int deinit()
{
   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);

ALL_OBJ_DELETE();

	return(0);
}

void ALL_OBJ_DELETE()
{
   string name;
   for (int s=ObjectsTotal()-1; s>=0; s--) {
        name=ObjectName(s);
        if (StringSubstr(name,0,StringLen(PREF))==PREF) ObjectDelete(name); }  
}

bool NewBarTF(int period) 
{
   datetime BarOpenTime=iTime(NULL,period,0);
   if (BarOpenTime!=LastBarOpenTime) {
       LastBarOpenTime=BarOpenTime;
       return (true); } 
   else 
       return (false);
}

bool recalc = true;

void handleButtonClicks()
{
   if (ObjectGetInteger(ChartID(), buttonId, OBJPROP_STATE))
   {
      ObjectSetInteger(ChartID(), buttonId, OBJPROP_STATE, false);
      show_data = !show_data;
      GlobalVariableSet(IndicatorName + "_visibility", show_data ? 1.0 : 0.0);
      recalc = true;
      start();
   }
}

void OnChartEvent(const int id, //don't change anything here
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   handleButtonClicks();
}

int start()
{
      // код доступен только после оплаты
   }
   handleButtonClicks();
   recalc = false;

   if (NewBarTF(PeriodGraphics)) ALL_OBJ_DELETE();  //PERIOD_D1

   HIGH  = iHigh(NULL, PeriodGraphics, 1);   //PERIOD_D1
   LOW   = iLow(NULL, PeriodGraphics, 1);
   OPEN  = iOpen(NULL, PeriodGraphics, 1);
   CLOSE = iClose(NULL, PeriodGraphics, 1);

   if (Price==0) MID = NormalizeDouble((CLOSE + OPEN) / 2, Digits);
   if (Price==1) MID = NormalizeDouble((OPEN + CLOSE + LOW + HIGH) / 4, Digits);
   if (Price==2) MID = Norma

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

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

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

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

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

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

Стоимость полного кода
1 125,50₽ ≈ $13.76