Erros, bugs, perguntas - página 2111

 
Vladimir Pastushak:

Tudo dentro dos limites normais...


Houve algo semelhante uma vez quando um indicador estava a ler dados de um ficheiro para uma matriz, mas agora não me consigo lembrar...

 

Criou uma encomenda à espera de

MQL5: Erro
Não processado, Início: 2018.01.24 16:17, #1940209

Versão terminal e modo bit

64 1755

Descrição do problema

Indicador de não descarregar,

Eu instalo indicador, indicador funciona, eu removo indicador, indicador é removido e não está na lista, mas funciona desenha objectos como se não tivesse sido removido, não está na lista.

Eu reabro o gráfico, funciona mesmo que o gráfico de outro símbolo.

Está a funcionar há cerca de 10 minutos, sem ciclos em loop, tudo está no intervalo normal, anexei o código...
 

Um erro de tempo de compilação

#define \
    MACRO
Além disso, esperava-se que as linhas de alimentação funcionassem em TODAS as directivas
 
Vladimir Pastushak:

Criou uma encomenda à espera de

MQL5: Erro
Não processado, Começou: 2018.01.24 16:17, #1940209

Versão terminal e modo bit

64 1755

Descrição do problema

Indicador de não descarregar,

Eu instalo indicador, indicador funciona, eu removo indicador, indicador é removido e não está na lista, mas funciona desenha objectos como se não tivesse sido removido, não está na lista.

Eu reabro o gráfico, funciona mesmo que o gráfico de outro instrumento.

Está a funcionar há cerca de 10 minutos, sem loops, tudo está no intervalo normal, anexei o código...

O mesmo problema

 
Evgeny Belyaev:

O mesmo problema


Recurssão?

 
Evgeny Belyaev:

O mesmo problema


IndicatorRelease();

 

Erro durante a compilação

int  TerminalInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

O anexo tem de ser compilado

Onde arranjei tais "espaços"? Há muitos deles aqui https://www.mql5.com/ru/docs/check/terminalinfointeger. Copiei o fragmento no Microsoft Edge com o meu rato

Документация по MQL5: Проверка состояния / TerminalInfoInteger
Документация по MQL5: Проверка состояния / TerminalInfoInteger
  • www.mql5.com
Проверка состояния / TerminalInfoInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Arquivos anexados:
Error157.mq5  1 kb
 

Realce macro confuso - independente do contexto

//вариант A
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
#undef   MACRO //4
#ifdef   MACRO //5
#endif

ou sempre presente (opção B) ou sempre ausente (opção A)

//вариант B
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
Esperava-se que se uma macro fosse definida numa determinada corda fosse realçada, se não estivesse definida não seria realçada. Caso contrário, não é claro o que significa a presença/ausência de destaque
 

Destacando ficheiros C2C++ no MetaEditor

https://www.mql5.com/ru/docs/basis/preprosessor/constant

Макрос __MQL5__  доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__.

Estas macros (e também __MQL__) não devem estar disponíveis quando se destacam ficheiros com extensões .c, cpp, .h

//Test.h
#ifndef __MQL__
#define  MACRO
#endif
//Test.mq5
#include "Test.h"
#ifdef  MACRO //не подсвечивается... нормально
#endif
//Test.cpp
#include "Test.h"
#ifdef  MACRO //не подсвечивается... но этот .cpp файл не предназначен для компиляции в MetaEditor,
             //а компилируется в С\С++, где макрос __MQL__ не является предопределенным
             //в результате подсвечивается то что не должно и наоборот не подсвечивается что должно
#endif

Este é um caso (como o anterior) em que o destaque incorrecto e enganador é muito pior do que a falta dele

Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
  • www.mql5.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression...
 

Encontrei-me repetidamente no fórum de utilizadores sobre a falta de uma macro predefinida semelhante a _WIN64. A resposta da administração foi que não há necessidade porque o MetaEditor gera código universal de 32-64 bits ao mesmo tempo.

Ao mesmo tempo, muitas pessoas utilizam o alinhamento https://www.mql5.com/ru/forum/225498/page2#comment_6401835, anexando os campos à estrutura

E de facto, se utilizar um .dll já pronto (que já não pode ser alterado), não pode prescindir de um alinhamento adicional. Mas em x86 e x64 esta adição pode parecer diferente, o que significa que o análogo _WIN64 ainda é necessário porque a estrutura é definida na fase de compilação do ficheiro .mq5 onde TerminalInfoInteger( TERMINAL_X64 ) não funciona

//Test.mq5
#ifdef _WIN64
#define  ALIGN (8-2) //добавить к элементу структуры 6 байт
#else
#define  ALING (4-2) //добавить к элементу структуры 2 байта
#endif

Agora temos de ter em mente a informação extra. Como resultado da poupança numa bagatela, existe o risco de se obter um erro elusivo

Передача структуры в dll C++
Передача структуры в dll C++
  • 2018.01.26
  • www.mql5.com
Пишу dll, которая будет выполнять логику, и собственно возник вопрос. Можно ли передавать в dll структуру данных? Т.е...