Вопросы новичка в MQL5. Профи не проходите мимо. - страница 3

 

Наверно, пора позвать на помощь модераторов и попросить их удалить первые два поста из ветки (надеюсь господин надеюсь господин Yedelkin не обидется,  спасибо ему за ответы на мои вопросы) , этот пост  и переименовать тему например в "Пожелания энтузиастов по доработке  МТ5", ну или типа того на их усмотрение... А то со времен создания этой ветки образовалась еще одна для вопросов чайнегов, а эта, к тому же случайно перепрофилировалась.

Может выдет какой-то толк? Может услышат?)

 

решил прочесть hst файл, а FileReadString выдал иероглифы.

Как с этим бороться?   

 Записываю заголовок мкл4 из 5 "EURUSD " "(C)opyright 2003, MetaQuotes Software Corp." , просматриваю

  получаю все кроме строк, почему так?

 отправитель 5

#define AMOUNT_OHLCV 5 
static double OLHCV[AMOUNT_OHLCV];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void  OnStart()  {

  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string Symbol_Create  = "EURDDD";     
  string FileName = Symbol_Create + "1.hst";
  int handle = FileOpen(FileName, FILE_BIN|FILE_WRITE);
   
  string s="";
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 400,4)+"\n";            
  s=s+"FileWriteString "+FileWriteString(handle, "(C)opyright 2003, MetaQuotes Software Corp.",32)+"\n"; 
  s=s+"FileWriteString "+FileWriteString(handle, Symbol_Create, 6)+"\n"; //Symbol      
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 1,4)+"\n";   //Period        
  s=s+"FileWriteInteger "+FileWriteInteger(handle, 4,4)+"\n";  //Digits           
  s=s+"FileWriteArray "+FileWriteArray(handle, Tmp, 0, 15)+"\n";           
  Comment(s);


   MqlRates EURUSD[];
   int bars=CopyRates("EURUSD",1,0,Bars("EURUSD",1),EURUSD);
   ArraySetAsSeries(EURUSD,true);
   
   for(int i=bars-1;i>=0;i--){
        OLHCV[0] = EURUSD[i].open;
        OLHCV[1] = EURUSD[i].low;
        OLHCV[2] = EURUSD[i].high;
        OLHCV[3] = EURUSD[i].close;
        OLHCV[4] = EURUSD[i].real_volume;
        
        double Tmph = OLHCV[ArrayMaximum(OLHCV,0, AMOUNT_OHLCV - 1)];
        OLHCV[1] = OLHCV[ArrayMinimum(OLHCV, 0, AMOUNT_OHLCV - 1)];
        OLHCV[2] = Tmph;
        FileWriteInteger(handle,EURUSD[i].time,4);  
        FileWriteArray(handle, OLHCV, 0, AMOUNT_OHLCV);
    }
  FileFlush(handle);
  FileClose(handle);
return;
}

 принимающий 4

int start(){
  int Tmp[15];
  for(int t=0;t<ArraySize(Tmp);t++)
      Tmp[t]=0;
  string FileName = "EURDDD1.hst",s="";
  int handle = FileOpenHistory(FileName, FILE_BIN|FILE_WRITE|FILE_READ);

  s= s+FileReadInteger(handle,4)+"\n";            
  s= s+FileReadString(handle,64)+"\n"; 
  s= s+FileReadString(handle,12)+"\n";     
  s= s+FileReadInteger(handle,4)+"\n";           
  s= s+FileReadInteger(handle,4)+"\n";             
  s= s+FileReadArray(handle, Tmp, 0, 15)+"\n";  

  for(int i=20/*(FileSize(handle)-148)/44*/;i>=0;i--){
         s= s+TimeToStr(FileReadInteger(handle,4))+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";             
         s= s+FileReadDouble(handle,8)+"\n";            
         s= s+"-----------------------------------------"+"\n";
  }
  Comment(s);
  return;
}
 
costy_:

  а FileReadString выдал иероглифы.

И ведь реально иероглифы... Последствия аутсорсинга, или easter egg в память о Ким Чен Ире)
 
Figar0:
И ведь реально иероглифы... Последствия аутсорсинга, или easter egg в память о Ким Чен Ире)
аутрохлифа и Чён Сем КинА :((
 

 Уважаемые знатоки МТ5,  в терминале МТ5 обнаружил  что количество баров (на минутках в основном)  на одинаковых промежутках времени  иногда отличается. 

Я, так понимаю, что если не было изменения цены за время формирования бара, то на данном участке бар не отрисовывается вообще - т.е пропускается.

Я в шоке. По-этому  хочу уточнить. 

   Правда это или нет? 

 
Edic:

 Уважаемые знатоки МТ5,  в терминале МТ5 обнаружил  что количество баров (на минутках в основном)  на одинаковых промежутках времени  иногда отличается. 

Я, так понимаю, что если не было изменения цены за время формирования бара, то на данном участке бар не отрисовывается вообще - т.е пропускается.

Я в шоке. По-этому  хочу уточнить. 

   Правда это или нет? 

Если не было тиков во временном промежутке бара, то бар не строится.
 

Уважаемые, подскажите плиз, как можно обработать все графические объекты определенного типа (например OBJ_HLINE)?

С помощью ObjectsTotal  я могу выяснить количество объектов этого типа на графике, а как их перебрать через тот же for, если я заранее не знаю имени объекта.

Конкретная задача состоит в том, что мне надо перебрать все горизонтальные линии графика и получить их значения в массив.

Спасибо 

 
Olegts:

Уважаемые, подскажите плиз, как можно обработать все графические объекты определенного типа (например OBJ_HLINE)?

С помощью ObjectsTotal  я могу выяснить количество объектов этого типа на графике, а как их перебрать через тот же for, если я заранее не знаю имени объекта.

Конкретная задача состоит в том, что мне надо перебрать все горизонтальные линии графика и получить их значения в массив.

Спасибо 

После "ObjectsTotal" используйте "ObjectName".
 
barabashkakvn:
После "ObjectsTotal" используйте "ObjectName".
понял, спасибо)
 
barabashkakvn:
Если не было тиков во временном промежутке бара, то бар не строится.
Спасибо)
Причина обращения: