Erros, bugs, perguntas - página 304

 
Yedelkin:

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

//function linfunc
double 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

';' - 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

 
Yedelkin:

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...

 
Yedelkin:

Aceito esta função de MQL5 Reference / Language Basics / Functions

Mas o compilador imprime "(' - espera-se ponto-e-vírgula

O que significa isto?

Fixámos a carta no exemplo, mas não conseguimos obter este erro exacto. Pode fornecer o código completo para que o possamos reproduzir?
 
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?
void OnStart()
  {
   double                       // тип возвращаемого значения
   linfunc (double a, double b)  // имя функции и список параметров
     {
                               // составной оператор
      return (a + b);           // возвращаемое значение
     }
  }
Reproduz-se de alguma forma como isto.
 
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.

 
Rosh:

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 ...

 
Ashes:

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:

LE      0       5.0.6.84        14:51:19        login (build 392)
HN      2       Tester  14:51:20        initial synchronization error
JF      2       5.0.6.84        14:51:20        send error 10038
LJ      0       Tester  14:51:20        tester agent shutdown
KO      0       5.0.6.84        15:25:41        login (build 392)
HD      2       Tester  15:25:42        initial synchronization error
NM      0       Tester  15:25:42        tester agent shutdown
HM      0       127.0.0.1       15:36:37        login (build 392)
FK      0       Network 15:36:38        2548 bytes of optimization passes loaded
HM      0       Network 15:36:38        16 bytes of input parameters loaded
HE      0       Network 15:36:38        3788 bytes of group info loaded
GP      0       Network 15:36:38        3358 bytes of tester parameters loaded
HG      0       Network 15:36:38        2948 bytes of input parameters loaded
KL      0       Network 15:36:38        671 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:38        146 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 from 2009.01.02 to 2011.01.31
KK      0       History 15:36:42        EURUSD: contains 366322 M1 records of beginning data from 2009.01.02 10:00 to 2009.12.31 18: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 from 2009.01.02 10: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 from 2010.01.01 00:00 to 2011.01.01 00: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:42        2010.01.01 00:00:00   CSignalCrossEMA::ValidationSettings: period of slow EMA must be greater than period of fast EMA
RF      0       ExpCrossEMA (EURUSD,M5) 15:36:42        2010.01.01 00:00:00   OnInit: error signal parameters
DM      2       Tester  15:36:42        tester stopped because OnInit failed
FG      0       Network 15:36:42        16 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 from 2010.01.01 00:00 to 2011.01.01 00: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.

Qual poderia ser a razão?