Ненавязчивый вопрос к Renat Fatkhullin - страница 5

 
Реter Konow:
Как не странно, документацией почти никогда не пользовался. Теперь буду знать, если свойство черным цветом напечатано, значит еще не работает. :)

А вот здесь https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents свойство CHART_EVENT_MOUSE_WHEEL, - синим цветом, в то же время, здесь - https://www.mql5.com/ru/docs/constants/chartconstants/enum_chart_property черным.

Закономерность еще не найдена. )

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Реter Konow:
Как не странно, документацией почти никогда не пользовался. Теперь буду знать, если свойство черным цветом напечатано, значит еще не работает. :)

Совершенно неверно... Если не чёрным, значит есть пример функции. И если нажать на ссылку, то попадаешь на этот пример.

 
Alexey Viktorov:

Совершенно неверно... Если не чёрным, значит есть пример функции. И если нажать на ссылку, то попадаешь на этот пример.

Согласен. Только почему неверно? Я сделал вывод, что если черным напечатано, - то пусто, а вы говорите, что если не черным напечатано, то не пусто. Я и не отрицаю этого. ))
 
Реter Konow:

А вот здесь https://www.mql5.com/ru/docs/constants/chartconstants/enum_chartevents свойство CHART_EVENT_MOUSE_WHEEL, - синим цветом, в то же время, здесь - https://www.mql5.com/ru/docs/constants/chartconstants/enum_chart_property черным.

Закономерность еще не найдена. )

Вы бы потыкали мышкой в ссылку (которая синим цветом), а  то еще 2 страницы будете искать объяснения

 
Rashid Umarov:

Вы бы потыкали мышкой в ссылку (которая синим цветом), а  то еще 2 страницы будете искать объяснения

Ну так на странице где свойство CHART_EVENT_MOUSE_WHEEL черным, напротив, тоже самое свойство напечатано синим и есть переход на страницу с событиями, где это свойство тоже синим. Получается, событие CHART_EVENT_MOUSE_WHEEL еще не работает, но объяснения к нему уже есть. В тоже время, свойство CHART_CONTEXT_MENU только черным цветом, и объяснения к нему нет. Поэтому, ваш намек на определение работает ли свойство по цвету или клику, помогает только наполовину. А вот слова "да/нет" помогли бы гораздо больше.)) 

Спасибо за помощь.

Точнее, к CHART_CONTEXT_MENU есть объяснение, но перехода к примерам нет.
 
Vasiliy Pushkaryov:

Есть в кодобазе CPrice, может, то что Вам нужно.

Я посмотрел на CPrice

В отличие от MT4, где обращение к Open[], High[], Low[], Close[] гарантированно возвращают значения,
в МТ5 функции типа CopyClose() могут возвращать -1, т.е. возвращаемое значение нужно проверять.

Т.е. прямого пути перевода кода из МТ4 в МТ5 не существует.
 

Наверно, такой универсальны  файл как #include <MT4.mqh> не может быть создан 

 
Rashid Umarov:

...

Опечатка в примере для CHART_EVENT_MOUSE_WHEEL:

'return' - 'void' function returns a value

//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
void OnInit() 
  { 
//--- включение сообщений о прокрутке колесика мышки 
   ChartSetInteger(0,CHART_EVENT_MOUSE_WHEEL,1); 
   return(INIT_SUCCEEDED); 
  } 
//+------------------------------------------------------------------+ 
//| ChartEvent function                                              | 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) 
  { 
   if(id==CHARTEVENT_MOUSE_WHEEL) 
     { 
      //--- разберем состояние кнопок и колесика мышки для этого события  
      int flg_keys = (int)(lparam>>32);          // флаг состояний клавиш Ctrl, Shift и кнопок мышки 
      int x_cursor = (int)(short)lparam;         // X-координата, в которой произошло событие колесика мышки 
      int y_cursor = (int)(short)(lparam>>16);   // Y-координата, в которой произошло событие колесика мышки 
      int delta    = (int)dparam;                // суммарное значение прокрутки колесика, срабатывает при достижении +120 или -120 
      //--- обработаем флаг  
      string str_keys=""; 
      if((flg_keys&0x0001)!=0) str_keys+="LMOUSE "; 
      if((flg_keys&0x0002)!=0) str_keys+="RMOUSE "; 
      if((flg_keys&0x0004)!=0) str_keys+="SHIFT "; 
      if((flg_keys&0x0008)!=0) str_keys+="CTRL "; 
      if((flg_keys&0x0010)!=0) str_keys+="MMOUSE "; 
      if((flg_keys&0x0020)!=0) str_keys+="X1MOUSE "; 
      if((flg_keys&0x0040)!=0) str_keys+="X2MOUSE "; 
       
      if(str_keys!="") 
         str_keys=", keys='"+StringSubstr(str_keys,0,StringLen(str_keys)-1) + "'"; 
      PrintFormat("%s: X=%d, Y=%d, delta=%d%s",EnumToString(CHARTEVENT_MOUSE_WHEEL),x_cursor,y_cursor,delta,str_keys); 
     } 
  } 
//+------------------------------------------------------------------+

//---

Пример вывода:

   CHARTEVENT_MOUSE_WHEEL: Ctrl pressed: X=193, Y=445, delta=-120 
   CHARTEVENT_MOUSE_WHEEL: Shift pressed: X=186, Y=446, delta=120 
   CHARTEVENT_MOUSE_WHEEL: X=178, Y=447, delta=-120 
   CHARTEVENT_MOUSE_WHEEL: X=231, Y=449, delta=120 
   CHARTEVENT_MOUSE_WHEEL: MiddleButton pressed: X=231, Y=449, delta=120 
   CHARTEVENT_MOUSE_WHEEL: LeftButton pressed: X=279, Y=320, delta=-120 
   CHARTEVENT_MOUSE_WHEEL: RightButton pressed: X=253, Y=330, delta=120
 
Anatoli Kazharski:

Опечатка в примере для CHART_EVENT_MOUSE_WHEEL:

'return' - 'void' function returns a value

Спасибо, исправим

 
Petros Shatakhtsyan:

Нет, то что у вас на счете, это общее плечо, оно не меняется.  Некоторые брокеры в ночное время снижают реальное плечо. Об этом у них в условиях торговли есть.

А также для каждой пары указывают размер плеча, они разные.   Реальное плечо также зависит от размера баланса, снижается когда на балансе сумма увеличивается.

Но некоторые брокеры меняют его также в дневные часы, без ведома клиента.

Я знаю, что есть плечо счета и плавающее плечо по данному символу. Выше приводил формулу, как можно определить именно плавающее плечо в текущий момент времени. На XXXUSD точно работает, проверял на Экснесс, который по нескольку раз в день может плечо туда-сюда менять.
 
Stefan Stoyanov:


В отличие от MT4, где обращение к Open[], High[], Low[], Close[] гарантированно возвращают значения,

Это в корне ошибочное утверждение.

В четверке поведение аналогично пятерке. Данных запросто может не быть. Просто в четверке люди привыкли контролировать результаты по минимуму.

Причина обращения: