adr fibo 1.02 bt.mq5
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «adr fibo 1.02 bt.mq5» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор рассчитывает среднесуточный диапазон цены (ADR) на основе данных дневных свечей с возможностью усреднения за несколько периодов. Результат расчёта отображается в виде фибоначчи уровней выше и ниже дневного диапазона, что позволяет визуально оценивать потенциальные цели цены. Индикатор поддерживает настройку часовых поясов для данных и торговой сессии, а также ручной ввод значения ADR.
В состав индикатора встроена кнопка на графике для переключения видимости фибоначчи объектов. Доступен режим отладки с выводом промежуточных значений в журнал. Внешний вид линий, цветов и ширины настраивается отдельно для верхних, нижних и основных фибоначчи уровней.
Индикатор предназначен для работы на платформе MetaTrader 5 и рассчитан на дневной таймфрейм. При превышении дневного периода индикатор выдаёт предупреждение и прекращает работу.
Настройки программы
| Настройка | Описание |
|---|---|
| note1 | Разделитель верхних Фибоначчи — Текстовый параметр для разделения блока настроек верхних фибоначчи |
| DisplayUpperFibo | Показать верхние Фибоначчи — Переключает отображение верхних фибоначчи уровней на графике |
| UpperFiboColor | Цвет верхних Фибоначчи — Цвет линий верхних фибоначчи уровней |
| UpperFiboStyle | Стиль верхних Фибоначчи — Стиль линий верхних фибоначчи уровней |
| UpperFiboWidth | Толщина верхних Фибоначчи — Толщина линий верхних фибоначчи уровней |
| note2 | Разделитель основных Фибоначчи — Текстовый параметр для разделения блока настроек основных фибоначчи |
| DisplayMainFibo | Показать основные Фибоначчи — Переключает отображение основных фибоначчи уровней внутри дневного диапазона |
| MainFiboColor | Цвет основных Фибоначчи — Цвет линий основных фибоначчи уровней |
| MainFiboStyle | Стиль основных Фибоначчи — Стиль линий основных фибоначчи уровней |
| MainFiboWidth | Толщина основных Фибоначчи — Толщина линий основных фибоначчи уровней |
| note3 | Разделитель нижних Фибоначчи — Текстовый параметр для разделения блока настроек нижних фибоначчи |
| DisplayLowerFibo | Показать нижние Фибоначчи — Переключает отображение нижних фибоначчи уровней на графике |
| LowerFiboColor | Цвет нижних Фибоначчи — Цвет линий нижних фибоначчи уровней |
| LowerFiboStyle | Стиль нижних Фибоначчи — Стиль линий нижних фибоначчи уровней |
| LowerFiboWidth | Толщина нижних Фибоначчи — Толщина линий нижних фибоначчи уровней |
| chart time zone (from GMT) (TimeZoneOfData) | Часовой пояс данных — Часовой пояс данных относительно Гринвича |
| dest time zone (from GMT) (TimeZoneOfSession) | Часовой пояс сессии — Часовой пояс торговой сессии относительно Гринвича |
| allows use of manual value for range (UseManualADR) | Использовать ручной ADR — Разрешает использование ручного значения диапазона вместо автоматического расчёта |
| manual value for range (ManualADRValuePips) | Ручное значение ADR — Ручное значение диапазона в пипсах, используемое при включённом ручном режиме ADR |
| number of bars from right, where lines labels will be shown (BarForLabels) | Метки на барах — Количество баров справа, на которых будут отображаться метки линий |
| DebugLogger | Отладочный журнал — Включает режим отладки с выводом промежуточных расчётных значений в журнал |
| First_av | Первый период усреднения — Первый период усреднения для расчёта ADR |
| Second_av | Второй период усреднения — Второй период усреднения для расчёта ADR |
| Third_av | Третий период усреднения — Третий период усреднения для расчёта ADR |
| button_note1 | Разделитель кнопки 1 — Текстовый параметр для разделения блока настроек кнопки |
| chart btn_corner for anchoring (btn_corner) | Угол привязки кнопки — Угол графика для привязки кнопки |
| btn_Subwindow | Подокно кнопки — Подокно для размещения кнопки (0 — главное окно графика) |
| btn_text | Текст кнопки — Текст на кнопке |
| btn_Font | Шрифт кнопки — Шрифт текста кнопки на графике |
| btn__font size (btn_FontSize) | Размер шрифта кнопки — Размер шрифта текста кнопки |
| btn_text_ON_color | Цвет текста кнопки (вкл) — Цвет текста кнопки в активном состоянии |
| btn_text_OFF_color | Цвет текста кнопки (выкл) — Цвет текста кнопки в неактивном состоянии |
| btn_background_color | Фон кнопки — Цвет фона кнопки |
| btn_border_color | Рамка кнопки — Цвет рамки кнопки |
| btn__x (button_x) | Позиция кнопки X — Горизонтальное смещение кнопки от угла привязки |
| btn__y (button_y) | Позиция кнопки Y — Вертикальное смещение кнопки от угла привязки |
| btn__width (btn_Width) | Ширина кнопки — Ширина кнопки на графике |
| btn__height (btn_Height) | Высота кнопки — Высота кнопки на графике |
| button_note2 | Разделитель кнопки 2 — Текстовый параметр для разделения блока настроек кнопки |
Поиск по коду файла
#property indicator_chart_window
extern string note1 = "Fibonacci colors";
extern bool DisplayUpperFibo = true;
extern color UpperFiboColor = clrDarkGreen;
extern ENUM_LINE_STYLE UpperFiboStyle = STYLE_DASH;
extern int UpperFiboWidth = 1;
extern string note2 = "------------------------------";
extern bool DisplayMainFibo = true;
extern color MainFiboColor = clrRoyalBlue;
extern ENUM_LINE_STYLE MainFiboStyle = STYLE_DASHDOT;
extern int MainFiboWidth = 1;
extern string note3 = "------------------------------";
extern bool DisplayLowerFibo = true;
extern color LowerFiboColor = clrCrimson;
extern ENUM_LINE_STYLE LowerFiboStyle = STYLE_DASHDOTDOT;
extern int LowerFiboWidth = 1;
extern int TimeZoneOfData= 0; // chart time zone (from GMT)
extern int TimeZoneOfSession= 0; // dest time zone (from GMT)
int ADROpenHour= 0; // start time for range calculation (LEAVE AT 0. PROGRAM DOESN'T WORK PROPERLY OTHERWISE.)
int ADRCloseHour= 24; // end time for range calculation (LEAVE AT 24. PROGRAM DOESN'T WORK PROPERLY OTHERWISE.)
extern bool UseManualADR= false; // allows use of manual value for range
extern int ManualADRValuePips= 0; // manual value for range
int LineStyle= 2;
int LineThickness1= 1; // normal thickness
color LineColor1= clrOrange; // normal color
int LineThickness2= 2; // thickness for range reached state
color LineColor2= clrBlue; // color for range reached state
bool ShowLevelPrices= true; // show prices on h-lines
extern int BarForLabels= -10; // number of bars from right, where lines labels will be shown
extern bool DebugLogger = false;
extern int First_av = 5;
extern int Second_av = 10;
extern int Third_av = 20;
extern string button_note1 = "------------------------------";
extern ENUM_BASE_CORNER btn_corner = CORNER_LEFT_UPPER; // chart btn_corner for anchoring
extern int btn_Subwindow = 0;
extern string btn_text = "ADR Fibo";
extern string btn_Font = "Arial";
extern int btn_FontSize = 9; //btn__font size
extern color btn_text_ON_color = clrLime;
extern color btn_text_OFF_color = clrRed;
extern color btn_background_color = clrDimGray;
extern color btn_border_color = clrBlack;
extern int button_x = 20; //btn__x
extern int button_y = 25; //btn__y
extern int btn_Width = 80; //btn__width
extern int btn_Height = 20; //btn__height
extern string button_note2 = "------------------------------";
bool show_data = true;
string IndicatorName, IndicatorObjPrefix;
double mPoint, today_high, today_low, today_range,
adr_high= 0,
adr_low= 0, adr_range = 0;
datetime startofday;
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,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()
{
int obj_total= ObjectsTotal();
ObjectsDeleteAll(ChartID(), IndicatorObjPrefix);
for (int i= obj_total; i>=0; i--) {
string name= ObjectName(i);
if (StringSubstr(name,0,5)=="[ADR]")
ObjectDelete(name);
}
Comment("");
ObjectDelete("ADRinsideDaily");
ObjectDelete("ADRUpDaily");
ObjectDelete("ADRDownDaily");
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)
{
handleButtonClicks();
}
int init2()
{
Print("Period= ", Period());
Print("Point= ", Point);
if(Point==0.00001) {mPoint=0.0001;}//Alpari
else if(Point==0.001) {mPoint=0.01;}
else {mPoint = Point;}//InterBankFX
if (First_av == 0 || Second_av == 0 || Third_av == 0)
Alert("(First/Second/Third)_av inputs must not equal zero. Indicator will not run.");
return(0);
}
int DrawFibo()
{
if(DisplayUpperFibo)
{
if(ObjectFind("ADRUpDaily") == -1)
ObjectCreate("ADRUpDaily",OBJ_FIBO,0,startofday,adr_high+adr_range,startofday+PERIOD_D1*60,adr_high);
else
{
ObjectSet("ADRUpDaily",OBJPROP_PRICE1,adr_high+adr_range);
ObjectSet("ADRUpDaily",OBJPROP_PRICE2,adr_high);
}
ObjectSet("ADRUpDaily",OBJPROP_LEVELSTYLE,UpperFiboStyle);
ObjectSet("ADRUpDaily",OBJPROP_LEVELWIDTH,UpperFiboWidth);
ObjectSet("ADRUpDaily",OBJPROP_LEVELCOLOR,UpperFiboColor);
ObjectSet("ADRUpDaily",OBJPROP_FIBOLEVELS,15);
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+0,0.0);
if (!DisplayMainFibo)
ObjectSetFiboDescription("ADRUpDaily",0,"(100.0%) - %$");
else
ObjectSetFiboDescription("ADRUpDaily",0,"");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+1,0.236); ObjectSetFiboDescription("ADRUpDaily",1,"(123.6%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+2,0.382); ObjectSetFiboDescription("ADRUpDaily",2,"(138.2%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+3,0.500); ObjectSetFiboDescription("ADRUpDaily",3,"(150.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+4,0.618); ObjectSetFiboDescription("ADRUpDaily",4,"(161.8%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+5,0.764); ObjectSetFiboDescription("ADRUpDaily",5,"(176.4%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+6,1.000); ObjectSetFiboDescription("ADRUpDaily",6,"(200.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+7,1.236); ObjectSetFiboDescription("ADRUpDaily",7,"(223.6%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+8,1.500); ObjectSetFiboDescription("ADRUpDaily",8,"(250.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+9,1.618); ObjectSetFiboDescription("ADRUpDaily",9,"(261.8%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+10,2.000); ObjectSetFiboDescription("ADRUpDaily",10,"(300.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+11,2.500); ObjectSetFiboDescription("ADRUpDaily",11,"(350.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+12,3.000); ObjectSetFiboDescription("ADRUpDaily",12,"(400.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+13,3.500); ObjectSetFiboDescription("ADRUpDaily",13,"(450.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_FIRSTLEVEL+14,4.000); ObjectSetFiboDescription("ADRUpDaily",14,"(500.0%) - %$");
ObjectSet("ADRUpDaily",OBJPROP_RAY,true);
ObjectSet("ADRUpDaily",OBJPROP_BACK,true);
}
else
ObjectDelete("ADRUpDaily");
if(DisplayLowerFibo)
{
if(ObjectFind("ADRDownDaily") == -1)
ObjectCreate("ADRDownDaily",OBJ_FIBO,0,startofday,adr_low-adr_range,startofday+PERIOD_D1*60,adr_low);
else
{
ObjectSet("ADRDownDaily",OBJPROP_PRICE1,adr_low-adr_range);
ObjectSet("ADRDownDaily",OBJPROP_PRICE2,adr_low);
}
ObjectSet("ADRDownDaily",OBJPROP_LEVELSTYLE,LowerFiboStyle);
ObjectSet("ADRDownDaily",OBJPROP_LEVELWIDTH,LowerFiboWidth);
ObjectSet("ADRDownDaily",OBJPROP_LEVELCOLOR,LowerFiboColor);
ObjectSet("ADRDownDaily",OBJPROP_FIBOLEVELS,19);
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+0,0.0);
if (!DisplayMainFibo)
ObjectSetFiboDescription("ADRDownDaily",0,"(0.0%) - %$");
else
ObjectSetFiboDescription("ADRDownDaily",0,"");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+1,0.236); ObjectSetFiboDescription("ADRDownDaily",1,"(-23.6%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+2,0.382); ObjectSetFiboDescription("ADRDownDaily",2,"(-38.2%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+3,0.500); ObjectSetFiboDescription("ADRDownDaily",3,"(-50.0%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+4,0.618); ObjectSetFiboDescription("ADRDownDaily",4,"(-61.8%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+5,0.764); ObjectSetFiboDescription("ADRDownDaily",5,"(-76.4%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+6,1.000); ObjectSetFiboDescription("ADRDownDaily",6,"(-100.0%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+7,1.236); ObjectSetFiboDescription("ADRDownDaily",7,"(-123.6%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+8,1.382); ObjectSetFiboDescription("ADRDownDaily",8,"(-138.2%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+9,1.500); ObjectSetFiboDescription("ADRDownDaily",9,"(-150.0%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+10,1.618); ObjectSetFiboDescription("ADRDownDaily",10,"(-161.8%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+11,1.764); ObjectSetFiboDescription("ADRDownDaily",11,"(-176.4%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSTLEVEL+12,2.000); ObjectSetFiboDescription("ADRDownDaily",12,"(-200.0%) - %$");
ObjectSet("ADRDownDaily",OBJPROP_FIRSПоказано первые 50% кода (символов: 17754)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.