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

fmcbr-bt.mq5

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

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

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

О программе

Индикатор для MetaTrader 4, который рассчитывает ключевые точки поддержки и сопротивления на основе встроенного индикатора ZigZag. Он определяет значимые максимумы и минимумы цены, а также проверяет наличие паттернов «внутренних баров» (dominant), после чего отрисовывает на графике объекты Фибоначчи.

Индикатор использует 6 буферов для отображения стрелок различных типов: обычные максимумы/минимумы, подтверждённые точки (cbHi/cbLow) и уровни пробития (breakHi/breakLow). На графике создаётся кнопка, позволяющая включать и выключать отображение данных; состояние сохраняется через глобальные переменные.

Встроена система уведомлений: при достижении нового максимума или минимума можно отправлять алерты с настраиваемыми текстовыми сообщениями. Доступны переключатели отображения различных уровней Фибоначчи и настройка внешнего вида кнопки и линий.

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

НастройкаОписание
BLUE BLUE — Цвет линий Фибоначчи при восходящем направлении
RED RED — Цвет линий Фибоначчи при нисходящем направлении
inDepth inDepth — Глубина ZigZag для поиска ключевых точек
Limit Limit — Предел количества баров для расчёта
Fibo_Level Fibo_Level — Текстовый параметр уровней Фибоначчи
HANYUT HANYUT — Отображение уровня HANYUT на объекте Фибоначчи
MULA MULA — Отображение уровня MULA на объекте Фибоначчи
ENTRY ENTRY — Отображение уровня ENTRY на объекте Фибоначчи
EXIT_1 EXIT_1 — Отображение уровня EXIT 1 на объекте Фибоначчи
AKHIR AKHIR — Отображение уровня AKHIR на объекте Фибоначчи
EXIT_2 EXIT_2 — Отображение уровня EXIT 2 на объекте Фибоначчи
EXIT_3 EXIT_3 — Отображение уровня EXIT 3 на объекте Фибоначчи
EXIT_4 EXIT_4 — Отображение уровня EXIT 4 на объекте Фибоначчи
TAMAK TAMAK — Отображение уровня TAMAK на объекте Фибоначчи
al_set al_set — Заголовок настроек уведомлений
use_alert use_alert — Включение или отключение уведомлений
up_alert up_alert — Текст уведомления при достижении нового максимума
down_alert down_alert — Текст уведомления при достижении нового минимума
btn_corner btn_corner — Угол размещения кнопки на графике
DisplayID DisplayID — Идентификатор отображения индикатора на графике
btn_Font btn_Font — Шрифт кнопки на графике
btn_FontSize btn_FontSize — Размер шрифта кнопки
btn_on_color btn_on_color — Цвет кнопки при включённом отображении данных
btn_off_color btn_off_color — Цвет кнопки при выключенном отображении данных
btn_text_color btn_text_color — Цвет текста на кнопке
btn_background_color btn_background_color — Цвет фона кнопки
btn_border_color btn_border_color — Цвет рамки кнопки
button_x button_x — Горизонтальная позиция кнопки на графике
button_y button_y — Вертикальная позиция кнопки на графике
btn_Width btn_Width — Ширина кнопки на графике
btn_Height btn_Height — Высота кнопки на графике
button_note2 button_note2 — Текстовая заметка рядом с кнопкой
Получить полный код

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

#property description "Free Distribution"
#property description "edited by eevviill"
#property description "alert"

#property version   "1.0"
#property strict
#property indicator_chart_window
#property indicator_buffers 6

extern color BLUE= clrAqua;
extern color RED = clrRed;
extern int inDepth=50;
extern int Limit=240;
extern string Fibo_Level="Klik false untuk tutup level";
extern bool HANYUT=false;
extern bool MULA = false;
extern bool ENTRY = false;
extern bool EXIT_1 = false;
extern bool AKHIR = true;
extern bool EXIT_2 = false;
extern bool EXIT_3 = false;
extern bool EXIT_4=false;
extern bool TAMAK = false;

 extern string emp1 = "///////////////////////////////////////";
 extern string al_set = "Alerts settings";
 extern bool use_alert = false;
 extern string up_alert = "UP";
 extern string down_alert = "DOWN";

 extern ENUM_BASE_CORNER   btn_corner            = CORNER_LEFT_UPPER;
extern string             DisplayID             = "FMCBR-BT";     
extern string             btn_Font              = "Tahoma";
extern int                btn_FontSize          = 10;           
extern color              btn_on_color          = clrLime;
extern color              btn_off_color         = clrRed;
extern color              btn_text_color        = clrWhite;
extern color              btn_background_color  = clrDimGray;
extern color              btn_border_color      = clrBlack;
extern int                button_x              = 700;          
extern int                button_y              = 20;          
extern int                btn_Width             = 70;        
extern int                btn_Height            = 20;          
extern string             button_note2          = "------------------------------";

bool           show_data            = true;
bool           recalc               = true;

double cbHi[],cbLow[],hi[],low[],breakHi[],breakLow[];
int fiboCount;
 int prev_bars;

string   buttonId,IndicatorName,IndicatorObjPrefix;

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

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

int deinit2()
  {     
   ObjectsDeleteAll(0,OBJ_FIBO);

   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_NONE);
   SetIndexStyle(2,DRAW_NONE);   
   SetIndexStyle(3,DRAW_NONE); 
   SetIndexStyle(4,DRAW_NONE);
   SetIndexStyle(5,DRAW_NONE);

   return(0);
  }

int deinit() 
  {
   deinit2();
   ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);

   return(0);
  }

bool ButtonCreate(const long              chart_ID=0,               
                  const string            name="Button",            
                  const int               sub_window=0,             
                  const int               x=0,                      
                  const int               y=0,                      
                  const int               width=60,                 
                  const int               height=20,                 
                  const ENUM_BASE_CORNER  corner= CORNER_LEFT_UPPER,  
                  const string            text="Button",         
                  const string            font="Tahoma",              
                  const int               font_size=10,           
                  const color             clr=clrBlack,         
                  const color             clrBorder=clrBlack,    
                  const color             back_clr=clrWhite,      
                  const color             border_clr=clrNONE,    
                  const bool              state=true,                
                  const bool              back=false,               
                  const bool              selection=false,      
                  const bool              hidden=true,             
                  const long              z_order=0)            
{ 
   ObjectCreate(chart_ID,name,OBJ_BUTTON,sub_window,0,0);
      ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x); 
      ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y); 
      ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width); 
      ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height); 
      ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner); 
      ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size); 
      ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr); 
      ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR,back_clr); 
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR,clrBorder); 
      ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_TYPE,BORDER_FLAT); 
      ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back); 
      ObjectSetInteger(chart_ID,name,OBJPROP_STATE,state); 
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection); 
      ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection); 
      ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden); 
      ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order); 
      ObjectSetString(chart_ID,name,OBJPROP_TEXT,text); 
      ObjectSetString(chart_ID,name,OBJPROP_FONT,font); 
      return(true); 
} 

void createButton(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);
      ObjectSetInteger(0,buttonID,OBJPROP_XDISTANCE,9999);
      ObjectSetInteger(0,buttonID,OBJPROP_YDISTANCE,9999);
}                               

void handleButtonClicks()
{
   if (ObjectGetInteger(0, buttonId, OBJPROP_STATE))
   {
      ObjectSetInteger(0, buttonId, OBJPROP_STATE, false);
      show_data = !show_data;
      GlobalVariableSet(IndicatorName + "_visibility", show_data ? 1.0 : 0.0);
      recalc = true;

   }
}

void OnChartEvent(const int ids, const long &lparam,const double &dparam,const string &sparam)
{
   handleButtonClicks();

   if (ids==CHARTEVENT_OBJECT_CLICK && ObjectGet(sparam,OBJPROP_TYPE)==OBJ_BUTTON)
   {   
   if (show_data)
      { 

   SetIndexBuffer(0,hi); SetIndexStyle(0,DRAW_ARROW,0,2,clrRed); SetIndexArrow(0,174);
   SetIndexBuffer(1,low);  SetIndexStyle(1,DRAW_ARROW,0,2,clrBlue); SetIndexArrow(1,174);
   SetIndexBuffer(2,cbHi);  SetIndexStyle(2,DRAW_ARROW,0,2,clrBlue); //SetIndexArrow(2,140);  
   SetIndexBuffer(3,cbLow);  SetIndexStyle(3,DRAW_ARROW,0,2,clrRed); //SetIndexArrow(3,140); 
   SetIndexBuffer(4,breakHi);  SetIndexStyle(4,DRAW_ARROW,0,1,clrBlue);// SetIndexArrow(4,140);  
   SetIndexBuffer(5,breakLow);  SetIndexStyle(5,DRAW_ARROW,0,1,clrRed);// SetIndexArrow(5,140);

   start();

      ObjectSetInteger(ChartID(),buttonId,OBJPROP_COLOR,btn_on_color);    
      }
      else
      {       
      deinit2();

      ObjectSetInteger(ChartID(),buttonId,OBJPROP_COLOR,btn_off_color);
      }
   }     
}

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

void getHiLow()
  {
   int prePos,curPos;

   curPos=prePos=0;
   for(int i=0;i<=Lim

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

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

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

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

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

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

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