Ошибки, баги, вопросы - страница 1090

 

Всем привет! Вопрос скорее из любопытства: "Почему членам перечесления ENUM_TIMEFRAMES назначены именно такие значения? Откуда взялось число 16385 при переходе от М30 к H1?" 

enum ENUM_TIMEFRAMES       
{                          
PERIOD_CURRENT = 0,        
PERIOD_M1 = 1,             
PERIOD_M2 = 2,             
PERIOD_M3 = 3,             
PERIOD_M4 = 4,             
PERIOD_M5 = 5,             
PERIOD_M6 = 6,             
PERIOD_M10 = 10,           
PERIOD_M12 = 12,           
PERIOD_M15 = 15,           
PERIOD_M20 = 20,           
PERIOD_M30 = 30,           
PERIOD_H1 = 16385,  //???       
PERIOD_H2 = 16386,         
PERIOD_H3 = 16387,         
PERIOD_H4 = 16388,         
PERIOD_H6 = 16390,         
PERIOD_H8 = 16392,         
PERIOD_H12 = 16396,        
PERIOD_D1 = 16408,         
PERIOD_W1 = 32769,         
PERIOD_MN1 = 49153         
}; 

 Заранее спасибо за ответ(ы)!!!

 
MigVRN:

Всем привет! Вопрос скорее из любопытства: "Почему членам перечесления ENUM_TIMEFRAMES назначены именно такие значения? Откуда взялось число 16385 при переходе от М30 к H1?" 

 Заранее спасибо за ответ(ы)!!!


PERIOD_H1 = 16385,  // = (1 << 14) + 1
PERIOD_H2 = 16386,  // = (1 << 14) + 2         
PERIOD_H3 = 16387,  // = (1 << 14) + 3
PERIOD_H4 = 16388,  // = (1 << 14) + 4
PERIOD_H6 = 16390,  // = (1 << 14) + 6
PERIOD_H8 = 16392,  // = (1 << 14) + 8
PERIOD_H12 = 16396, // = (1 << 14) + 12
 
MetaDriver:

Спасибо! Но вопрос я поставил неверно, т.к. теперь ещё силнее заутался... Если не затруднит - ещё пара уточняющих вопросов:

1) Зачем?

2) И почему именно на 14?

 :)

 
MigVRN:

Спасибо! Но вопрос я поставил неверно, т.к. теперь ещё силнее заутался... Если не затруднит - ещё пара уточняющих вопросов:

1) Зачем?

2) И почему именно на 14?

 :)

:)  А это уже к разработчикам....ибо  неисповедимы пути их.... ;)
 

кажись ошибка в поиске бара по времени в функ CopyClose (и в других тоже значит).

при копировании одного бара "чужого" символа, данной фукцией, происходит ошибка копирования, хоть и на открытом рядом окне этот бар есть.

2014.01.05 14:52:00.556 tmp (,D1) USDCAD ooo 2012.12.12 00:00:00
2014.01.05 14:51:57.214 tmp (,D1) 80.55313933496228
2014.01.05 14:51:50.947 tmp (,D1) USDCAD ooo 2013.03.04 00:00:00
2014.01.05 14:51:44.828 tmp (,D1) USDCHF ooo 2011.12.26 11:00:00
2014.01.05 14:51:37.896 tmp (,D1) USDCAD ooo 2011.03.02 12:00:00
2014.01.05 14:51:30.112 tmp (,D1) USDSEK ooo 2013.09.20 22:00:00

в скрипте понятно, можно запрашивать пока "чудом" не найдет, но для индикатора не допустимо. 

кстати вспомнил что приходилось самому писать функцию, т.к. встроенная не справлялась для индикатора

//--------------------------------------------------------------------------+
//=   Ищет  индекс массива MqlRates по времени
//=   Протестировано 28,12,2011
//=   для прохода по 4 000 800      баров Скопировано USDJPY
//=   ошибок = 0 GetTickCount 2 200 мс.
//=   ВОЗВРАТИТ -1 в случае ошибки + сообщение Алерт
//--------------------------------------------------------------------------+
int save_indexs=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FindIndex(datetime find,MqlRates &xxxxxx[])
  {
   int size_mql=ArraySize(xxxxxx);
//проверим находится ли время в массиве, и есть ли где искать
   if(size_mql<=0){Alert("ggg");return(-1);}
   if(find>xxxxxx[0].time)return(0);
   if(find<=xxxxxx[size_mql-1].time)return(size_mql-1);
//а может лежит рядом?
//проверим по скорости с глоб. перем.
   for(int i=save_indexs+1;i>=save_indexs-1 && i>=0;i--)
      if(i<size_mql)
         if(find==xxxxxx[i].time)
            return(i);
//результат с применением  ошибок = 0 GetTickCount   843 мс.
//результат без применения ошибок = 0 GetTickCount 3 744 мс.
//начнемс
   int kolvo=size_mql,
   start_save=size_mql-1,
   end_save=0;
   while(!IsStopped())
     {
      //градация поиска +1 для плавающей запятой, учесть все не ошибиться, дойдет до - минусов
      int grad=kolvo/StringLen(IntegerToString(kolvo))+1;
      if(grad<10)grad=1;
      //
      for(int start=start_save,karetka=start-grad;          start>=end_save;          start=karetka,karetka=start-grad)
        {
         //karetka может выходить за размер масс
         if(karetka<0)karetka=0;
         if(find>=xxxxxx[start].time && find<=xxxxxx[karetka].time)
           {
            kolvo=start-karetka+1;
            start_save=start;
            end_save=karetka;
            if(start==karetka+1){save_indexs=karetka;return(karetka);}
            break;//for
           }
        }
     }
   return(-1);
  }
//+------------------------------------------------------------------+

 прошло два года, а воз и нынче там, странно.

Файлы:
tmp.mq5  3 kb
myusdx.mq5  5 kb
 
Кавычки во вставляемых ссылках на форуме убивают всю ссылку
 
costy_:

кажись ошибка в поиске бара по времени в функ CopyClose (и в других тоже значит).

....

 прошло два года, а воз и нынче там, странно.

это не баг, это фича (с)

ф-ии CopyXXX берут данные из соответствующих буферов, а если  в буфере данных нет (чужой символ и\или таймфрейм отличный от текущего), то будет ошибка. Тем не менее, в этом случае запускается процесс формирования буферов и если через некоторое (sic!) время вновь вызвать CopyXXX, то результат может быть будет получен. В индикаторах Sleep нельзя использовать, поэтому мучаться нужно через таймер, т. к. на следующий тик не приходится расчитывать (выходные и неликвидные инструменты тому виной)

 

Не могу войти в хранилище через сайт, при вводе логина пароля вновь появляется окошко для ввода логина и пароля.

Так же не могу  ни чего извлечь через MetaEditor пишет: 

Логин пароль введены правильно 

Подскажите в чём причина? 

 
sanyooooook:

Не могу войти в хранилище через сайт, при вводе логина пароля вновь появляется окошко для ввода логина и пароля.

Так же не могу  ни чего извлечь через MetaEditor пишет: 

Логин пароль введены правильно 

Подскажите в чём причина? 

Может меняли пароль, был там такой баг.
 
zfs:
Может меняли пароль, был там такой баг.
да менял, но я ведь ввожу действующий пароль
Причина обращения: