Erros, bugs, perguntas - página 2333

 
Vladimir Pastushak:

bool file_exists=(bool)FileGetInteger(FileName,FILE_EXISTS);

Em qualquer caso, retorna verdadeiro se houver ficheiro ou não, e erro 5019 se não houver ficheiro. De acordo com a ajuda, deve retornar falso se não houver ficheiro.

bool file_exists=FileIsExist(FileName); Funciona correctamente

Decida qual a variante da função que pretende utilizar - https://www.mql5.com/ru/docs/files/filegetinteger


Документация по MQL5: Файловые операции / FileGetInteger
Документация по MQL5: Файловые операции / FileGetInteger
  • www.mql5.com
[in]  Идентификатор свойства файла. Значение может быть одним из значений перечисления ENUM_FILE_PROPERTY_INTEGER. Если используется второй вариант функции, то можно получать значения только следующих свойств: [in]  Указывает на местоположение файла. Если параметр равен false, то просматривается каталог данных терминала, в противном случае...
 
fxsaber:

Ficariaconfortável se uma macro fosse mencionada pelo menos uma vez algures em #define, #ifdef, #undef, etc. Mesmo que não esteja definido.

Isto porque tem muitos identificadores em maiúsculas, ao passo que existe uma regra não dita de que as maiúsculas são reservadas para macros (destaque de macros não em cor mas em letra de forma)

 
A100:

Isto porque tem muitos identificadores em maiúsculas, enquanto que existe uma regra não dita de que as maiúsculas são reservadas para macros (realce de macros não em cor mas em fonte)

Não. Conveniente porque a lógica é inequívoca.

 
fxsaber:

Não. Conveniente porque a lógica é inequívoca.

A minha lógica é simples: X antes de #define X ainda não é uma macro, e depois de #undef X já não é uma macro (respectivamente X é colorido apenas onde é uma macro)
 
A100:
A minha lógica é simples: X antes de #define X ainda não é uma macro e depois de #undef X já não é uma macro (respectivamente X é realçado apenas onde é uma macro)

Eu uso mqh, que não tem #define, mas tem #ifdef. O motivo pelo qual não devem ser destacados não é claro.

 
fxsaber:

Nunca tentei determinar por cor. Além disso, se tudo estiver em #ifdef, MQL4 e MQL5 podem ter subcores diferentes. A maneira mais fácil é fazer ALT+G no nome macro para ver se está lá ou não.

#define  PRICEST_TICK_PRICE //(1)
//...
#undef   PRICEST_TICK_PRICE //(2)
//...
void OnStart()
{
        int PRICEST_TICK_PRICE; //(3)
}

Quando na linha (3) carrego em ALT+G -> passar para a linha (1)

Pergunta: a macro está lá ou não?

 
A100:

Quando na linha (3), carrego em ALT+G para ir para a linha (1).

Pergunta: a macro está lá ou não?

Não compreendo os seus gemidos, para o dizer de forma suave. Eu sei como trabalhar com macros. Estou bem ciente do que significa ALT+G e de como uma macro pode ser desfeita através de #undef. Gosto do comportamento deste editor em particular.

A nerdiness é por vezes boa, mas não neste caso.

 
fxsaber:

Eu uso mqh, que não tem #define, mas tem #ifdef. O motivo pelo qual não devem ser destacados não é claro.

Se antes não há #define X, então X em #ifdef X - não é destacado (*) porque - aqui tudo é normal (pelo menos no MetaEditor)

Tenho apenas uma pergunta para os Desenvolvedores: porque é que no MetaEditor X é destacado em #define X, se antes não havia #define X, enquanto acontece acima em (*)

A sua pergunta era o oposto: porque é que X não é destacado no site

 

Que propriedade símbolo é responsável pela proibição de uma posição aberta SL/TP?


 
fxsaber:

Que propriedade símbolo é responsável pela proibição de uma posição aberta SL/TP?


Provavelmente mercado ou execução instantânea

Razão: