Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 472

 
Pr0t0tip:

Ciao, ho il seguente problema. Il registro dà un OrderModify di 130 quando viene testato, aiutatemi a trovare una via d'uscita. Ecco il codice dell'EA:


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}' - non tutti i percorsi di controllo restituiscono un valore

evidenzia un tale errore nella funzione..... anche se restituisce un valore e funziona bene in un altro indicatore senza questo errore


 
Zver4991:

'}' - non tutti i percorsi di controllo restituiscono un valore

evidenzia un tale errore nella funzione..... anche se restituisce un valore e funziona bene in un altro indicatore senza questo errore



Aprite in un nuovo editor, evidenziate la prima parentesi e controllate l'ultima, vedrete tutto in una volta.
 

Potete dirmi se è possibile organizzare un'esecuzione passo dopo passo del programma in modalità debug? E aggiungere altre variabili per il monitoraggio

 
Zver4991:

'}' - non tutti i percorsi di controllo restituiscono un valore

la funzione..... anche se restituisce un valore e funziona bene in un altro indicatore senza questo errore


Questo è un messaggio che vi dice che ci sono opzioni di ramificazione nella funzione, quando potrebbe non restituire nulla. Per esempio:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

Il valore della variabile a sembra essere limitato nell'intervallo da 0 a 2, ma il compilatore lo considera ancora un errore.

Mettete return() con il valore di ritorno predefinito della funzione prima della parentesi di chiusura del corpo della funzione e tutto andrà bene:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

Questo vi dice che ci sono opzioni di ramificazione nella funzione quando potrebbe non restituire nulla. Per esempio:

Il valore della variabile a sembra essere limitato nell'intervallo da 0 a 2, ma il compilatore lo considera ancora un errore.

Mettete return() prima della parentesi di chiusura del corpo della funzione con il valore di ritorno predefinito della funzione e tutto sarà a posto:


E se a non è un tipo int?

tipo di funzione - valore di ritorno alla fine della funzione

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

Questo vi dice che ci sono opzioni di ramificazione nella funzione quando potrebbe non restituire nulla. Per esempio:

Il valore della variabile a sembra essere limitato a un intervallo da 0 a 2, ma il compilatore lo considera ancora un errore.

Mettete return() prima della parentesi di chiusura del corpo della funzione con il valore di ritorno predefinito della funzione e tutto sarà a posto:


grazie mille..... ha salvato i miei nervi
 
Vladon:


E se il tipo di una persona non è int?

il tipo di funzione è il risultato di ritorno alla fine della funzione


Di cosa si trattava? Ho solo fatto un esempio - la prima cosa che mi è venuta in mente. Avresti potuto scrivere una funzione che restituisse qualsiasi altro tipo di dati (tranne void)... Non cambia il punto.
 
artmedia70:
Di cosa si trattava? Ho solo fatto un esempio - la prima cosa che mi è venuta in mente. Avresti potuto scrivere una funzione che restituisse qualsiasi altro tipo di dati (tranne void)... Non cambia il punto.


Stavo solo chiarendo il tipo di dati. Questo è un ramo delle domande dei neofiti, quindi si aspettano lo stesso ritorno in qualsiasi funzione
 

Aiuto con gli insetti!

Ho deciso di fare un EA per me stesso sulla base di un esempio dal manuale mql4. Ci sto giocando da una settimana, ma mi dà sempre qualche tipo di errore.

Si prega di controllare cosa può essere sbagliato, forse qualcosa dovrebbe essere cambiato o rimosso oltre alle parentesi.

Errori:

'}' - fine inaspettata del programma expert.mq4 218 3

'{' - parentesi sbilanciate expert.mq4 23 2

File:
expert_1.mq4  9 kb
Motivazione: