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

guppy ma (sw).mq5

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Данный индикатор для MetaTrader 5 реализует метод множественных скользящих средних Гуппи (GMMA). Он рассчитывает 12 линий скользящих средних, разделённых на две группы: краткосрочную (периоды 3–15) и долгосрочную (периоды 30–60). Каждая линия окрашивается в зависимости от направления своего наклона — зелёный для бычьего и красный для медвежьего тренда.

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

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

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

НастройкаОписание
TimeFrame Таймфрейм, на котором рассчитываются индикаторные данные (текущий, M1, M5, H1, D1 и др.).
MainTermNote Заголовок основной секции настроек в диалоге свойств индикатора.
Average method (MaMode) Метод усреднения для расчёта скользящих средних (например, экспоненциальный, простой и др.).
Price (MaPrice) Тип цены, используемой для расчёта скользящих средних (закрытие, открытие, высокая и т.д.).
ShortTermNote Заголовок секции настроек краткосрочных скользящих средних в диалоге свойств.
Short Ma period 1 (ShortPeriod1) Первый период краткосрочной скользящей средней.
Short Ma period 2 (ShortPeriod2) Второй период краткосрочной скользящей средней.
Short Ma period 3 (ShortPeriod3) Третий период краткосрочной скользящей средней.
Short Ma period 4 (ShortPeriod4) Четвёртый период краткосрочной скользящей средней.
Short Ma period 5 (ShortPeriod5) Пятый период краткосрочной скользящей средней.
Short Ma period 6 (ShortPeriod6) Шестой период краткосрочной скользящей средней.
Bullish fast line color (Upcolor) Цвет линии при бычьем направлении наклона для краткосрочных скользящих средних.
Bearish fast line color (Dncolor) Цвет линии при медвежьем направлении наклона для краткосрочных скользящих средних.
Slow Lines width (LineWidth) Толщина линий краткосрочных скользящих средних.
Slow lines are visible? (ShowLines) Переключатель видимости линий краткосрочных скользящих средних на графике.
LongTermNote Заголовок секции настроек долгосрочных скользящих средних в диалоге свойств.
Long Ma period 1 (LongPeriod1) Первый период долгосрочной скользящей средней.
Long Ma period 2 (LongPeriod2) Второй период долгосрочной скользящей средней.
Long Ma period 3 (LongPeriod3) Третий период долгосрочной скользящей средней.
Long Ma period 4 (LongPeriod4) Четвёртый период долгосрочной скользящей средней.
Long Ma period 5 (LongPeriod5) Пятый период долгосрочной скользящей средней.
Long Ma period 6 (LongPeriod6) Шестой период долгосрочной скользящей средней.
Bullish fast line color (Upcolor2) Цвет линии при бычьем направлении наклона для долгосрочных скользящих средних.
Bearish fast line color (Dncolor2) Цвет линии при медвежьем направлении наклона для долгосрочных скользящих средних.
Slow Lines width (LineWidth2) Толщина линий долгосрочных скользящих средних.
Slow lines are visible? (ShowLines2) Переключатель видимости линий долгосрочных скользящих средних на графике.
ButtonTermNote Заголовок секции настроек кнопки в диалоге свойств индикатора.
btn_Subwindow Подокно графика, в котором размещается кнопка (0 — основное окно).
btn_corner Угол графика, к которому привязана кнопка (верхний левый, верхний правый и др.).
btn_text Текст кнопки управления на графике в нормальном состоянии.
btn_Font Шрифт текста кнопки управления на графике.
btn_FontSize Размер шрифта текста кнопки управления на графике.
btn_text_ON_color Цвет текста кнопки в включённом состоянии.
btn_text_OFF_color Цвет текста кнопки в выключенном состоянии.
btn_pressed Текст кнопки в нажатом состоянии (скрытие линий).
btn_unpressed Текст кнопки в отпущенном состоянии (отображение линий).
btn_background_color Цвет фона кнопки управления на графике.
btn_border_color Цвет рамки кнопки управления на графике.
button_x Горизонтальное расстояние кнопки от угла графика в пикселях.
button_y Вертикальное расстояние кнопки от угла графика в пикселях.
btn_Width Ширина кнопки управления на графике в пикселях.
btn_Height Высота кнопки управления на графике в пикселях.
soundBT Имя звукового файла, воспроизводимого при нажатии кнопки на графике.
Down arrow size (Interpolate) Переключатель интерполяции значений между барами при расчёте на разных таймфреймах.
Получить полный код

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

???//------------------------------------------------------------------

#property indicator_separate_window
#property indicator_buffers 36

#property strict

enum enTimeFrames
{
   tf_cu  = PERIOD_CURRENT, // Current time frame
   tf_m1  = PERIOD_M1,      // 1 minute
   tf_m5  = PERIOD_M5,      // 5 minutes
   tf_m15 = PERIOD_M15,     // 15 minutes
   tf_m30 = PERIOD_M30,     // 30 minutes
   tf_h1  = PERIOD_H1,      // 1 hour
   tf_h4  = PERIOD_H4,      // 4 hours
   tf_d1  = PERIOD_D1,      // Daily
   tf_w1  = PERIOD_W1,      // Weekly
   tf_mn1 = PERIOD_MN1,     // Monthly
   tf_n1  = -1,             // First higher time frame
   tf_n2  = -2,             // Second higher time frame
   tf_n3  = -3              // Third higher time frame
};

extern enTimeFrames       TimeFrame                 = tf_cu; 
input string              MainTermNote = "=== Main Settings ==";
extern ENUM_MA_METHOD     MaMode      = MODE_EMA;       // Average method
extern ENUM_APPLIED_PRICE MaPrice     = PRICE_CLOSE;    // Price

input string              ShortTermNote = "=== Short Term MA Settings ==";
input int                 ShortPeriod1 = 3;              // Short Ma period 1
input int                 ShortPeriod2 = 5;              // Short Ma period 2
input int                 ShortPeriod3 = 8;              // Short Ma period 3
input int                 ShortPeriod4 = 10;             // Short Ma period 4
input int                 ShortPeriod5 = 12;             // Short Ma period 5
input int                 ShortPeriod6 = 15;             // Short Ma period 6
extern color              Upcolor     = clrSpringGreen; // Bullish fast line  color
extern color              Dncolor     = clrCrimson;       // Bearish fast line  color
extern int                LineWidth   =   1;              // Slow Lines width
extern bool               ShowLines    = true;             // Slow lines are visible?

input string              LongTermNote = "=== Long Term MA Settings ==";
input int                 LongPeriod1 = 30;              // Long Ma period 1
input int                 LongPeriod2 = 35;              // Long Ma period 2
input int                 LongPeriod3 = 40;              // Long Ma period 3
input int                 LongPeriod4 = 45;              // Long Ma period 4
input int                 LongPeriod5 = 50;              // Long Ma period 5
input int                 LongPeriod6 = 60;              // Long Ma period 6
extern color              Upcolor2     = clrDodgerBlue; // Bullish fast line  color
extern color              Dncolor2     = clrMagenta;       // Bearish fast line  color
extern int                LineWidth2   =   2;              // Slow Lines width
extern bool               ShowLines2    = true;             // Slow lines are visible?

input string              ButtonTermNote = "=== Button Settings ==";
extern int                btn_Subwindow = 0;
extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER; 
extern string             btn_text              = "guppys";
extern string             btn_Font              = "Arial";
extern int                btn_FontSize          = 10;                            
extern color              btn_text_ON_color     = clrLime;
extern color              btn_text_OFF_color    = clrRed;
extern string             btn_pressed           = "guppy OFF";            
extern string             btn_unpressed         = "guppy ON";
extern color              btn_background_color  = clrDimGray;
extern color              btn_border_color      = clrBlack;
extern int                button_x              = 850;                                 
extern int                button_y              = 0;                                   
extern int                btn_Width             = 90;                                 
extern int                btn_Height            = 20;                                
extern string             soundBT               = "tick.wav";  
input bool             Interpolate               = true;                // Down arrow size

bool                      show_data             = true;
string IndicatorName, IndicatorObjPrefix ,buttonId ;

double ma[],mada[],madb[],slope[];
double ma2[],mada2[],madb2[],slope2[];
double ma3[],mada3[],madb3[],slope3[];
double ma4[],mada4[],madb4[],slope4[];
double ma5[],mada5[],madb5[],slope5[];

double ma6[],mada6[],madb6[],slope6[];
double ma7[],mada7[],madb7[],slope7[];
double ma8[],mada8[],madb8[],slope8[];
double ma9[],mada9[],madb9[],slope9[];
double ma10[],mada10[],madb10[],slope10[];

double ma11[],mada11[],madb11[],slope11[];
double ma12[],mada12[],madb12[],slope12[],count[];

string indicatorFileName;
#define _mtfCall(_buff,_ind) iCustom(NULL,TimeFrame,indicatorFileName,PERIOD_CURRENT,MainTermNote,MaMode,MaPrice,ShortTermNote,ShortPeriod1,ShortPeriod2,ShortPeriod3,ShortPeriod4,ShortPeriod5,ShortPeriod6,Upcolor,Dncolor,LineWidth,ShowLines,LongTermNote,LongPeriod1,LongPeriod2,LongPeriod3,LongPeriod4,LongPeriod5,LongPeriod6,Upcolor2,Dncolor2,LineWidth2,ShowLines2,ButtonTermNote,btn_Subwindow,btn_corner,btn_text,btn_Font,btn_FontSize,btn_text_ON_color,btn_text_OFF_color,btn_pressed,btn_unpressed,btn_background_color,btn_border_color,button_x,button_y,btn_Width,btn_Height,soundBT,_buff,_ind)

string GenerateIndicatorName(const string target)
{
   string name = target;
   int try = 2;
   while (WindowFind(name) != -1)
   {
      name = target + " #" + IntegerToString(try++);
   }
   return name;
}

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

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,btn_Subwindow,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(0,"guppys");
   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);

  return(0); 
  }     

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, 
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   handleButtonClicks();
   if (id==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)
   {
   if (soundBT!="") PlaySound(soundBT);     
   }
}

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

   start2();
    SetIndexBuffer(0,ma  ,INDICATOR_DATA); SetIndexStyle(0,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Upcolor);
   SetIndexBuffer(1,mada,INDICATOR_DATA); SetIndexStyle(1,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Dncolor);
   SetIndexBuffer(2,madb,INDICATOR_DATA); SetIndexStyle(2,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Dncolor);

   SetIndexBuffer(3,ma2  ,INDICATOR_DATA); SetIndexStyle(3,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Upcolor);
   SetIndexBuffer(4,mada2,INDICATOR_DATA); SetIndexStyle(4,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Dncolor);
   SetIndexBuffer(5,madb2,INDICATOR_DATA); SetIndexStyle(5,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Dncolor);

   SetIndexBuffer(6,ma3  ,INDICATOR_DATA); SetIndexStyle(6,ShowLines ? DRAW_LINE :  DRAW_NONE,EMPTY,LineWidth,Upcolor);
   SetIndexBuffer(7,mada3,INDICATOR_DATA); SetIndexSty

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

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

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

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

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

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

Стоимость полного кода
2 176,90₽ ≈ $26.61