Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 793

 
Vladimir Karputov:

п. 5. :)


  • Não precisa de alertas - basta imprimir().
  • É necessário peneirar os eventos até:
    • lparam
    • dparam
    • e sparam

Posso peneirar para fora. Mas a minha pergunta é sobre outra coisa.
Estou a tentar compreender (a minha cabeça não é apenas para usar um chapéu, certo?) se esta função funciona correctamente. É suposto ser assim, ou há algo de errado?

 
User_mt5:

Tentar obter uma chamada OnChartEvent com um clique do rato sobre um objecto.

...


Eis o que é passado para"CHARTEVENT_OBJECT_CLICK".

Evento

valor do parâmetro id

valor do parâmetro lparam

valor do parâmetro dparam

Parâmetro valor sparam

O evento de um clique do rato sobre um objecto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nome do objecto gráfico onde o evento ocorreu


Ou seja, precisa de apanhar id==CHARTEVENT_OBJECT_CLICK e sparam===nome do seu objecto.
 
Vladimir Karputov:

Eis o que é passado para"CHARTEVENT_OBJECT_CLICK".

Evento

Valor do parâmetro id

valor do parâmetro lparam

valor do parâmetro dparam

Parâmetro valor sparam

O evento de um clique do rato sobre um objecto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nome do objecto gráfico onde o evento ocorreu


Ou seja, precisa de apanhar id==CHARTEVENT_OBJECT_CLICK e sparam===nome do seu objecto.

Foi o que também pensei no início. Mas a corda dá o nome do objecto, que foi clicado. Portanto, parece ser um parâmetro de saída.
Ou estarei eu errado?

 
User_mt5:

Foi o que também pensei no início. Mas a corda produz o nome do objecto que foi clicado. Portanto, aparentemente, é afinal um parâmetro de saída.
Ou estarei eu errado?


Precisa de apanhar um clique sobre um objecto? Dei-vos uma dica sobre como acima.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Perguntas de Iniciantes MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2017.11.07 13:38


Eis o que é passado para"CHARTEVENT_OBJECT_CLICK".

Evento

Valor do parâmetro id

Valor do parâmetro lparam

valor do parâmetro dparam

Parâmetro valor sparam

O evento de um clique do rato sobre um objecto gráfico

CHARTEVENT_OBJECT_CLICK

Coordenada X

Coordenada Y

Nome do objecto gráfico onde o evento ocorreu


Ou seja, precisa de apanhar id==CHARTEVENT_OBJECT_CLICK e sparam===nome do seu objecto.

 

Sim, sim, acho que já o tenho.
A função em si é chamada por qualquer evento (tanto rato como teclado), e no seu interior é necessário filtrar o evento certo.
Obrigado.

 
User_mt5:

Sim, sim, acho que já o tenho.
A função é chamada em qualquer evento (rato e teclado), e no seu interior é necessário filtrar o evento certo.
Obrigado.


Existem vários eventos(tipos de eventos): clicar, criar, alterar propriedades ... Portanto, primeiro tem de peneirar os eventos por identificação, depois por sparam.


 
Vladimir Karputov:

Existem vários eventos(tipos de eventos): clicar, criar, alterar propriedades ... Portanto, primeiro tem de peneirar os eventos por identificação, depois por sparam.


Sim, obrigado. Por alguma razão, pensei, que é possível peneirar a um nível de chamada de função. E eu queria peneirar tudo por id, por isso coloquei id na chamada de função.
"Bem, louco, o que se pode aguentar!"))
E no interior, é claro, é fácil. Mais uma vez, obrigado.

 

Não quero criar um novo tópico para uma pequena questão, talvez os recém-chegados também o considerem útil para saber, como eu.

Em que momento é possível apresentar novas candidaturas para trabalhos freelance?

Se eu já usei os 10 ontem.

 

Alguém me pode dizer qual o caminho a seguir? O Excel tem novas funções "Forecasting Functions", etc. - por exemplo "PREPARTS.ETS", "PREPARTS.ETS.DOVINTERVAL".

Existe algo semelhante na MQL5? Isto é, matriz de dados de entrada - matriz de previsão de saída.

Para poder construir uma nova linha como na imagem do ecrã, linha branca no indicador inferior.

 

Amigos, ajudem um boneco. A ideia é a seguinte: Quando a variável "Ind" atinge um determinado nível, mudamos para esperar que o "Valor" mude de direcção enquanto esperamos que o "Ind" não seja verificado novamente.


   if(Ind[0]<=-0.7)
     {
      while(Value[3]>Value[2]<Value[1])
        {
         if(CopyBuffer(InpInd2_Handle,1,SignalBar,3,Value)<=0)
           {
            Recount=true;
            return;
           }
        }
      if(BuyPosOpen) BUY_Open=true;
     }


Qual é a forma correcta de o fazer??

Razão: