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

 
Aliaksandr Hryshyn #:

Пожалуйста:

wnd - дескриптор главного окна, найти свой.

0x8134 - третий параметр для очистки логов с вкладки "Журнал"

Проверил, работает.

нужная штука, забрал, спасибо

#import "user32.dll"
long SendMessageW(long wnd, uint Msg, long param, ulong l = 0);
long GetAncestor(long hwnd, uint gaFlags);
#import
#define GA_PARENT 1
#define GA_ROOT 2
#define GA_ROOTOWNER 3
//+------------------------------------------------------------------+
void OnStart()
{
   long handle = ChartGetInteger(0, CHART_WINDOW_HANDLE);
   if(handle != 0)
   {
      long h = GetAncestor(handle,GA_ROOTOWNER);
      SendMessageW(h, 0x111, 0x8135);
   }
}
 
Aliaksandr Hryshyn #:
Igor Makanu #:

Спасибо! Жаль, работает только при активной вкладке Лога.

 
fxsaber #:

Спасибо! Жаль, работает только при активной вкладке Лога.

я про это и писал - найти нужную вкладку и дать ей фокус и потом лишь отправить сообщение.... это в пару строк кода не получится

но для отладки код @Aliaksandr Hryshyn работает, по мне так удобно

 
Igor Makanu #:

для отладки код @Aliaksandr Hryshyn работает, по мне так удобно

Да, благодарен.

 
MQL_User #:

Всем здравствуйте.

Никто не подскажет, можно ли как-нибудь отключить горизонтальную прокрутку графика горизонтальным перемещением курсора мыши?

Можно. И колесом тоже.

Всё есть в справке. Главное - читать.

Документация по MQL5: Операции с графиками / ChartSetInteger
Документация по MQL5: Операции с графиками / ChartSetInteger
  • www.mql5.com
ChartSetInteger - Операции с графиками - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber #:

Спасибо! Жаль, работает только при активной вкладке Лога.

Возможно, поможет (работает в четверке):

#define  GA_ROOT 2

// получаем системный дескриптор основного окна терминала
hMetaTrader = GetAncestor(WindowHandle(Symbol(), Period()), GA_ROOT);

// ищем окно "Терминал"
hControlBar = GetDlgItem(hMetaTrader, 0xE81E);
hControlBar = GetDlgItem(hControlBar, 0x0051);

// ищем список указанной вкладки (0 - эксперты, 1 - журнал)
hListView = GetDlgItem(hControlBar, (iTab == 0 ? 0x8A6A : 0x81B9));
 
Andrey Khatimlianskii #:

Возможно, поможет (работает в четверке):

Спасибо, надо будет посмотреть коды окон в пятерке.

 
Artyom Trishkin #:

Можно. И колесом тоже.

Всё есть в справке. Главное - читать.

Артём, спасибо.

Я искал в настройках программы отключение этой опции и как-то не подумал, что это можно сделать из кода.

 

Здравствуйте!

Поиск по форуму выдал несколько вариантов ответов, но в данном случае, ни один не стал решением. Поэтому задам похожий вопрос еще раз, может быть в этот раз он будет услышан.

Имеется терминал МТ5 билд 3036, самый "свежий".

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

//+------------------------------------------------------------------+
//|                                              CustomIndicator.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+

Затем прикрепляю скомпилированный пустой индикатор к графику и произвожу переключение таймфреймов и при каждом переключении, в Журнале появляется запись о том что индикатор был загружен на новый таймфрейм и удален с предыдущего. И так всякий раз пока происходят переключения периодов.

MG      0       15:37:11.020    Indicators      custom indicator CustomIndicator (GBPUSD,M5) loaded succesfully
ML      0       15:37:27.861    Indicators      custom indicator CustomIndicator (GBPUSD,M1) loaded succesfully
DP      0       15:37:30.884    Indicators      custom indicator CustomIndicator (GBPUSD,M3) loaded succesfully
EG      0       15:37:32.004    Indicators      custom indicator CustomIndicator (GBPUSD,M1) removed
OI      0       15:37:32.004    Indicators      custom indicator CustomIndicator (GBPUSD,M5) removed
EO      0       15:37:33.974    Indicators      custom indicator CustomIndicator (GBPUSD,M5) loaded succesfully
KG      0       15:37:37.010    Indicators      custom indicator CustomIndicator (GBPUSD,M3) removed
JJ      0       15:37:37.048    Indicators      custom indicator CustomIndicator (GBPUSD,M15) loaded succesfully
HN      0       15:37:42.004    Indicators      custom indicator CustomIndicator (GBPUSD,M5) removed
CP      0       15:37:48.800    Indicators      custom indicator CustomIndicator (GBPUSD,M30) loaded succesfully
IG      0       15:37:52.003    Indicators      custom indicator CustomIndicator (GBPUSD,M15) removed


Если используется готовый Индикатор из "стандартного набора", такого не происходит. Подобное происходит только с индикаторами скомпилированными "свежим" билдом.


Вопрос - в чем ошибка?

 

Еще раз здравствуйте!

Кто-нибудь знает как разместить на Маркете Эксперта состоящего из нескольких файлов - сам Эксперт и пара Индикаторов, которые загружаются через #resource?

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