Erros, bugs, perguntas - página 3087

 
Aliaksandr Hryshyn #:

Por favor:

wnd - Descritor da janela principal, encontre a sua própria janela.

0x8134 - terceiro parâmetro para limpar registos da tabulação de registo

Verificou-o, funciona.

Precisava, consegui-o, obrigado

#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 #:

Obrigado! É pena, só funciona quando o separador Registo está activo.

 
fxsaber #:

Obrigado! É pena que só funcione quando o separador Registo está activo.

Foi o que escrevi - encontrar o separador certo e dar-lhe foco e depois apenas enviar a mensagem.... não funcionará em algumas linhas de código

mas para a depuração, o código de@Aliaksandr Hryshyn funciona.

 
Igor Makanu #:

para depuração de código@Aliaksandr Hryshyn funciona, parece-me conveniente

Sim, obrigado.

 
MQL_User #:

Olá a todos.

Alguém me pode dizer se há alguma forma de desactivar a rolagem horizontal do gráfico movendo o cursor do rato na horizontal?

Sim, há. A roda também pode.

Está tudo na ajuda. O principal é lê-lo.

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

Obrigado! Pena, só funciona quando o separador Registo está activo.

Pode ajudar (funciona em 4):

#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 #:

Pode ajudar (funciona em quatro):

Obrigado, terei de olhar para os códigos das janelas em cinco.

 
Artyom Trishkin #:

Pode. E com uma roda, também.

Está tudo na ajuda. O principal é lê-lo.

Artem, obrigado.

Procurei nas definições do programa para desactivar esta opção e de alguma forma não pensei que pudesse ser feito a partir do código.

 

Olá!

Uma pesquisa no fórum deu várias respostas, mas neste caso, nenhuma foi a solução. Por conseguinte, farei novamente uma pergunta semelhante, talvez desta vez seja ouvida.

Tenho um terminal MT5 build 3036, que é o "mais recente".

Crio um indicador personalizado no editor usando o assistente e compenso-o em branco (para evitar todos os erros possíveis no código).

//+------------------------------------------------------------------+
//|                                              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);
  }
//+------------------------------------------------------------------+

Depois anexo o indicador compilado ao gráfico e faço a mudança de prazos e em cada mudança o registo aparece no registo de que o indicador foi movido para um novo prazo e apagado do anterior. Isto acontece sempre que os períodos são trocados.

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


Se utilizar um indicador pronto a partir do "conjunto padrão", isto não acontece. Isto só acontece com indicadores compilados a partir da construção "fresca".


A questão - qual é o erro?

 

Olá de novo!

Alguém sabe como colocar no Mercado um Perito constituído por vários ficheiros - o próprio Perito e um par de Indicadores, que são carregados através de #resource?