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

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от Ssf1971



Нужен индикатор Комментариев 7
2016-12-01 22:03:18Рейтинг 0

Доработать индикатор Комментариев 8
2015-02-15 13:43:04Рейтинг 0

Подправить индикатор

Доброго времени суток. Есть просьба подправить индикатор, отображающий еженедельные данные отчетов СОТ. Представленный индикатор берет данные из файла GSV(файл прилагается) и отображает их в МТ4. Индикатор корректно работает на периоде отображения-неделя. Необходимо сделать так, чтобы индикатор брал данные из файла и работал на периоде — день(в файл руками будут заноситься ежедневные данные по объемам, ОИ и др.). На данном этапе при переключении таймфрейма с недели на день и при внесении в файл дневных данных (например по объему) индикатор работает не корректно. Спасибо.COT.rar (4 Kb)
  • 0
  • Просмотров: 3083
  • 20 декабря 2015, 21:20
  • Ssf1971
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
индикатор работает не корректно.

С этого момента поподробнее пожалуйста. У меня на всех ТФ одна картинка.

avatar

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

  • 20 декабря 2015, 22:25
+
0
Доброго времени суток. В файл внесены данные из отчетов СОТ (недельные).Для нормального отображения на графике во вкладке индикатора «Общие» необходимо снять закрепление максимумов и минимумов. При этом под недельной свечей будут отображаться данные, занесенные в файл из отчета. При наложении на недельный график они отображаются корректно (т.е. под соответствующей свечей отображаются данные за соответствующий по дате отчет). При внесении в файл данных по дневным объемам СМЕ и переключении на дневные графики происходит смещение гистограммы индикатора (т.е. под дневной свечей данные гистограммы индикатора соответствуют данным из файла за другой день).
avatar

  16  Ssf1971 Автор Сообщений: 15

  • 21 декабря 2015, 06:43
+
0
Я посмотрел код. Проще и быстрее на мой взгляд переписать заново чем расшифровывать код и вносить изменения. Напишите максимально подробное ТЗ и я попробую переписать.
avatar

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

  • 21 декабря 2015, 13:53
+
0
Оно?



//+------------------------------------------------------------------+
//|                                                  COT_Reports.mq4 |
//|                                                            D!m@n |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "D!m@n"
#property link      "http://www.metaquotes.net"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//#property indicator_minimum -20
//#property indicator_maximum 20
extern string name="eur_Comm.csv";
extern int period=0;

int Q,Sh,f,max,min,flag,J;
double Buffer1[];
double Buffer2[5000];
double N1,N2,Max,Min,Nh;
string A,B,C,D,E,F,date,G;
datetime time;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM,0,2);
//SetIndexStyle(1,DRAW_NONE,0,1);
   SetIndexBuffer(0,Buffer1);
//SetIndexBuffer(1,Buffer2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int handle=FileOpen(name,FILE_READ,";");
//int handle2 = FileOpen("prov.csv",FILE_CSV|FILE_WRITE,";");
//int handle3 = FileOpen("prov2.csv",FILE_CSV|FILE_WRITE,";");
   A=FileReadString(handle);
//----------характеристика индикатора-------------------------
   IndicatorShortName(A);
   IndicatorDigits(1);
   SetIndexLabel(0,"Осциллятор COT");
   SetLevelValue(0,0);
   SetLevelStyle(STYLE_DOT,1,DarkGray);
//------------------------------------------------------------
   flag=0;
   if(newBar())
     {
      while(!FileIsEnding(handle))
        {
         B="";
         while(B=="" || B==" ")
           {
            B=FileReadString(handle);
            if(FileIsEnding(handle))break;
           }
         C="";
         while(C=="" || C==" ")
           {
            C=FileReadString(handle);
            if(FileIsEnding(handle))break;
           }
         D="";
         while(D=="" || D==" ")
           {
            D=FileReadString(handle);
            if(FileIsEnding(handle))break;
           }
         E="";
         while(E=="" || E==" ")
           {
            E=FileReadString(handle);
            if(FileIsEnding(handle))break;
           }
         F="";
         while(F=="" || F==" ")
           {
            F=FileReadString(handle);
            if(FileIsEnding(handle))break;
           }
         //Print(B+" "+C+" "+D+" "+E+" "+F);
         //break;
         date=D+"."+C+"."+B+" 00:00";
         if(date==".. 00:00")break;
         time=StrToTime(date);

         for(int b=0;b<iBars(Symbol(),PERIOD_D1);b++)
           {
            if(time-iTime(Symbol(),PERIOD_D1,b)<518400 && time-iTime(Symbol(),PERIOD_D1,b)>0)
              {
               time=iTime(Symbol(),PERIOD_D1,b);
               break;
              }
           }
         N1=StrToDouble(E); //длинные
         N2=StrToDouble(F); //короткие
         if(time-iTime(Symbol(),PERIOD_D1,Bars-1)>=0)Sh=iBarShift(Symbol(),PERIOD_D1,time);
         if(time-iTime(Symbol(),PERIOD_D1,Bars-1)<-1000)Sh++;
         if(flag==0)
           {
            J=Sh;
            flag=1;
           }

         if(N1!=0)Nh=N1-N2;
         if(N1==0) N1=Nh;
         Buffer2[Sh]=N1-N2; //спред длинные - короткие
                            //Print(Buffer2[Sh]);
         //FileWrite(handle2,Sh,date,N1,N2,Buffer2[Sh]);
        }
      //FileClose(handle2);

      for(b=J;b<Sh;b++)
        {
         max=ArrayMaximum(Buffer2,period,b);
         min=ArrayMinimum(Buffer2,period,b);
         Max=Buffer2[max];
         Min=Buffer2[min];
         //Print(Max," ",Min);
         //FileWrite(handle3,b,Max," ",Min);
         Buffer1[b]=Buffer2[b];
         //Print(Buffer1[b]);
        }
      //FileClose(handle3);

     }

   FileClose(handle);
   return(0);
  }
//+------------------------------------------------------------------+

bool newBar()
  {
   bool a=false;
   if(Bars!=Q)
     {
      Q=Bars;
      a=true;
     }
   return(a);
  }
//+------------------------------------------------------------------+


Comm;;;;;;;
;15;12;2015;159943;0;;
;8;12;2015;172767;0;;
;1;12;2015;193332;0;;
;24;11;2015;163809;0;;
;17;11;2015;150669;0;;
;10;11;2015;131524;0;;
;3;11;2015;131142;0;;
;27;10;2015;115137;0;;
;20;10;2015;89409;0;;
;13;10;2015;92775;0;;
avatar

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

  • 21 декабря 2015, 17:35
+
0
Доброго времени суток. Практически да, оно. Только на графике данные по дням отображаются с зедержкой в один день. Т.е. я внес в файл даты с 1 по 15 12 2015 и соответствующие им данные, после чего наложил индикатор на график. В результате данные за 15.12.2015 отражались под дневной свечей за 14.12.2015. Можно ли это как то устранить? Спасибо.
avatar

  16  Ssf1971 Автор Сообщений: 15

  • 21 декабря 2015, 17:58
+
0
Код чужой, пока не знаю как это сделать.
avatar

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

  • 21 декабря 2015, 18:27
+
0
Спасибо за проделанную работу.
avatar

  16  Ssf1971 Автор Сообщений: 15

  • 21 декабря 2015, 18:36
+
0
Сейчас совпадает: www.opentraders.ru/downloads/980/

avatar

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

  • 21 декабря 2015, 18:59
+
0
Да. Сейчас то, что надо. Спасибо за работу и оперативность.
avatar

  16  Ssf1971 Автор Сообщений: 15

  • 21 декабря 2015, 22:41
+
0
А не подскажете как в него загружать данные из отчетов?
avatar

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

  • 25 декабря 2015, 02:55
+
0
А не подскажете как в него загружать данные из отчетов?

В архиве есть образцы файлов с данными. Они кидаются в папку Files терминала.
avatar

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

  • 25 декабря 2015, 12:43
+
0
Благодарю
avatar

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

  • 25 декабря 2015, 13:57
+
0
А где брать эти даные, чтобы в ручную их каждую неделю закидывать? Спасибо
avatar

  10  Shiva Сообщений: 148

  • 13 января 2016, 09:10

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