Errores, fallos, preguntas - página 2

 
Interesting:

Funciona, probado en tres casas de bolsa (búsqueda de todos los instrumentos negociados en la casa de bolsa)

Pruébalo así

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
Para OnTick, esto es sólo un ejemplo.
 
ddd06:

Eso es lo que estoy diciendo: ¡la verdad no funciona!

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
Esta es la forma correcta de hacerlo. ya que está utilizando la función para la salida de la información
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
Esta es la forma correcta de hacerlo. ya que está utilizando una función para la salida de la información
Gracias, es que no los entendí, pero la pregunta sigue en pie:)
 
ddd06:
Gracias, es que no los entendí, pero la pregunta sigue en pie:)

En las cotizaciones reales (reales, de demostración y probablemente de licitación) este código funciona bien probado en 3 terminales (llamado durante la inicialización)

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

He mostrado 15 pares que están en revisión de mercado.


En la prueba normal sólo se consideran los símbolos especificados en los parámetros del probador (si se necesitan otros símbolos debe tomarse como falso y array de mis símbolos), en la optimización "todos los símbolos seleccionados ..." probablemente se mostrarán todos los símbolos (pero lo más probable es que se cambien uno por uno).


PS

Si su EA es multidivisa, debe tener su propia lista de símbolos en el probador y compararla con una lista de símbolos presentada en su empresa de corretaje.

 

Está bien, pero creo que es un descuido.

Gracias por haberlo resuelto.

Interesante lo del primer post, hasta ahora nadie ha contestado, tipo podría escribir - Lo arreglaremos en la próxima build.

 

No se devuelve el número de órdenes y operaciones en el historial:

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

cebado

Historial de pedidos

 
Urain:

No se devuelve el número de órdenes y operaciones en el historial:


Primero hay que cargar el historial utilizando la función:

HistorySelect(0,TimeCurrent())
 
Valmars:

Tengo que descargar el historial primero con la función:


Sí gracias, funciona, seguiré leyendo el manual :o)

No podía pensar que hay un flujo separado para el usuario y el EA,

Pensé que si el historial se muestra, significa que debe ser leído por el Asesor Experto,

Pero esto es más correcto - el terminal crea su propio espacio para los Asesores Expertos,

El terminal crea su propio espacio para los Asesores Expertos,

Esto es similar a lo que se implementó en mql-4 en forma de un buffer que se cargaba periódicamente con el historial.

 
Urain:

Sí gracias, todo funciona, seguiré leyendo el manual :o)

Es que no se me ocurre que haya una separación de hilos para usuario y EA,

Pensé que si el historial se muestra, significa que debe ser leído por un EA,

Pero esto es más correcto - el terminal crea su propio espacio para los Asesores Expertos,

la selección de la información se realiza en su propio formato y es mucho más rápida,

El análogo de eso fue implementado en mql-4 en forma de un buffer donde la historia era cargada periódicamente.


Por desgracia, el espacio para los scripts, los EA y el terminal es común. Puede asegurarse de ello si llama al historial del terminal para el último día (día) y luego ejecuta la función anterior desde el script o Asesor Experto. Y verás que el historial en el terminal también cambió a "Todo el historial". Creo que esto es un defecto del terminal. Imagínese que tiene varios scripts de Asesor Experto en ejecución, y que cada uno solicita su propio historial. El historial en el terminal rebotará (visualmente). Es necesario que la pestaña "Historial" muestre el estado actual independientemente de los Asesores Expertos.

Además, el historial en el terminal suele actualizarse con retraso, es decir, se ejecuta una operación, se cierra una posición pero no aparece en la pestaña "Historial". Una vez esperé a propósito hasta que se actualizara el historial. Se trata de minutos..... Nunca esperé. Sólo aparece después de ejecutar un comando contextual para solicitar el historial desde la pestaña "Historial" o un script que solicite el historial.

 
ddd06:

Está bien, pero creo que es un descuido.

Gracias por haberlo resuelto.

Es interesante, que con el primer post, todavía nadie respondió, pudieron escribir - Lo arreglaremos en la próxima compilación.

El fallo es que utiliza PrintFormat sin utilizar explícitamente la cadena de formato.

¿Qué deberíamos arreglar en la próxima versión?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5