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

#spudfibo dashboard button weekly.mq4

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

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

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

О программе

SpudFibo Dashboard Button Weekly — это индикатор-панель для MetaTrader 4, отображающий уровни Фибоначчи для множества валютных пар на основе данных недельного таймфрейма. Для каждой пары рассчитываются уровни 100%, 76.4%, 61.8%, 50%, 38.2%, 23.6% и 0%, а текущая цена Bid сравнивается с ними для определения цвета ячеек. Индикатор создаёт на графике таблицу из кнопок, где строки — валютные пары, столбцы — уровни Фибоначчи.

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

Цветовая кодировка отражает позицию цены относительно недельных максимумов и минимумов: зелёные оттенки — цена выше соответствующих уровней Фибоначчи, красные — ниже, серый — нейтральное состояние. Настраиваются цвета, шрифты, размеры и расположение всех элементов интерфейса.

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

НастройкаОписание
AboveYesterHigh Цвет при пробитии вчерашнего максимума
Fibo76Color Цвет при цене выше уровня Фибоначчи 76.4%
Fibo61Color Цвет при цене выше уровня Фибоначчи 61.8%
Fibo50Color Цвет при цене выше уровня Фибоначчи 50.0%
Fibo38Color Цвет при цене выше уровня Фибоначчи 38.2%
Fibo23Color Цвет при цене выше уровня Фибоначчи 23.6%
FiboZeroColor Цвет при цене выше уровня Фибоначчи 0%
BelowYesterLow Цвет при пробитии вчерашнего минимума
Neutral Цвет нейтрального состояния
TextColor Цвет текста на кнопке
TextFont Шрифт текста на кнопке
TextSize Размер текста на кнопке
BorderColor Цвет границы кнопки
FillColor Цвет фона кнопки
Window Окно для отображения панели
Corner Угол для размещения панели на графике
XShift Сдвиг по горизонтали от угла графика
YShift Сдвиг по вертикали от угла графика
UniqueID Уникальный идентификатор индикатора
button_note1 Примечание к кнопке (разделитель)
btn_corner Угол привязки кнопки-переключателя на графике
btn_text Текст на кнопке-переключателе
btn_Font Шрифт текста кнопки-переключателя
btn_FontSize Размер шрифта кнопки-переключателя
btn_text_ON_color Цвет текста кнопки при включённом состоянии
btn_text_OFF_color Цвет текста кнопки при выключенном состоянии
btn_background_color Цвет фона кнопки-переключателя
btn_border_color Цвет границы кнопки-переключателя
button_x Координата X кнопки-переключателя
button_y Координата Y кнопки-переключателя
btn_Width Ширина кнопки-переключателя
btn_Height Высота кнопки-переключателя
button_note2 Примечание к кнопке (разделитель)
Получить полный код

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

#property indicator_chart_window
#property strict

extern string Symbols = "AUDCAD;AUDCHF;AUDJPY;AUDNZD;AUDUSD;CADCHF;CADJPY;CHFJPY;EURAUD;EURCAD;EURCHF;EURGBP;EURJPY;EURNZD;EURUSD;GBPAUD;GBPCAD;GBPCHF;GBPJPY;GBPNZD;GBPUSD;NZDCAD;NZDCHF;NZDJPY;NZDUSD;USDCAD;USDCHF;USDJPY;";  // Symbols to use (separated by ";" in the list)
string TimeFrames     = "M5;M15;M30;H1;H4,D1,W1,MN";        // Time frames to use (separated by ";" in the list)

int    ColorSteps        = 41;                                    // Color steps for gradient colors
extern color  AboveYesterHigh   = clrDarkGreen;                          // Color for breaking up yesterday high
extern color  Fibo76Color       = clrLimeGreen;                          // Color for above Fibo 76.4 %
extern color  Fibo61Color       = clrLime;                               // Color for above Fibo 61.8 %
extern color  Fibo50Color       = clrGray;                             // Color for above Fibo 50.0 %
extern color  Fibo38Color       = clrRed;                                // Color for above Fibo 38.2 %
extern color  Fibo23Color       = clrCrimson;                            // Color for above Fibo 23.6 %
extern color  FiboZeroColor     = clrFireBrick;                          // Color for above Fibo zero %
extern color  BelowYesterLow    = clrMaroon;                             // Color for breaking down yesterday low
extern color  Neutral           = clrLightGray;                          // Color for neutral

extern color  TextColor         = clrBlack;                              // Color for button text
extern string TextFont          = "Arial";                               // Text font
extern int    TextSize          = 8;                                     // Text size
extern color  BorderColor       = clrBlack;                              // Color for button border
extern color  FillColor         = clrSilver;                             // Color for button background
extern int    Window            = 0;                                     // Window to use for display
extern ENUM_BASE_CORNER  Corner = CORNER_LEFT_LOWER;                     // Corner for display
extern int    XShift            = 0;                                     // Horizontal shift
extern int    YShift            = 0;                                     // Vertical shift
extern string UniqueID          = "SpudFiboDashboard1";                  // Indicator unique ID

extern string             button_note1          = "------------------------------";
extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER; // chart btn_corner for anchoring
extern string             btn_text              = "FiboBoard";
extern string             btn_Font              = "Impact";
extern int                btn_FontSize          = 9;                                 //btn__font size
extern color              btn_text_ON_color     = clrWhite;
extern color              btn_text_OFF_color    = C'120,120,120';
extern color              btn_background_color  = clrDarkRed;
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;

int    cpairsLen,ctimesLen, aTimes[];
string cpairs[];
color  colors[];
datetime StartTime;

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

   int idLength = StringLen(UniqueID);
   for (int i = ObjectsTotal(); i>=0; i--)
         { string name = ObjectName(i); if (StringSubstr(name,0,idLength) == UniqueID) ObjectDelete(name); }         

	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, //don't change anything here
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
   if (id==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)
   {   
      if (StringFind(sparam,UniqueID+"t",0)==0)          
            ChartSetSymbolPeriod(0,ObjectGetString(0,sparam,OBJPROP_TEXT),_Period);
   }
   handleButtonClicks();
}

string GetButtonState(string whichbutton)
{
      bool selected = ObjectGetInteger(ChartID(),whichbutton,OBJPROP_STATE);
      if (selected)
           { return ("on"); } 
      else { return ("off");}
}

int start()
{
      // код доступен только после оплаты
   }
double HiPrice, Fibo76Price, Fibo61Price, Fibo50Price, Fibo38Price, Fibo23Price, LoPrice, PriceBid;
   handleButtonClicks();
   recalc = false;
   int xshift=0, nxshift=0; if (Corner==CORNER_RIGHT_LOWER || Corner==CORNER_RIGHT_UPPER) { xshift=49; nxshift=66; }
   for (int i = 0; i < cpairsLen; i++ ) ButtonCreate2(ChartID(),UniqueID+"t"+(string)i,Window,XShift+nxshift+2,YShift+30+i*15,66,14,Corner,cpairs[i],TextFont,TextSize,TextColor,BorderColor,FillColor); //create Forex symbol pairs
   ButtonCreate2(ChartID(),UniqueID+"h"+(string)0,Window,XShift+xshift+0*62+69,YShift+15,62,14,Corner,"Fibo 100%",TextFont,TextSize,TextColor,BorderColor,FillColor); //create bottom row of timeframe labels
   ButtonCreate2(ChartID(),UniqueID+"h"+(string)1,Window,XShift+xshift+1*62+69,YShift+15,62,14,Corner,"Fibo 76.4%",TextFont,TextSize,TextColor,BorderColor,FillColor); //create bottom row of timeframe labels
   ButtonCreate2(ChartID(),UniqueID+"h"+(string)2,Window,XShift+xshift+2*62+69,YShift+15,62,14,Corner,"Fibo 61.8%",TextFont,TextSize,TextColor,BorderColor,FillColor); //create bottom row of timeframe labels
   ButtonCreate2(ChartID(),UniqueID+"h"+(string)3,Window,XShift+xshift+3*62+69,YShift+15,62,14,Corner,"Fibo 50%",TextFont,TextSize,TextColor,BorderColor,FillColor); //create bottom row of timeframe labels
   ButtonCreate2(ChartID(),UniqueID+"h"+(string)4,Window,XShift+xshift+4*62+69,YShift+15,62,14,Corner,"Fibo 38.2%",TextFont,TextSize,TextColor,BorderColor,FillColor); //create bottom row of timeframe labels
   ButtonCreate2(C

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

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

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

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

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

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

Стоимость полного кода
1 591,80₽ ≈ $19.62