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

Рейтинг 2081



РЕКОМЕНДУЮ



скрипт разметки графика из тхт

Здравствуйте Андрей Просьба написать скрипт для разметки графика
Скрипт берёт данные из текстового файла
Файл для каждого инструмента свой
При первой активации скрипта наносится разметка повторная активация удаляет
Структура файла следующая

цвет разметки задаётся в настройках
Файлы тхт для скрипта opentraders.ru/downloads/1298/
Заранее спасибо

  • +5
  • Просмотров: 5016
  • 26 августа 2016, 11:05
  • DKOLIA
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
РОБОТ "РСИ + КЕЛТНЕР + QUANTUM" – СЕТКА.
25 августа 2016
27 августа 2016

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

+
0
Пока что не представляю как это сделать, может позже что то умное придет :) 
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 26 августа 2016, 17:31
+
+1
вот вам готовый скрипт по мкз, но без txt файла, рисует зоны и баланс по вашим данным. :) 
www.opentraders.ru/downloads/1299/

====================================================================
P.S. пока заливал файл сюда, сбесило, то что он просит название на латинском, а у меня и так на нем, хотел уже бросить, но кое как, сократив название он залился)).
avatar

  10  cardon Сообщений: 376

  • 26 августа 2016, 18:12
+
0
Спасибо это нето Каждый раз вбивать данные неАйс С таким успехом проще
ручками построить У меня в архиве планируется более десятка инструментов
Редактирован: 26 августа 2016, 19:10
avatar

  15  DKOLIA Автор Сообщений: 33

  • 26 августа 2016, 19:02
+
0
это вбивается примерно 1 раз в месяц. А как вы собрались не вбивая получать результат?))
в текстовый файл то тоже вбивать надо, а один раз в месяц вбить помойму не сложно.
как хотите, просто предложил, дело хозяйское.
avatar

  10  cardon Сообщений: 376

  • 26 августа 2016, 19:33
+
0
Текстовые файлы мне считает эксель автоматом
И хочется упростить нанесение на график
avatar

  15  DKOLIA Автор Сообщений: 33

  • 26 августа 2016, 19:48
+
0
Можно будет сделать в виде индикатора, при удалении все объекты исчезнут :) 
После выходных посмотрю.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 26 августа 2016, 22:30
+
0
Набросал пока для одной строки:

2016.08.08 2016.08.22 1.1220 1.1350 1.1300 1.1050 1.1110
2016.07.08 2016.07.22 1.1220 1.1350 1.1300 1.1050 1.1110





//+------------------------------------------------------------------+
//|                                                         Load.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 string FileName="EURUSD.txt";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2,color clr)
  {
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
//--- откроем файл
   int h=FileOpen(FileName,FILE_READ|FILE_TXT);
//--- прочитаем данные из файла
   while(!FileIsEnding(h))
     {
      //--- узнаем сколько символов использовано для записи времени
      int size=FileReadInteger(h,INT_VALUE);
      //--- прочитаем строку
      string s=FileReadString(h,size);

      PutRect("UP",StringToTime(StringSubstr(s,0,10)),StringToDouble(StringSubstr(s,32,6)),StringToTime(StringSubstr(s,12,10)),StringToDouble(StringSubstr(s,40,6)),Blue);
      PutRect("DN",StringToTime(StringSubstr(s,0,10)),StringToDouble(StringSubstr(s,48,6)),StringToTime(StringSubstr(s,12,10)),StringToDouble(StringSubstr(s,56,6)),Red);
      PutRect("MID",StringToTime(StringSubstr(s,0,10)),StringToDouble(StringSubstr(s,24,6)),StringToTime(StringSubstr(s,12,10)),StringToDouble(StringSubstr(s,24,6))+30*Point,Aqua);
      //--- распечатаем строку
      Print(s);
     }
//--- закроем файл
   FileClose(h);

   //PutRect("R",time[1],1.12,time[11],1.13,Blue);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 27 августа 2016, 00:52
+
0
И как сие чудо запускать чтоб картинка получилась?( 
avatar

  8  Evgen123 Сообщений: 369 - Fixa

  • 27 августа 2016, 05:57
+
0
Все теперь весь файл читает. Текстовый файл д.б. в папке Files терминала. Бросаем индикатор на график, в настройках указываем имя файла и вуаля :) 
www.opentraders.ru/downloads/1300/



У меня текстовый файл такого вида:

2016.08.08 2016.08.22 1.1220 1.1350 1.1300 1.1050 1.1110
2016.07.08 2016.07.22 1.1220 1.1350 1.1300 1.1050 1.1110
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 27 августа 2016, 08:07
+
0
Спасибо Андрей!!! В виде индикатора тоже пойдёт
avatar

  15  DKOLIA Автор Сообщений: 33

  • 27 августа 2016, 10:40
+
0
кручу верчу, не получается — в данных по умолчанию огромный синий квадрат, а когда вбиваю свои, то просто не чего нет. Не могли бы вы на примере моих данных создать текстовый файл, чтобы был пример.

avatar

  10  cardon Сообщений: 376

  • 27 августа 2016, 12:11
+
0
кручу верчу, не получается — в данных по умолчанию огромный синий квадрат, а когда вбиваю свои, то просто не чего нет. Не могли бы вы на примере моих данных создать текстовый файл, чтобы был пример.


Другие данные другой топик.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 27 августа 2016, 12:35
+
0
в файле всё уже есть clip2net.com/s/3BCmeQI

для золота нужно в тхт все данные с точкой и ноль// 2016.08.26 2016.09.25 1322.5 1370.0 1350.0 1275.0 1295.0 //
иначе получается на весь экран синий прямоугольник
Редактирован: 27 августа 2016, 12:45
avatar

  15  DKOLIA Автор Сообщений: 33

  • 27 августа 2016, 12:39
+
0
насчет другого топика вообще не понял))

за скрин с разъяснениями спасибо.
avatar

  10  cardon Сообщений: 376

  • 27 августа 2016, 12:47
+
0
насчет другого топика вообще не понял))


Если какой то другой формат строки в текстовом файле, то индикатор нужно переписывать.
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 27 августа 2016, 13:03
+
0
Нда, наконец свершилось. Первая модификация.
avatar

  8  Genri Сообщений: 378

  • 27 августа 2016, 19:23
+
0
Андрей, спасибо, нужное дополнение. Вопрос- только у меня не работает?
avatar

  11  vinvlad Сообщений: 15

  • 29 августа 2016, 16:45
+
0
Вопрос снят.между данными — двойной пробел. Вообще удобно прописать в 1-й строке названия, а в инди её игнорировать.
И между данными, чтобы не допускать ошибок введения, читабельный символ, к примеру — ;
А так -супер!
avatar

  11  vinvlad Сообщений: 15

  • 29 августа 2016, 16:59
+
0
Тогда в экселе заморочки с этими символами;
Итак приходится боротся с точками и запятыми
Редактирован: 30 августа 2016, 14:31
avatar

  15  DKOLIA Автор Сообщений: 33

  • 30 августа 2016, 14:29
+
0
Это -да, согласен при работе с экселем, здесь человек попросил сделать утилитку для считывания данных на график с блокнота, куда вручную вносятся эти данные. На форуме Профитскул -есть такой скрипт, очень хороший(запустил-показывает уровни, причём с описаниями-«баланс» и т.п. Ещё раз запустил -он выгрузился и вся графика тоже), но беда в том, что он ex4- и нередактированный, создатель пропал, а данные в нём подвязаны только под ограниченные пары. А этот-инди -пока очень сырой, к сожалению…
avatar

  11  vinvlad Сообщений: 15

  • 30 августа 2016, 19:50
+
0
ЕЩЁ заметил -забивает буфер-постоянно в работе…
avatar

  11  vinvlad Сообщений: 15

  • 29 августа 2016, 17:50
+
0
Здраствуйте Андрей
При удалении с графика индикатор удаляет не только свою разметку
но и построенные ручками Как бы это побороть?
avatar

  15  DKOLIA Автор Сообщений: 33

  • 5 сентября 2016, 13:24
+
0
Нужно писать отдельную функцию чтобы удалял по именам: «UP»,«DN»,«MID».
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 5 сентября 2016, 13:48
комментарий был удален 2016-09-05 16:46:23 DKOLIA

комментарий был удален 2016-09-05 16:46:34 DKOLIA

+
0
Здравствуйте Андрей
Заметил что индикатор забивает буфер clip2net.com/s/3BVHNHm
Помогает только удаление clip2net.com/s/3BVHK8o
Можно както подправить или всётаки реализовать ввиде скрипта
avatar

  15  DKOLIA Автор Сообщений: 33

  • 6 сентября 2016, 10:02
+
0
Закомментарьте вы распринтовку просто. Для себя сегодня писал функцию удаления объекта по имени:


void DelObject(string name)
  {
   for(int i=ObjectsTotal()-30;i>=0;i--)
     {
      string s=ObjectName(0,i);
      if(StringFind(s,name)>=0) ObjectDelete(0,ObjectName(0,i));
     }
  }


DelObject("buy");
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 6 сентября 2016, 11:01
+
0
//--- распечатаем строку
     //Print(s);
avatar

  34  AM2 Сообщений: 15866 - Андрей

  • 6 сентября 2016, 11:03
+
0
Закомментарьте вы распринтовку просто. Для себя сегодня писал функцию удаления объекта по имени:

Спасибо получилось
avatar

  15  DKOLIA Автор Сообщений: 33

  • 6 сентября 2016, 11:50

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