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

zigzag indicator by chatgpt bt.mq4

Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 4 объединяет два аналитических инструмента: ZigZag и Awesome Oscillator. ZigZag отображает ключевые точки разворота цены на графике, а Awesome Oscillator представляет собой гистограмму, рассчитанную на основе двух скользящих средних. Оба инструмента отрисовываются в основном окне графика с использованием четырёх буферов данных.

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

Параметры настройки включают параметры расчёта ZigZag и Awesome Oscillator, а также полный набор настроек внешнего вида и позиционирования кнопки управления.

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

НастройкаОписание
ExtDepth Глубина ZigZag — Глубина ZigZag — минимальное количество баров между значимыми максимумами и минимумами.
ExtDeviation Отклонение ZigZag — Допустимое отклонение цены в пунктах для формирования точки ZigZag.
ExtBackstep Обратный шаг ZigZag — Обратный шаг для расчёта ZigZag, определяет количество баров, используемых для проверки предыдущих экстремумов.
nBars Количество баров — Количество баров, используемых для расчёта ZigZag. При значении 0 используются все доступные бары.
fast_ma_period Период быстрой скользящей — Период быстрой скользящей средней для расчёта Awesome Oscillator.
slow_ma_period Период медленной скользящей — Период медленной скользящей средней для расчёта Awesome Oscillator.
button_note1_ Разделитель кнопки 1 — Текстовый разделитель перед группой настроек кнопки.
What window to put the button on. If <0, the button will use the same sub-window as the indicator. (btn_Subwindow) Подокно кнопки — Подокно, в котором размещается кнопка. Если значение меньше нуля, кнопка использует то же подокно, что и индикатор.
button corner on chart for anchoring (btn_corner) Угол привязки кнопки — Угол графика, в котором привязывается кнопка.
a button name (btn_text) Текст кнопки — Текст, отображаемый на кнопке.
button font name (btn_Font) Шрифт кнопки — Шрифт, используемый для текста на кнопке.
button font size (btn_FontSize) Размер шрифта кнопки — Размер шрифта текста на кнопке.
ON color when the button is turned on (btn_text_ON_color) Цвет текста (вкл) — Цвет текста кнопки при включённом состоянии индикатора.
OFF color when the button is turned off (btn_text_OFF_color) Цвет текста (выкл) — Цвет текста кнопки при выключенном состоянии индикатора.
background color of the button (btn_background_color) Фон кнопки — Цвет фона кнопки.
border color the button (btn_border_color) Рамка кнопки — Цвет рамки кнопки.
x coordinate of the button (button_x) Координата X кнопки — Горизонтальная координата кнопки на графике.
y coordinate of the button (button_y) Координата Y кнопки — Вертикальная координата кнопки на графике.
button width (btn_Width) Ширина кнопки — Ширина кнопки в пикселях.
button height (btn_Height) Высота кнопки — Высота кнопки в пикселях.
Unique ID for each button (UniqueButtonID) Уникальный ID кнопки — Уникальный идентификатор кнопки для различения нескольких экземпляров индикатора на одном графике.
button_note2 Разделитель кнопки 2 — Текстовый разделитель после группы настроек кнопки.
Получить полный код

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

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 clrRed
#property indicator_color2 clrBlue

#property indicator_color3 clrLime
#property indicator_color4 clrRed

extern int ExtDepth = 12;
extern int ExtDeviation = 5;
extern int ExtBackstep = 3;
extern int nBars = 150;
extern int fast_ma_period = 5;
extern int slow_ma_period = 34;

extern string             button_note1_         = "------------------------------";
extern int                btn_Subwindow         = 0;                               // What window to put the button on.  If <0, the button will use the same sub-window as the indicator.
extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER;               // button corner on chart for anchoring
extern string             btn_text              = "ZigZag AO";                     // a button name
extern string             btn_Font              = "Arial";                         // button font name
extern int                btn_FontSize          = 9;                               // button font size               
extern color              btn_text_ON_color     = clrLime;                         // ON color when the button is turned on
extern color              btn_text_OFF_color    = clrRed;                          // OFF color when the button is turned off
extern color              btn_background_color  = clrDimGray;                      // background color of the button
extern color              btn_border_color      = clrBlack;                        // border color the button
extern int                button_x              = 20;                              // x coordinate of the button     
extern int                button_y              = 25;                              // y coordinate of the button     
extern int                btn_Width             = 80;                              // button width
extern int                btn_Height            = 20;                              // button height
extern string             UniqueButtonID        = "ZigZagAO";                      // Unique ID for each button        
extern string             button_note2          = "------------------------------";
bool show_data, recalc=false;
string IndicatorObjPrefix, buttonId;

double ExtMapBuffer[], ExtMapBuffer2[], fast_ma[], slow_ma[], ao[];

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

void createButton(string buttonID,string buttonText,int width2,int height,string font,int fontSize,color bgColor,color borderColor,color txtColor)
{
      ObjectDelete    (0,buttonID);
      ObjectCreate    (0,buttonID,OBJ_BUTTON,btn_Subwindow,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,width2);
      ObjectSetInteger(0,buttonID,OBJPROP_YSIZE,height);
      ObjectSetString (0,buttonID,OBJPROP_FONT,font);
      ObjectSetString (0,buttonID,OBJPROP_TEXT,buttonText);
      ObjectSetInteger(0,buttonID,OBJPROP_FONTSIZE,fontSize);
      ObjectSetInteger(0,buttonID,OBJPROP_SELECTABLE,0);
      ObjectSetInteger(0,buttonID,OBJPROP_CORNER,btn_corner);
      ObjectSetInteger(0,buttonID,OBJPROP_HIDDEN,1);
      ObjectSetInteger(0,buttonID,OBJPROP_XDISTANCE,9999);
      ObjectSetInteger(0,buttonID,OBJPROP_YDISTANCE,9999);

      ObjectSetInteger(0, buttonId, OBJPROP_STATE, true);
}

void OnDeinit(const int reason) 
{

   if(reason != REASON_CHARTCHANGE) ObjectDelete(buttonId);
}

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

   if(id==CHARTEVENT_OBJECT_CREATE || id==CHARTEVENT_OBJECT_DELETE) return; // This appears to make this indy compatible with other programs that enabled CHART_EVENT_OBJECT_CREATE and/or CHART_EVENT_OBJECT_DELETE
   if(id==CHARTEVENT_MOUSE_MOVE    || id==CHARTEVENT_MOUSE_WHEEL)   return; // If this, or another pro

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

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

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

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

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

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

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