Mas o compilador imprime "(' - espera-se ponto-e-vírgula
O que significa isto?
Verifiquei com o exemplo da edição (substituindo o primeiro parâmetro passado). Está tudo bem, não ocorreram erros.
O exemplo de ajuda correcto é o seguinte
//function linfuncdouble linfunc(double a, double b)
{
return(a + b);
}
Só consegui obter uma mensagem como a sua pessoalmente num único teste, quando substituí o primeiro parêntese de caracóis por um redondo. Depois recebi esta mensagem
"(' - espera-se ponto-e-vírgula
Se o número de parênteses (direita e esquerda) não corresponder, é gerado o seguinte aviso
Não invente coisas para outros que não estão lá :) O símbolo foi fixado de imediato no editor, como é óbvio. O erro ocorre quando o cursor está em frente do parêntese de abertura, e não antes do carácter 'a'. Estando humanamente atento, deveria tê-lo notado no comentário do compilador citado.
Explicação. A questão surgiu, não porque eu esteja sentado e a compilar estupidamente exemplos do livro de referência, mas porque esta mensagem de erro aparece quando crio uma função de trabalho. A referência ao exemplo a partir da referência não altera nada. Pode mesmo remover a descrição dos argumentos do cabeçalho - o problema persiste.
Sim ele tem um erro, provavelmente não relacionado com este exemplo....
Rosh: A carta do exemplo foi corrigida, mas esse é o erro exacto que não pudemos obter. Pode fornecer o código completo para que o possamos reproduzir?
Obrigado a todos pela vossa atenção para a pergunta! A questão é que não existe um "código completo" que possa iniciar um erro. Decidi apenas verificar a afirmação de um livro de texto C++ de que o valor de uma variável externa, que é passada para uma função como argumento, não pode ser alterado pela função (ou algo do género - bem, a partir do campo da auto-educação). Eu criei uma função primitiva para verificar - o compilador gera um erro. Referi-me à referência, copiei o exemplo, corrigi o símbolo no exemplo - ainda o mesmo erro. Tentei inserir a função num modelo de script e, no modelo do Expert Advisor, o erro não se altera. De facto, o "código completo" consiste apenas na função do exemplo, que foi inserida no corpo vazio da função onTick() ou onStart().
Vou afixar esse código pseudo-completo à noite, mas não sei se isso ajuda. Vou também tentar sobrecarregar o computador, uma vez que tem sido usado no modo "ir dormir e voltar" durante uma semana.
Rosh: A carta do exemplo foi corrigida, mas não foi possível obter este erro exacto. Pode fornecer o código completo para que o possamos reproduzir?
voidOnStart()
{
double// тип возвращаемого значения
linfunc (double a, double b) // имя функции и список параметров
{
// составной операторreturn (a + b); // возвращаемое значение
}
}
Swan: De alguma forma isto é reproduzido desta forma.
Bem, está a tentar definir uma função dentro de outra - isto é inaceitável. A secção de chamada de função diz-lhe isto explicitamente:
Uma função pode ser declarada ou descrita em qualquer parte do programa a nível global, ou seja, fora de outras funções. Uma função não pode ser declarada ou descrita dentro de outra função.
Alguns agentes não iniciam remotamente, aqui está o registo:
LE 05.0.6.8414:51:19 login (build 392)
HN 2 Tester 14:51:20 initial synchronization error
JF 25.0.6.8414:51:20 send error 10038
LJ 0 Tester 14:51:20 tester agent shutdown
KO 05.0.6.8415:25:41 login (build 392)
HD 2 Tester 15:25:42 initial synchronization error
NM 0 Tester 15:25:42 tester agent shutdown
HM 0127.0.0.115:36:37 login (build 392)
FK 0 Network 15:36:382548 bytes of optimization passes loaded
HM 0 Network 15:36:3816 bytes of input parameters loaded
HE 0 Network 15:36:383788 bytes of group info loaded
GP 0 Network 15:36:383358 bytes of tester parameters loaded
HG 0 Network 15:36:382948 bytes of input parameters loaded
KL 0 Network 15:36:38671 bytes of selected symbols loaded
CD 0 Tester 15:36:38 expert file added: Experts\MyExperts\ExpCrossEMA.ex5. 133395 bytes loaded
QS 0 Tester 15:36:38 initial deposit 5000.00 USD, leverage 1:100
PJ 0 Tester 15:36:38 successfully initialized
NP 0 Network 15:36:38146 Kb of total initialization data received
MG 0 Tester 15:36:38 optimization pass 393 started
LR 0 TesterAgent 15:36:38 Intel Core2 Duo E8200 @ 2.66 GHz, 2047 MB, PR49
DI 0 Symbols 15:36:40 EURUSD: symbol synchronized, 2904 bytes of symbol info received
QS 0 History 15:36:40 EURUSD: load 704 Kb of history data to synchronize
OF 0 History 15:36:40 EURUSD: history synchronized from2009.01.02 to 2011.01.31
KK 0 History 15:36:42 EURUSD: contains 366322 M1 records of beginning data from2009.01.0210:00 to 2009.12.3118:59
CH 0 History 15:36:42 EURUSD,M5: history cache reserved for estimated 150171 bars
JO 0 History 15:36:42 EURUSD,M5: history begins from2009.01.0210:00
NK 0 Tester 15:36:42 EURUSD,M5 (Alpari-Demo): every tick generating
KS 0 Tester 15:36:42 EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from2010.01.0100:00 to 2011.01.0100:00 started with inputs:
PN 0 Tester 15:36:42 Inp_Signal_CrossEMA_FastPeriod=30
GG 0 Tester 15:36:42 Inp_Signal_CrossEMA_SlowPeriod=18
DS 0 Tester 15:36:42 Inp_Expert_Title=ExpCrossEMA
MK 0 Tester 15:36:42 Inp_Money_FixLot_Percent=10
FM 0 Tester 15:36:42 Inp_Money_FixLot_Lots=0.1
GO 0 ExpCrossEMA (EURUSD,M5) 15:36:422010.01.0100:00:00 CSignalCrossEMA::ValidationSettings: period of slow EMA must be greater than period of fast EMA
RF 0 ExpCrossEMA (EURUSD,M5) 15:36:422010.01.0100:00:00 OnInit: error signal parameters
DM 2 Tester 15:36:42 tester stopped because OnInit failed
FG 0 Network 15:36:4216 bytes of tester parameters received
PR 0 Tester 15:36:42 optimization pass 1817 started
FK 0 Tester 15:36:42 initial deposit 5000.00 USD, leverage 1:100
FL 0 Tester 15:36:44 EURUSD,M5 (Alpari-Demo): every tick generating
GE 0 Tester 15:36:44 EURUSD,M5: testing of Experts\MyExperts\ExpCrossEMA.ex5 from2010.01.0100:00 to 2011.01.0100:00 started with inputs:
GE 0 Tester 15:36:44 Inp_Signal_CrossEMA_FastPeriod=28
KM 0 Tester 15:36:44 Inp_Signal_CrossEMA_SlowPeriod=49
DJ 0 Tester 15:36:44 Inp_Expert_Title=ExpCrossEMA
IM 0 Tester 15:36:44 Inp_Money_FixLot_Percent=10
RF 0 Tester 15:36:44 Inp_Money_FixLot_Lots=0.1
GO 0 Tester 15:36:45 output to log disabled
IO 0 Tester 15:37:10 OnTester result 0
Embora através do localhost este agente trabalhe localmente.
Aceito esta função de MQL5 Reference / Language Basics / Functions
Mas o compilador imprime "(' - espera-se ponto-e-vírgula
O que significa isto?
Verifiquei com o exemplo da edição (substituindo o primeiro parâmetro passado). Está tudo bem, não ocorreram erros.
O exemplo de ajuda correcto é o seguinte
Só consegui obter uma mensagem como a sua pessoalmente num único teste, quando substituí o primeiro parêntese de caracóis por um redondo. Depois recebi esta mensagem
"(' - espera-se ponto-e-vírgula
Se o número de parênteses (direita e esquerda) não corresponder, é gerado o seguinte aviso
';' - ficha inesperada
'}' - espera-se ponto-e-vírgula
PS
Se eu tentar compilar o exemplo actual (com um "a" russo) o compilador gera um erro como deveria
a' - identificador não declarado
Não invente coisas para outros que não estão lá :) O símbolo foi fixado de imediato no editor, como é óbvio. O erro ocorre quando o cursor está em frente do parêntese de abertura, e não antes do carácter 'a'. Estando humanamente atento, deveria tê-lo notado no comentário do compilador citado.
A questão mantém-se: https://www.mql5.com/ru/forum/1111/page304#comment_48136
Explicação. A questão surgiu, não porque eu esteja sentado e a compilar estupidamente exemplos do livro de referência, mas porque esta mensagem de erro aparece quando crio uma função de trabalho. A referência ao exemplo a partir da referência não altera nada. Pode mesmo remover a descrição dos argumentos do cabeçalho - o problema persiste.
Sim ele tem um erro, provavelmente não relacionado com este exemplo....
Tem de olhar para todo o código...
Aceito esta função de MQL5 Reference / Language Basics / Functions
Mas o compilador imprime "(' - espera-se ponto-e-vírgula
O que significa isto?
A carta do exemplo foi corrigida, mas esse é o erro exacto que não pudemos obter. Pode fornecer o código completo para que o possamos reproduzir?
Obrigado a todos pela vossa atenção para a pergunta! A questão é que não existe um "código completo" que possa iniciar um erro. Decidi apenas verificar a afirmação de um livro de texto C++ de que o valor de uma variável externa, que é passada para uma função como argumento, não pode ser alterado pela função (ou algo do género - bem, a partir do campo da auto-educação). Eu criei uma função primitiva para verificar - o compilador gera um erro. Referi-me à referência, copiei o exemplo, corrigi o símbolo no exemplo - ainda o mesmo erro. Tentei inserir a função num modelo de script e, no modelo do Expert Advisor, o erro não se altera. De facto, o "código completo" consiste apenas na função do exemplo, que foi inserida no corpo vazio da função onTick() ou onStart().
Vou afixar esse código pseudo-completo à noite, mas não sei se isso ajuda. Vou também tentar sobrecarregar o computador, uma vez que tem sido usado no modo "ir dormir e voltar" durante uma semana.
A carta do exemplo foi corrigida, mas não foi possível obter este erro exacto. Pode fornecer o código completo para que o possamos reproduzir?
De alguma forma isto é reproduzido desta forma.
Bem, está a tentar definir uma função dentro de outra - isto é inaceitável. A secção de chamada de função diz-lhe isto explicitamente:
Uma função pode ser declarada ou descrita em qualquer parte do programa a nível global, ou seja, fora de outras funções. Uma função não pode ser declarada ou descrita dentro de outra função.
Bem, está a tentar definir uma função dentro de outra - isto é inaceitável. A secção de chamada de função diz isto explicitamente:
Obrigado pelo esclarecimento! Exactamente o meu caso.
Os conhecimentos teóricos não garantem a correcção da sua aplicação na prática :) O meu erro.
Construir 392.
Ao apagar um gráfico, este não aparece na lista eliminada. Acontece que o item de menu Ficheiro>Abrir Apagado não funciona.
Acidentalmente fechado (em vez de desdobrar) o gráfico, esperando vê-lo nos apagados, e depois ...
Construir 392.
Ao apagar um gráfico, este não aparece na lista eliminada. Acontece que o item de menu Ficheiro>Abrir Apagado não funciona.
Acidentalmente fechado (em vez de desdobrar) o gráfico, esperando vê-lo nos apagados, e depois ...
Marcar a caixa.
Alguns agentes não iniciam remotamente, aqui está o registo:
Embora através do localhost este agente trabalhe localmente.
Qual poderia ser a razão?