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