Discussão do artigo "Como criar um painel gráfico de qualquer nível de complexidade" - página 6

 

Muito obrigado por compartilhar. Excelente!

Só senti falta de uma coisa em seu exemplo. Você deveria ajudar a incluir informações de dados como texto e números.

Por exemplo:

Valor do stop loss: 50,50

Valor do take profit: 250,00

Média móvel (200): 110.5.


Você conhece algum artigo que ensine como fazer esse tipo de coisa?

 
Guilherme Mendonca :

Muito obrigado por compartilhar. Excelente!

Só senti falta de uma coisa em seu exemplo. Você deveria ajudar a incluir informações de dados como texto e números.

Por exemplo:

Valor do stop loss: 50,50

Valor do take profit: 250,00

Média móvel (200): 110.5.


Você conhece algum artigo que ensine como fazer esse tipo de coisa?

Dê uma olhada nos exemplos de painel padrão no MetaEditor.

 

Você pode me ajudar com esta pergunta?

Adicionei a função de deslocamento do painel setShift() ao seu arquivo "AppWindowTwoButtonsClass". Agora, se movermos a borda do gráfico para a direita e ela se aproximar do painel, o painel começará a se mover para a esquerda junto com a borda do gráfico.

void OnChartEvent(const int id,         // ID do evento 
                  const long& lparam,   // parâmetro de evento do tipo longo
                  const double& dparam, // parâmetro de evento do tipo double
                  const string& sparam) // parâmetro de evento do tipo string
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   if(id == CHARTEVENT_CHART_CHANGE) ExtDialog.setShift();
  }

A chamada dessa função está destacada em amarelo.

A pergunta é: há alguma maneira de chamar essa função por meio desse pseudocódigo?

EVENT_MAP_BEGIN(cGPanel)            

EVENT_MAP_END(CAppDialog)

para que a chamada seja feita a partir da classe herdeira e não da função global OnChartEvent().

Tentei várias definições: ON_NO_ID_EVENT(event,handler), ON_OTHER_EVENTS(handler). Mas não entendo como elas funcionam.

Estou anexando um arquivo com a função adicional setShift().

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Arquivos anexados:
 
Muito útil, obrigado pela postagem.
Uma pergunta rápida,

Por que você usa o seguinte;
//--- criar caixa de diálogo do aplicativo
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
//--- executar o aplicativo
   AppWindow.Run();
//--- bem-sucedido
   return(INIT_SUCCEEDED);
  }
Em vez de;
//--- criar caixa de diálogo do aplicativo
   AppWindow.Create(0,"AppWindow",0,20,20,360,324));
//--- executar o aplicativo
   AppWindow.Run();
/
  }
que eu usava em uma GUI do mql4.

Isso é uma necessidade do mql5 ou tem outros benefícios?

Obrigado, senhor
 
emargrie :
Muito útil, obrigado pela postagem.
Uma pergunta rápida,

Por que você usa o seguinte;
Em vez de;
Que eu usei em uma GUI mql4.

Isso é uma necessidade do mql5 ou tem outros benefícios?

Agradecimentos

Se VOCÊ realmente não vê a diferença, precisa urgentemente jogar fora o terminal antigo. Infelizmente, o terminal antigo o ensinou a escrever códigos muito perigosos - você está acostumado a escrever códigos SEM VERIFICAÇÕES para retornar erros.

 
Vladimir Karputov:

Se VOCÊ realmente não vê a diferença, precisa urgentemente jogar fora o terminal antigo. O terminal antigo o afeta muito. Infelizmente, o terminal antigo o ensinou a escrever códigos muito perigosos - você está acostumado a escrever códigos SEM VERIFICAÇÕES para retornar erros.

Não foi uma crítica à sua postagem, de forma alguma, foi mais uma pergunta sobre por que isso é feito para que eu aprenda - meu conhecimento de programação é muito limitado.

 
emargrie :

Não foi uma crítica à sua postagem, de forma alguma, foi mais uma pergunta sobre por que isso é feito para que eu aprenda - meu conhecimento de programação é muito limitado.

Já expliquei: você não pode escrever um código que não verifique o retorno de erros.

 
Vladimir Karputov:

Já expliquei: você não pode escrever um código que não verifique os retornos de erro.

Agradecimentos
 

Oi Vladimir

este é um artigo bem escrito, bom trabalho

Saudações, Paul

 
Paul Anscombe:

Oi Vladimir

este é um artigo bem escrito, bom trabalho

Saudações, Paul

Agradecimentos