MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 46

 
El 540 está fuera...
 
VOLDEMAR:
Chicos, si tenéis un minuto, enviadme la instalación web de la última versión, gracias.


Aquí está el 540.

desde C:\Nsers\XXXXX\AppData\Roaming

 
ENUM_TIMEFRAMES le da la opción de la masa de marcos de tiempo, ¿funcionarán todos los marcos de tiempo o sólo los marcos de tiempo estándar de mt4 ????
 

Después de actualizar a 540. El ME está perdido. El terminal se inicia con el interruptor /portable. ME también debería empezar con el interruptor /portable. Desde el terminal ME no se inicia con F4:


La captura de pantalla abre el directorio de datos desde el terminal. Es correcto y el editor está en su sitio.

Tras reiniciar el terminal, se abre ME pulsando F4 en el terminal.

Es interesante cómo funciona esto:

  1. La terminal no puede ver la actualización. Reiniciando la terminal. 1.
  2. La terminal dice que la actualización se ha descargado. Reiniciando la terminal. 2.
  3. El terminal se carga y pide hacer cambios. Lo permito. El terminal se reinicia solo. 3.
  4. Después de un reinicio automático, el terminal se olvida de su configuración y se abre con una configuración aleatoria - sin ventanas, indicadores y plantillas anteriores. Reiniciando la terminal. 4.
  5. Después de reiniciar, el terminal "recuerda" su antigua configuración: abre los gráficos necesarios con indicadores y plantillas, pero ... el terminal "pierde" al editor y escribe en el diario que no se encuentra. Reinicio el terminal. 5.
  6. El terminal se carga y ahora todo está bien: mis gráficos, mi configuración, mis plantillas, mis indicadores. ME se encuentra y se ejecuta. 6.
Un total de seis reinicios del terminal para actualizar y continuar en el mismo modo.
 
artmedia70:

Después de actualizar a 540. El ME está perdido. El terminal se inicia con el interruptor /portable. ME también debería empezar con el interruptor /portable. Desde el terminal ME no se inicia con F4:


Gracias por preguntar, lo comprobaremos.
 
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);

Inundado de mensajes

 

Me disculpo aquí... ¿Qué significa el aviso de que no todas las rutas de control devuelven un valor?

Porque tales barnices aparecieron al compilar en esta beta, y qué y sobre qué, no entiendo.

Gracias.

 
St0nE:

Me disculpo aquí... ¿Qué significa el aviso de que no todas las rutas de control devuelven un valor?

Porque tales barnices aparecieron al compilar en esta beta, y qué y sobre qué, no entiendo.

Gracias.

algunas variantes en las que podría ejecutarse el algoritmo del código podrían no devolver un valor.

Por ejemplo, tiene una función Switch () pero no hay opción en default: donde debería estar return().

 

Gracias por la respuesta, puedes revisar un trozo de código en el que pueda haber ese fallo, no consigo dar con él...

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:

Gracias por la respuesta, puedes revisar un trozo de código en el que pueda haber ese fallo, no consigo dar con él...

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() где?)
}