Perguntas de um "boneco" - página 97

 
Alfff:

Olá.

Poderia dizer-me, por favor, como estabelecer uma linha vertical num gráfico num determinado ponto?

Obrigado.

Referência MQL5 / Objectos gráficos

Referência MQL5 / Objectos Gráficos / ObjectCreate

MQL5Referência / Constantes, enumerações e estruturas padrão / Constantes de objectos / Tipos de objectos

Referência MQL5 / Objectos Gráficos / ObjectSetInteger

E assim por diante.

Cria-se um objecto e depois definem-se as suas propriedades.

É algo parecido com isto:

   if(ObjectFind(chid,name)==-1)
      ObjectCreate(chid,name,OBJ_VLINE,0,time,0);
   ObjectSetString(chid,name,OBJPROP_TOOLTIP,tool);
   ObjectSetInteger(chid,name,OBJPROP_COLOR,color_line);
   ObjectSetInteger(chid,name,OBJPROP_STYLE,style_line);
   ObjectSetInteger(chid,name,OBJPROP_BACK,true);
   ObjectSetInteger(chid,name,OBJPROP_SELECTED,false);
 
Urain:

Guia de Referência MQL5 / Objectos Gráficos

Referência MQL5 / Objectos Gráficos / ObjectCreate

MQL5Referência / Constantes, enumerações e estruturas padrão / Constantes de objectos / Tipos de objectos

Referência MQL5 / Objectos Gráficos / ObjectSetInteger

E assim por diante.

Criar um objecto, depois definir as suas propriedades.

Em algum lugar assim:

Obrigado.
 
if(ObjectFind(chid,name)==-1)
А что означает эта строчка?
 
erkov:

.... e é isso - não é claro.... método GetData devolve -1 ou >= 0 - (e eu preciso do preço de abertura da barra 5)

E o que é que queria obter? Veja a documentação:"Valor de retorno: >=0 - se bem sucedido, -1 - se não conseguiu obter dados".

Se "precisamos do valor do preço de abertura de barras #5", então este valor deve ser procurado na "matriz para colocar dados", ou seja, na matriz Open[] no seu caso.

...Ler Manual

 

Alfff:

if(ObjectFind(chid,name)==-1)
А что означает эта строчка?

Se o nome do objecto nomeado no gráfico do chid ainda não existe, então ...

Se já existir, simplesmente saltamos a criação do objecto e passamos directamente à modificação das definições.

 
Urain:

Se o nome do objecto nomeado no gráfico do chid ainda não existe, então ...

Se já existir, basta saltarmos a criação do objecto e passarmos directamente à modificação das definições.

Pequena nota: "Se o objecto não for encontrado, a função retorna um número negativo". Aparentemente, não devolve necessariamente "-1".

Como eu digo, "...Leia a Referência" :)

 
Yedelkin:

Uma pequena nota: "Se nenhum objecto for encontrado, a função devolve um número negativo". Aparentemente, não devolve necessariamente "-1".

Como eu digo, "...Leia a Referência" :)

É provavelmente melhor colocar

if(ObjectFind(chid,name)<0)

Embora tenha sempre funcionado.

 
Yedelkin:

O que é que queria obter? Ver a documentação:"Valor de retorno: >=0 - se bem sucedido, -1 - se não conseguiu obter dados".

Se "precisa do valor do preço de abertura de bar #5", então deve procurar este valor em "array para colocar dados", ou seja, em array Open[] no seu caso.

...Ler Referência

Obrigado pela vossa ajuda. Irei sem dúvida lê-lo...

 
erkov:

Obrigado por toda a sua ajuda. Não me esquecerei de o ler...

A abordagem geral à cópia de matriz pode ser encontrada nas descrições das funções Copy...(). Por exemplo, CopyBuffer().
 
erkov:
Pergunta 1. onde procurar (com tanto esforço) dados de preços abertos (em que lugar da matriz Open[])...????

Pergunta 2. Para o período de tempo D1 devemos declarar outra matriz e criar a nossa própria instância da classe (ou podemos fazer com uma)...????

Pergunta 1: TODAS as classes da Biblioteca Standard que fornecem acesso a dados indicadores e de séries cronológicas requerem "actualizá-los" (os dados) antes de os utilizar.

Escreva-o desta forma (numa versão simplificada):

iOpen.Refresh(-1);
iOpen.GetData(...);

Pergunta 2. a outra.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5