Ma il compilatore stampa '(' - il punto e virgola è atteso
Cosa significa?
Ho controllato usando l'esempio della modifica (sostituendo il primo parametro passato). Tutto è OK, non si sono verificati errori.
L'esempio di aiuto corretto assomiglia a questo
//function linfuncdouble linfunc(double a, double b)
{
return(a + b);
}
Ho potuto ottenere un messaggio come il tuo personalmente solo in un test, quando ho sostituito la prima parentesi graffa con una rotonda. Poi ho ricevuto questo messaggio
'(' - il punto e virgola è atteso
Se il numero di parentesi (destra e sinistra) non corrisponde, viene generato il seguente avviso
';' - token inaspettato '}' - il punto e virgola è previsto
PS
Se provo a compilare l'esempio attuale (con una "a" russa) il compilatore genera un errore come dovrebbe
Non inventare per gli altri cose che non ci sono :) Il simbolo è stato fissato subito nell'editor, come una cosa ovvia. L'errore si verifica quando il cursore è davanti alla parentesi di apertura, non prima del carattere 'a'. Essendo umanamente attento, avresti dovuto notarlo nel commento del compilatore citato.
Spiegazione. La domanda è sorta, non perché mi siedo e compilo stupidamente esempi dal libro di riferimento, ma perché questo messaggio di errore appare quando creo una funzione funzionante. Il riferimento all'esempio di riferimento non cambia nulla. Potete anche rimuovere la descrizione degli argomenti dall'intestazione - il problema persiste.
Sì, ha un errore, molto probabilmente non collegato a questo esempio....
Ma il compilatore stampa '(' - il punto e virgola è atteso
Cosa significa?
Abbiamo corretto la lettera nell'esempio, ma non siamo riusciti ad ottenere questo errore esatto. Puoi fornire il codice completo in modo da poterlo riprodurre?
Rosh: La lettera nell'esempio è stata corretta, ma questo è esattamente il tipo di errore che non potevamo ottenere. Puoi fornire il codice completo in modo da poterlo riprodurre?
Grazie a tutti per l'attenzione alla domanda! Il fatto è che non c'è un "codice completo" che possa avviare un errore. Ho appena deciso di controllare l'affermazione da un libro di testo C++ che il valore di una variabile esterna, che viene passata a una funzione come argomento, non può essere cambiato dalla funzione (o qualcosa del genere - beh, dal campo dell'auto-educazione). Ho creato una funzione primitiva per controllare - il compilatore genera un errore. Ho fatto riferimento al riferimento, ho copiato l'esempio, ho corretto il simbolo nell'esempio - ancora lo stesso errore. Ho provato a inserire la funzione in un modello di script e nel modello Expert Advisor, l'errore non cambia. Infatti, il "codice completo" consiste solo nella funzione dell'esempio, che è stata inserita nel corpo vuoto della funzione onTick() o onStart().
Posterò tale codice pseudo-completo in serata, ma non so se aiuta. Cercherò anche di sovraccaricare il computer, visto che è stato usato in modalità "vai a dormire e torna indietro" per una settimana.
Rosh: La lettera dell'esempio è stata corretta, ma non è stato possibile ottenere questo esatto errore. Puoi fornire il codice completo in modo da poterlo riprodurre?
voidOnStart()
{
double// тип возвращаемого значения
linfunc (double a, double b) // имя функции и список параметров
{
// составной операторreturn (a + b); // возвращаемое значение
}
}
Swan: In qualche modo questo viene riprodotto così.
Bene, state cercando di definire una funzione all'interno di un'altra - questo è inaccettabile. La sezione delle chiamate di funzione ve lo dice esplicitamente:
Una funzione può essere dichiarata o descritta ovunque nel programma globalmente, cioè fuori da altre funzioni. Una funzione non può essere dichiarata o descritta all'interno di un'altra funzione.
Bene, state cercando di definire una funzione all'interno di un'altra - questo è inaccettabile. La sezione delle chiamate di funzione lo dice esplicitamente:
Grazie per il chiarimento! Esattamente il mio caso.
La conoscenza teorica non garantisce la correttezza della sua applicazione nella pratica :) Errore mio.
Alcuni agenti non si avviano da remoto, ecco il log:
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
Anche se via localhost questo agente funziona localmente.
Prendo questa funzione da MQL5 Reference / Language Basics / Functions
Ma il compilatore stampa '(' - il punto e virgola è atteso
Cosa significa?
Ho controllato usando l'esempio della modifica (sostituendo il primo parametro passato). Tutto è OK, non si sono verificati errori.
L'esempio di aiuto corretto assomiglia a questo
Ho potuto ottenere un messaggio come il tuo personalmente solo in un test, quando ho sostituito la prima parentesi graffa con una rotonda. Poi ho ricevuto questo messaggio
'(' - il punto e virgola è atteso
Se il numero di parentesi (destra e sinistra) non corrisponde, viene generato il seguente avviso
';' - token inaspettato
'}' - il punto e virgola è previsto
PS
Se provo a compilare l'esempio attuale (con una "a" russa) il compilatore genera un errore come dovrebbe
'a' - identificatore non dichiarato
Non inventare per gli altri cose che non ci sono :) Il simbolo è stato fissato subito nell'editor, come una cosa ovvia. L'errore si verifica quando il cursore è davanti alla parentesi di apertura, non prima del carattere 'a'. Essendo umanamente attento, avresti dovuto notarlo nel commento del compilatore citato.
La domanda rimane: https://www.mql5.com/ru/forum/1111/page304#comment_48136
Spiegazione. La domanda è sorta, non perché mi siedo e compilo stupidamente esempi dal libro di riferimento, ma perché questo messaggio di errore appare quando creo una funzione funzionante. Il riferimento all'esempio di riferimento non cambia nulla. Potete anche rimuovere la descrizione degli argomenti dall'intestazione - il problema persiste.
Sì, ha un errore, molto probabilmente non collegato a questo esempio....
Devi guardare l'intero codice...
Prendo questa funzione da MQL5 Reference / Language Basics / Functions
Ma il compilatore stampa '(' - il punto e virgola è atteso
Cosa significa?
La lettera nell'esempio è stata corretta, ma questo è esattamente il tipo di errore che non potevamo ottenere. Puoi fornire il codice completo in modo da poterlo riprodurre?
Grazie a tutti per l'attenzione alla domanda! Il fatto è che non c'è un "codice completo" che possa avviare un errore. Ho appena deciso di controllare l'affermazione da un libro di testo C++ che il valore di una variabile esterna, che viene passata a una funzione come argomento, non può essere cambiato dalla funzione (o qualcosa del genere - beh, dal campo dell'auto-educazione). Ho creato una funzione primitiva per controllare - il compilatore genera un errore. Ho fatto riferimento al riferimento, ho copiato l'esempio, ho corretto il simbolo nell'esempio - ancora lo stesso errore. Ho provato a inserire la funzione in un modello di script e nel modello Expert Advisor, l'errore non cambia. Infatti, il "codice completo" consiste solo nella funzione dell'esempio, che è stata inserita nel corpo vuoto della funzione onTick() o onStart().
Posterò tale codice pseudo-completo in serata, ma non so se aiuta. Cercherò anche di sovraccaricare il computer, visto che è stato usato in modalità "vai a dormire e torna indietro" per una settimana.
La lettera dell'esempio è stata corretta, ma non è stato possibile ottenere questo esatto errore. Puoi fornire il codice completo in modo da poterlo riprodurre?
In qualche modo questo viene riprodotto così.
Bene, state cercando di definire una funzione all'interno di un'altra - questo è inaccettabile. La sezione delle chiamate di funzione ve lo dice esplicitamente:
Una funzione può essere dichiarata o descritta ovunque nel programma globalmente, cioè fuori da altre funzioni. Una funzione non può essere dichiarata o descritta all'interno di un'altra funzione.
Bene, state cercando di definire una funzione all'interno di un'altra - questo è inaccettabile. La sezione delle chiamate di funzione lo dice esplicitamente:
Grazie per il chiarimento! Esattamente il mio caso.
La conoscenza teorica non garantisce la correttezza della sua applicazione nella pratica :) Errore mio.
Costruire 392.
Quando si cancella un grafico, questo non appare nella lista dei cancellati. Risulta che la voce di menu File>Open Deleted non funziona.
Accidentalmente chiuso (invece di dispiegare) il grafico, sperando di vederlo in quelli cancellati, e poi ...
Costruire 392.
Quando si cancella un grafico, questo non appare nella lista dei cancellati. Risulta che la voce di menu File>Open Deleted non funziona.
Accidentalmente chiuso (invece di dispiegare) il grafico, sperando di vederlo in quelli cancellati, e poi ...
Spuntare la casella.
Alcuni agenti non si avviano da remoto, ecco il log:
Anche se via localhost questo agente funziona localmente.
Quale potrebbe essere la ragione?