Genri

 
Уровень 8

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от Genri



Визуализация на графике. Комментариев 19
2020-07-05 20:47:10Рейтинг 0

Индикатор уровней Комментариев 9
2016-01-10 10:54:19Рейтинг 0

скрипт "ластик" Комментариев 10
2017-02-22 14:35:09Рейтинг 0

Rsi Комментариев 13
2019-12-03 20:39:44Рейтинг 0

"Чертилка" Комментариев 12
2016-10-09 23:54:24Рейтинг 0

"Чертилка"

Здравствуйте. Нужен индикатор уровней в который возможно вбить(скопировать из текстового документа) одно или несколько ценовых значений и они отобразятся во всех открытых окнах инструмента(эту функцию сделать отключаемой). Например GBP/USD открыты окна ТФ м5, ТФ м15, ТФ н1
значения 1,4610 1,4655 копирую их из текстового(мышью — выделить, скопировать, вставить) файла и вижу во всех открытых окнах данного инструмента.Настройка цвета и толщины линий необходима. Возможность удалить все отображенные уровни одной командой то же.В общем то же, что и в zakaz.opentraders.ru/29914.html Заранее благодарен (черновик вы делали)
  • +2
  • Просмотров: 4098
  • 9 октября 2016, 23:54
  • Genri
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Прошу написать сову по индикатору
08 октября 2016
10 октября 2016

Брокер для ваших роботов, 15 лет на рынке

Комментарии (12)

+
0
Упрощенный вариант могу сделать. Будет читать из файла и наносить на один график. Путь к файлу будет задаваться в настройках. Также попрошу показать на скрине, что за уровни и привести формат текстового файла.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 10 октября 2016, 06:26
+
+1
Реализовал ваш алгоритм самым простым образом. Забиваем в настройки уровни. видим их на графике:




//+------------------------------------------------------------------+
//|                                                        Genri.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input double L1=0;
input double L2=0;
input double L3=0;
input double L4=0;
input double L5=0;
input double L6=0;
input double L7=0;
input double L8=0;
input double L9=0;
input int Width=1;
input color Color=Red;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll(0,0,OBJ_HLINE);
  }
//+------------------------------------------------------------------+
//| Горизонтальная линия                                             |
//+------------------------------------------------------------------+
void PutHLine(string name,double p,int width,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,width);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(L1>0) PutHLine("Line"+(string)L1,L1,Width,Color);
   if(L2>0) PutHLine("Line"+(string)L2,L2,Width,Color);
   if(L3>0) PutHLine("Line"+(string)L3,L3,Width,Color);
   if(L4>0) PutHLine("Line"+(string)L4,L4,Width,Color);
   if(L5>0) PutHLine("Line"+(string)L5,L5,Width,Color);
   if(L6>0) PutHLine("Line"+(string)L6,L6,Width,Color);
   if(L7>0) PutHLine("Line"+(string)L7,L7,Width,Color);
   if(L8>0) PutHLine("Line"+(string)L8,L8,Width,Color);
   if(L9>0) PutHLine("Line"+(string)L9,L9,Width,Color);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 10 октября 2016, 07:46
+
+1
Ставит указанные уровни на все открытые графики по символу в настройках: www.opentraders.ru/downloads/1350/

input string Symb="GBPUSD";


Редактирован: 10 октября 2016, 08:40
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 10 октября 2016, 08:26
+
0
Благодарю. Оба варианта ценны. В первом если добавить еще уровни то дописать строки?
avatar

  8  Genri Автор Сообщений: 378

  • 11 октября 2016, 00:27
+
0
Сколько нужно уровней? В первый вариант добавить?
У меня 9 по умолчанию.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 11 октября 2016, 07:36
+
0
Да я там 9 и за каждым закреплен один цвет. Если не сложно увеличьте до 14 и весьма не удобно менять цвет в самом коде (особенно если с MQL не дружишь). Если возможно сделайте смену цвета линий в диалоге настроек.
Еще вопрос — если добавлю input double L10=0; и это if(L9>0) PutHLine(«Line»+(string)L10,L10,Width,Color); Уровень добавится?
И сменить тип линии цвет линии в этих строках if(L1>0) PutHLine(«Line»+(string)L1,L1,Width,Color);?

avatar

  8  Genri Автор Сообщений: 378

  • 11 октября 2016, 12:02
+
+1
В настройках толщина и цвет линии. Вечером сделаю 15.
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 11 октября 2016, 12:14
+
0
Хорошо. Жду.
avatar

  8  Genri Автор Сообщений: 378

  • 11 октября 2016, 14:58
+
+1
15


//+------------------------------------------------------------------+
//|                                                        Genri.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input double L1=1.225;
input double L2=1.266;
input double L3=0;
input double L4=0;
input double L5=0;
input double L6=0;
input double L7=0;
input double L8=0;
input double L9=0;
input double L10=0;
input double L11=0;
input double L12=0;
input double L13=0;
input double L14=0;
input double L15=0;
input int Width=1;
input color Color=Red;
input string Symb="GBPUSD";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,0,OBJ_HLINE);
  }
//+------------------------------------------------------------------+
//| Горизонтальная линия                                             |
//+------------------------------------------------------------------+
void PutHLine(string name,long chart_id,double p,int width,color clr)
  {
   ObjectDelete(chart_id,name);
   ObjectCreate(chart_id,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
   ObjectSetInteger(chart_id,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(chart_id,name,OBJPROP_WIDTH,width);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLines(long id)
  {
   if(L1>0) PutHLine("Line"+(string)L1,id,L1,Width,Color);
   if(L2>0) PutHLine("Line"+(string)L2,id,L2,Width,Color);
   if(L3>0) PutHLine("Line"+(string)L3,id,L3,Width,Color);
   if(L4>0) PutHLine("Line"+(string)L4,id,L4,Width,Color);
   if(L5>0) PutHLine("Line"+(string)L5,id,L5,Width,Color);
   if(L6>0) PutHLine("Line"+(string)L6,id,L6,Width,Color);
   if(L7>0) PutHLine("Line"+(string)L7,id,L7,Width,Color);
   if(L8>0) PutHLine("Line"+(string)L8,id,L8,Width,Color);
   if(L9>0) PutHLine("Line"+(string)L9,id,L9,Width,Color);
   if(L10>0) PutHLine("Line"+(string)L10,id,L10,Width,Color);
   if(L11>0) PutHLine("Line"+(string)L11,id,L11,Width,Color);
   if(L12>0) PutHLine("Line"+(string)L12,id,L12,Width,Color);
   if(L13>0) PutHLine("Line"+(string)L13,id,L13,Width,Color);
   if(L14>0) PutHLine("Line"+(string)L14,id,L14,Width,Color);
   if(L15>0) PutHLine("Line"+(string)L15,id,L15,Width,Color);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   long currChart,prevChart=ChartFirst();
   int i=0,limit=100;
   while(i<limit)// у нас наверняка не больше 100 открытых графиков 
     {
      currChart=ChartNext(prevChart); // на основании предыдущего получим новый график 
      if(currChart<0) break;          // достигли конца списка графиков 
      if(ChartSymbol(currChart)==Symb) PutLines(currChart);
      prevChart=currChart;// запомним идентификатор текущего графика для ChartNext() 
      i++;// не забудем увеличить счетчик 
     }
   Comment("\n Windows: ",i);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 11 октября 2016, 19:30
+
0
При компиляции начало выдавать кучу ошибок, странно до этого не было.
avatar

  8  Genri Автор Сообщений: 378

  • 12 октября 2016, 00:29
+
0
Скинул файлом: www.opentraders.ru/downloads/1350/
avatar

  35  AM2 Сообщений: 16250 - Андрей

  • 12 октября 2016, 01:14
+
0
Все отлично. Спасибо за инструмент:)  Просьба — самый первый вариант в MQL4 если возможно. А то с метаэдитором общего языка не находим
avatar

  8  Genri Автор Сообщений: 378

  • 12 октября 2016, 18:54

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий