Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1793

 
Nerd Trader #:
Sim, de fato até 8 peças, mas o gráfico não mostra que o preço é 0 não importa, a linha ainda se apega ao cursor (segue-o)

Não use ObjectDelete porque a linha foge para "0" todas as vezes

melhor
      ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
      ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
 
MakarFX #:

Não use ObjectDelete porque a linha foge para "0" todas as vezes

melhor
Eu tenho a opção de renomear e sim, funciona. No caso do ObjectDelete() então por que as linhas verde e vermelha são criadas em uma instância e não cintilam? E a linha amarela (Stop Loss) se já existe porque prolifera infinitamente quando está abaixo de Bid?
 

0 significa falso. Qualquer coisa que não seja 0 éverdade. Mas alguém já pensou na legibilidade de tal código, onde todos os tipos de condições são misturados?

if(!ObjectFind("Buy Stop"))

Não é um valor booleano. Mas pode ser facilmente transformado em um booleano:

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
if (!objectExist(0, "Buy stop"))
  Print("Error! Object not found.")

Portanto, o principal é ter a abordagem correta para a escrita de códigos. Então vocênunca terá tais problemas.

 
Nerd Trader #:
Eu tenho a opção de renomear e sim, funciona. No caso do ObjectDelete() por que as linhas verde e vermelha são criadas em uma instância e não piscam? E a linha amarela, se já tem uma, por que continua se multiplicando infinitamente?

Estas linhas estão sob seu controle.

if(id==CHARTEVENT_OBJECT_CLICK){

E as linhas que piscam reagem a qualquer OnChartEvent, porque

if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE))
 
Mihail Matkovskij #:

0 significa falso. Qualquer coisa que não seja 0 éverdade. Mas alguém já pensou na legibilidade de tal código, onde todos os tipos de condições são misturados?

Não é um valor booleano. Mas pode ser facilmente transformado em um booleano:

Portanto, o principal é ter a abordagem correta para a escrita de códigos. Então vocênunca terá tais problemas.

return(ObjectFind(_chartID, _name) >= 0)

E se o objeto for "0" na janela principal, ele retornará falso?

 
MakarFX #:

E as linhas que piscam reagem a qualquer OnChartEvent, porque.

Eu lhe disse: Botão pressionado - criar linha, botão liberado - apagar (o mesmo com outros tipos de objetos que podem ser ligados). Mas ele disse: não é nada, eu farei tudo "normalmente". :)

 
Nerd Trader #:

E se o objeto for "0" na janela principal, ele retornará falso?

Isso é o que pode derrotar sua relutância em ler a documentação!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Valor de retorno

Se bem sucedida, a função retorna o número da subjanela (0 significa janela do gráfico principal) onde o objeto encontrado está localizado. Se nenhum objeto for encontrado, a função retorna um número negativo. Para obter mais informações sobreo erro, ligue para a funçãoGetLastError().

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

Estas linhas estão sob seu controle.

E as linhas que piscam reagem a qualquer OnChartEvent, porque

bem como a linha verde, em geral todas as linhas também reagem ao movimento do cursor. Acabei de perceber que as três linhas são criadas na área de spread porque a linha amarela "Sell Stop" tem a condição se(preço > Perguntar) para a linha verde "Buy Stop" (preço < Lance) e para a linha cinza "not allowed"(preço > Lance && preço < Perguntar )
 
Nerd Trader #:

E se o objeto for "0" na janela principal, será que ele retornará falso?

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
 
Mihail Matkovskij #:

Eu lhe disse: Botão pressionado - criar linha, botão liberado - apagar (o mesmo com outros tipos de objetos que podem ser afixados). Mas ele disse: não é nada, eu farei isso corretamente. :)

Você quer dizer a mudança de cor via propriedade? Tenho essa opção, preciso entender porque não funciona.

Mihail Matkovskij #:

Aqui está algo que pode derrotar sua relutância em ler a documentação?!

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

Então, o que está errado quando o objeto na janela principal é "0", sua função retornará falsa? Explicar o ponto com >= 0... ou igual a zero