Erros, bugs, perguntas - página 2809

 
TheXpert:

Por outras palavras: não há acesso interno (por defeito), mas há acesso externo. Mas para poder utilizá-lo, é necessário especificá-lo explicitamente. Isto faz sentido para mim

 
Erro de compilação:
template<typename T> class A {};
class B {
template<typename T> void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //Error: 'f' - member function already defined with different parameters

mas de resto:

template<typename T> class A {};
class B {
template<typename T> void f( A<T>& ) {} //нормально
};

muito bem. Que diferença é que isso faz?

template<typename T> class A {};
template<typename T>
class B {
                     void f( A<T>& );
};
template<typename T>
void B::f( A<T>& ) {} //нормально

também não há problema. E o principal é que antes (na construção de 2085) tudo era compilado normalmente - sem erros!

 

Boa tarde, caros peritos!

Pode dizer-me se é possível definir um ponto de paragem para desencadear num determinado momento (numa determinada barra) durante a depuração? Isto é, quero que a história seja encaminhada para um determinado lugar, e nesse lugar um ponto de ruptura seria desencadeado, e eu seria capaz de passar pelo depurador do bar de que preciso.

 

Iniciou um EA no testador, a rede. Não tenho lidado muito com Limites, a minha pergunta é sobre BuyLimit, com inversão de posição.
Deslizam realmente para o lado melhor ou depende do corretor? Ou é a coisa errada no provador?

E por alguma razão, a linha de posição de Venda não terminou no limite de derrubada, mas foi mais além da borda do ecrã.


 
1.Existe um comando "DatabaseImport", na documentação para a explicação dos parâmetros não existem estas mesmas bandeiras. Testado tanto "0" como parâmetros da DatabaseExport, a compilação vai, mas na execução retorna erro 5131. Não existe tal erro na documentação. Alguém sabe do que se trata este erro? O que há de errado com a linha;
DatabaseImport(db,"hist",FilenameHist,DATABASE_IMPORT_HEADER | DATABASE_IMPORT_CRLF | DATABASE_IMPORT_APPEND,";",0,"");
?
2. Porque é que a linha
         i=DatabaseExport(db,"select * from hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
obras e
i=DatabaseExport(db,"hist",FilenameHist,DATABASE_EXPORT_HEADER | DATABASE_EXPORT_CRLF | DATABASE_EXPORT_APPEND,";");
não? Com o que diz a documentação
long  DatabaseExport( 
   int           database,           // хендл базы данных, полученный в DatabaseOpen 
   const string  table_or_sql,       // 




имя таблицы  или SQL-запрос 
   const string  filename,           // имя CSV-файла для экспорта данных 
   uint          flags,              // комбинация флагов 
   const string  separator           // разделитель данных в CSV-файле 
   );
 

ou seja, o nome da mesa também deve ser reconhecido! O que é que está errado?


w.s. Gentlemen developers what tenth eye should guess that the table where the import will be done should not exist? E porque é que precisa de exportar a importação se a pasta na qual pode savemql5/files é limpa no arranque? Como se pode trabalhar com um ficheiro permanente? Ou é sempre necessário começar pela depuração e ter tempo para adicionar o ficheiro necessário antes da inicialização? O que é ....
 
AlexInRush:

Boa tarde, caros peritos!

Pode dizer-me se é possível definir um ponto de paragem para desencadear num determinado momento (numa determinada barra) durante a depuração? Isto é, quero que a história seja encaminhada para um determinado lugar, e nesse lugar um ponto de ruptura seria desencadeado, e eu seria capaz de passar pelo depurador do bar de que preciso.

No testador de estratégias, logo após a sua execução, faz-se uma pausa e depois há um campo do lado direito chamado "Scroll to". O campo mais à direita é onde se introduz a hora para a qual se quer correr. Como resultado, pára no momento em que precisa, e depois coloca um ponto de interrupção no código e mantém o seu registo.
 
Alexandr Koptelov:
1.Existe um comando "DatabaseImport", na documentação para a explicação dos parâmetros não existem estas mesmas bandeiras. Testado tanto "0" como parâmetros da DatabaseExport, a compilação vai, mas na execução retorna um erro 5131. Não existe tal erro na documentação. Alguém sabe do que se trata este erro? O que há de errado com a linha; ?
2. Porque é que a linha funciona e não funciona? Com o que diz a documentação

ou seja, o nome da mesa também deve ser reconhecido! O que é que está errado?


s.w. Gentlemen developers what tenth eye should guess that the table where the import will be performed should not exist?? E porque é que precisa de importar para exportação se a pasta na qual pode guardar os arquivosé limpa no arranque? Como se pode trabalhar com um ficheiro permanente? Ou é sempre necessário começar pela depuração e ter tempo para adicionar o ficheiro necessário antes da inicialização? O que é ....

Trabalhar num aparelho de teste ou depurador com a base colocada numa pasta partilhada.

 
AlexInRush:

Boa tarde, caros peritos!

Pode dizer-me se é possível definir um ponto de paragem para desencadear num determinado momento (numa determinada barra) durante a depuração? Isto é, quero que a história esteja activa até um certo lugar e depois um ponto de ruptura deve desencadear nesse lugar, para poder passar pelo depurador no bar de que preciso.

Definir a condição

if(TimeCurrent() == nnnTime)
  DebugBreak();
e iniciar a depuração. Assim que o tempo atingir o tempo especificado, a depuração irá parar e depois de todas as manipulações pressionar Shift+F11 para continuar o testador.
 

Não há forma de permitir a impressão em modo de optimização? A opção "Full optimisation logs" está activada, mas apenas Imprimir a partir do OnInit entra nos logs, enquanto eu preciso dela a partir do OnTester, por exemplo.

 
Erro de compilação
#define  MACRO( X ) aaa##X = X
#define  bbb  5
void OnStart()
{
    int MACRO(         bbb );
    printf( "%d",   aaabbb ); //Error: 'aaabbb' - undeclared identifier
}

E em C++ está OK. ## tem maior prioridade - bbb é substituído primeiro, e depois bbb é substituído por 5, o que não é como deveria acabar:

    int aaa5 = 5; //неправильно (*)

É assim que deve ser:

    int aaabbb = 5; //правильно (**)

Devido a este erro, uma operação de rotina não pode ser substituída por uma macro. (*) pode ser obtido por outra forma de registo se necessário, mas (**) não pode ser obtido em MQL de forma alguma