guppy ma (sw).mq5
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «guppy ma (sw).mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для 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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.