MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 46

 
Il 540 è fuori...
 
VOLDEMAR:
Ragazzi, se avete un minuto, per favore mandatemi l'installazione web dell'ultima versione, grazie.


Ecco il 540.

da C:-Users\XXXXX\AppData\Roaming

 
ENUM_TIMEFRAMES ti dà la scelta del timeframe di massa, funzioneranno tutti i timeframe o solo quelli standard di mt4 ????
 

Dopo l'aggiornamento a 540. Il ME si è perso. Il terminale viene avviato con l'interruttore /portable. ME dovrebbe anche iniziare con l'interruttore /portable. Dal terminale ME non inizia con F4:


La schermata apre la directory dei dati dal terminale. È corretto e l'editore è al suo posto.

Dopo aver riavviato il terminale, ME si apre premendo F4 nel terminale.

Interessante come funziona:

  1. Il terminale non può vedere l'aggiornamento. Riavviare il terminale. 1.
  2. Il terminale dice che l'aggiornamento è stato scaricato. Riavviare il terminale. 2.
  3. Il terminale si carica e chiede di fare delle modifiche. Lo permetto. Il terminale si riavvia da solo. 3.
  4. Dopo il riavvio automatico, il terminale dimentica le sue impostazioni e si apre con una configurazione casuale - senza finestre, indicatori e modelli precedenti. Riavviare il terminale. 4.
  5. Dopo il riavvio, il terminale "richiama" le sue precedenti impostazioni: apre i grafici richiesti con indicatori e modelli, ma ... il terminale "perde" l'editore e scrive nel giornale che non si trova. Riavvio il terminale. 5.
  6. Il terminale si carica e ora tutto va bene - i miei grafici, le mie impostazioni, i miei modelli, i miei indicatori. ME viene trovato e corre. 6.
Un totale di sei riavvii del terminale per aggiornare e continuare nella stessa modalità.
 
artmedia70:

Dopo l'aggiornamento a 540. Il ME si è perso. Il terminale viene avviato con l'interruttore /portable. ME dovrebbe anche iniziare con l'interruttore /portable. Da terminale ME non inizia con F4:


Grazie per aver chiesto, controlleremo.
 
extern string     symbol        = ""  ;

void OnTick()
  {
string sy = sym();
double ask = MarketInfo(sy,MODE_ASK);
  }

string sym    ()
{ 
 string symm = symbol;
 if ( symm == "" ) 
 symm=Symbol () ;
 
 return (symm);

Inondato di messaggi

 

Mi scuso qui... Cosa significa l'avvertimento che non tutti i percorsi di controllo restituiscono un valore?

Perché tali macchie sono apparse durante la compilazione in questa beta, e cosa e su cosa, non lo capisco.

Grazie.

 
St0nE:

Mi scuso qui... Cosa significa l'avvertimento che non tutti i percorsi di controllo restituiscono un valore?

Perché tali macchie sono apparse durante la compilazione in questa beta, e cosa e su cosa, non lo capisco.

Grazie.

alcune varianti su cui l'algoritmo del codice potrebbe essere eseguito potrebbero non restituire un valore.

Per esempio, avete una funzione Switch () ma nessuna opzione a default: dove dovrebbe essere return().

 

Grazie per la risposta, puoi controllare un pezzo di codice dove potrebbe esserci questo bug, non riesco a capirlo...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
}
 
St0nE:

Grazie per la risposta, puoi controllare un pezzo di codice dove potrebbe esserci questo bug, non riesco a capirlo...

bool isDodgi(string TypeOrder, int NumBar) // 
{ 
  double Price1=0, Price2=0, Price3=0;

  if (TypeOrder=="BUY") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=Low[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=Low[NumBar];
    }
    if (((Price2-Price3)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  if (TypeOrder=="SELL") {
    if (Cut_Digits(Open[NumBar])==Cut_Digits(Close[NumBar])) {
      return(true);
    }
    if (Cut_Digits(Open[NumBar])>Cut_Digits(Close[NumBar])) {
      Price1=Open[NumBar];
      Price2=Close[NumBar];
      Price3=High[NumBar];
    }
    if (Cut_Digits(Close[NumBar])>Cut_Digits(Open[NumBar])) {
      Price1=Close[NumBar];
      Price2=Open[NumBar];
      Price3=High[NumBar];
    }
    if (((Price3-Price1)/(Price1-Price2))>=2) {
      return(true);
    }
  }
  ТУТ КОСяК ( return() где?)
}
Motivazione: