#spudfibo monthly button 1.01.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «#spudfibo monthly button 1.01.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор для платформы MetaTrader 5, отображающий на графике фибоначчиевы уровни, рассчитанные по данным месячного таймфрейма. Основные верхние и нижние уровни рисуются отдельными объектами, а внутренние уровни могут быть включены или выключены пользователем через настройку.
Управление отображением уровней осуществляется через пользовательскую кнопку на графике. При нажатии кнопки видимость фибоначчиевых линий переключается, а состояние сохраняется в глобальной переменной терминала.
Индикатор автоматически определяет максимум и минимум текущего месяца, вычисляет диапазон и строит фибоначчиевы уровни от этих значений. При смене месяца или таймфрейма уровни перерисовываются.
Продукт не содержит торговой логики и не отправляет ордера. Все настройки внешнего вида и позиционирования кнопки доступны через параметры индикатора.
Настройки программы
| Настройка | Описание |
|---|---|
| note1 | Заголовок секции настроек цветов фибоначчиевых уровней. |
| UpperFiboColor | Цвет линий верхних фибоначчиевых уровней. |
| MainFiboColor | Цвет линий внутренних фибоначчиевых уровней. |
| LowerFiboColor | Цвет линий нижних фибоначчиевых уровней. |
| note2 | Заголовок секции настройки отрисовки основных линий фибоначчи. |
| InnerFibs | Включает или выключает отрисовку внутренних фибоначчиевых уровней на графике. |
| 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 string note1 = "Fibonacci colors";
extern color UpperFiboColor = clrDarkGreen;
extern color MainFiboColor = clrDarkOliveGreen;
extern color LowerFiboColor = clrForestGreen;
extern string note2 = "Draw main Fibonacci lines?";
extern bool InnerFibs = true;
extern string button_note1 = "------------------------------";
extern ENUM_BASE_CORNER btn_corner = CORNER_LEFT_UPPER; // chart btn_corner for anchoring
extern string btn_text = "FiboM";
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 = 53; //btn__y
extern int btn_Width = 60; //btn__width
extern int btn_Height = 20; //btn__height
extern string button_note2 = "------------------------------";
bool show_dataM = true;
string IndicatorName, IndicatorObjPrefix;
int WorkTime=0,Periods=0;
double HiPrice, LoPrice, Range;
datetime StartTime;
string GenerateIndicatorName(const string target)
{
string name = target;
int try = 11;
while (WindowFind(name) != -1)
{
name = target + " #" + IntegerToString(try++);
}
return name;
}
class VisibilityCotrollerM
{
string buttonIdM;
string visibilityIdM;
bool show_dataM;
bool recalcM;
public:
void Init2(string id, string indicatorName, string caption, int x, int y)
{
recalcM = false;
visibilityIdM = indicatorName + "_visibility";
double val;
if (GlobalVariableGet(visibilityIdM, val))
show_dataM = val != 0;
buttonIdM = id;
ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, 1);
createButtonM(buttonIdM, caption, btn_Width, btn_Height, btn_Font, btn_FontSize, btn_background_color, btn_border_color, btn_text_color);
ObjectSetInteger(0,buttonIdM,OBJPROP_YDISTANCE, button_y);
ObjectSetInteger(0,buttonIdM,OBJPROP_XDISTANCE, button_x);
}
void DeInit2()
{
ObjectDelete(ChartID(), buttonIdM);
ObjectDelete("FiboUpM");
ObjectDelete("FiboDownM");
ObjectDelete("FiboInM");
}
bool HandleButtonClicksM()
{
if (ObjectGetInteger(0, buttonIdM, OBJPROP_STATE))
{
ObjectSetInteger(0, buttonIdM, OBJPROP_STATE, false);
show_dataM = !show_dataM;
GlobalVariableSet(visibilityIdM, show_dataM ? 1.0 : 0.0);
recalcM = true;
return true;
}
return false;
}
bool IsrecalcMNeeded()
{
return recalcM;
}
void ResetrecalcM()
{
recalcM = false;
}
bool IsVisibleM()
{
return show_dataM;
}
private:
void createButtonM(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);
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);
}
};
VisibilityCotrollerM FiboMonthly;
int init()
{
// код доступен только после оплаты
};
int deinit()
{
FiboMonthly.DeInit2();
ObjectDelete("FiboUpM");
ObjectDelete("FiboDownM");
ObjectDelete("FiboInM");
ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);
return(0);
}
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if (FiboMonthly.HandleButtonClicksM())
start();
}
int DrawFibo()
{
if(ObjectFind("FiboUpM") == -1)
ObjectCreate("FiboUpM",OBJ_FIBO,0,StartTime,HiPrice+Range,StartTime,HiPrice);
else
{
ObjectSet("FiboUpM",OBJPROP_TIME2, StartTime);
ObjectSet("FiboUpM",OBJPROP_TIME1, StartTime);
ObjectSet("FiboUpM",OBJPROP_PRICE1,HiPrice+Range);
ObjectSet("FiboUpM",OBJPROP_PRICE2,HiPrice);
}
ObjectSet("FiboUpM",OBJPROP_LEVELCOLOR,UpperFiboColor);
ObjectSet("FiboUpM",OBJPROP_FIBOLEVELS,13);
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+0,0.0); ObjectSetFiboDescription("FiboUpM",0,"(100.0%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+1,0.236); ObjectSetFiboDescription("FiboUpM",1,"(123.6%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+2,0.382); ObjectSetFiboDescription("FiboUpM",2,"(138.2%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+3,0.500); ObjectSetFiboDescription("FiboUpM",3,"(150.0%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+4,0.618); ObjectSetFiboDescription("FiboUpM",4,"(161.8%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEVEL+5,0.764); ObjectSetFiboDescription("FiboUpM",5,"(176.4%) - %$");
ObjectSet("FiboUpM",OBJPROP_FIRSTLEПоказано первые 50% кода (символов: 10099)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.