Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 244

 
forexman77:
Puedes decirme si hay alguna otra forma rápida de obtener el precio actual además de "SymbolInfoTick". ¿Tal vez haya una forma más rápida de obtener la cotización actual?

Se puede utilizarSymbolInfoDouble

con los identificadoresSYMBOL_BID ySYMBOL_ASK.

 
Fleder:

Se puede utilizarSymbolInfoDouble

con los identificadoresSYMBOL_BID ySYMBOL_ASK.

Gracias.

No está muy claro lo que se deduce de "SYMBOL_BID" (La oferta es la mejor oferta de venta). ¿Sigue siendo la cotización actual o el mejor precio del mercado de la copa ESN?

 
forexman77:

Gracias.

No está muy claro lo que se deduce de "SYMBOL_BID" (La oferta es la mejor oferta para vender). ¿Sigue siendo la cotización actual o el mejor precio del mercado de la copa ESN?

La cotización actual y el mejor precio en la copa del mercado ECN son la misma cosa.

 
Fleder:

La cotización actual y el mejor precio en el Muelle ECN son uno y el mismo.

En general, resulta que si utilizamos "SymbolInfoDouble" al consultar, puede que no se produzca una operación a este precio, es decir, es la Oferta actual.

Si utilizamos "SymbolInfoTick", entonces el precio estaba exactamente ahí, es decir, este es el precio actual al que se produjo la última operación, cuando se utiliza double last; // Precio actual de la última operación (Last)

 
forexman77:

En general, resulta que si utilizamos "SymbolInfoDouble" en la consulta, puede que no se produzca una operación a este precio, es decir, es la Oferta actual.

Si utilizamos "SymbolInfoTick", entonces el precio estaba definitivamente allí, es decir, es el precio actual en el que tuvo lugar la última transacción.

Nota

Si esta función se utiliza para obtener información sobre el último tick, es mejor utilizarSymbolInfoTick(). Es muy posible que no haya habido ninguna cotización para este símbolo desde el momento en que el terminal se conectó a la cuenta de operaciones. En este caso, el valor solicitado será indefinido.

SymbolInfoTick puede devolver un valor indefinido si no ha habido ningún tick desde que el terminal se conectó al servidor.

SymbolInfoDouble excluye esta situación.

 
Fleder:

Nota

Si la función se utiliza para obtener información sobre el último tick, es mejor utilizarSymbolInfoTick(). Es muy posible que no haya habido ninguna cotización para este símbolo desde que el terminal se conectó a la cuenta de trading. En este caso, el valor solicitado será indefinido.

SymbolInfoTick puede devolver un valor indefinido si no ha habido ningún tick desde que el EA se conectó al gráfico.

SymbolInfoDouble excluye esta situación.

Lo tengo. Gracias. Ahora lo único que hay que hacer es encontrar un ejemplo de código sencillo para comprobar cuánto tiempo tarda cada función cuando se llama?
 
forexman77:
Lo tengo. Gracias. Ahora sólo queda encontrar un ejemplo de código sencillo para comprobar cuánto tiempo se tarda en llamar a ambas funciones...
uint start=GetTickCount();
// здесь Ваш код вызова 
Print("Вызов прошёл за = ",GetTickCount()-start);
 
barabashkakvn:

Este truco probablemente no funcionará en esta situación.

Siempre habrá un subimpulso cero.

Las funcionesSymbolInfoTick ySymbolInfoDouble son demasiado rápidas: no superan las unidades de microsegundos.

 
Fleder:

Este truco probablemente no funcionará en esta situación.

Siempre habrá un subimpulso cero.

Las funcionesSymbolInfoTick ySymbolInfoDouble son demasiado rápidas: no superan las unidades de microsegundos.

Y lo que es más interesante, hay un código de ejemplo. Estamos esperando el resultado.
 
barabashkakvn:
Fleder:

Este truco probablemente no funcionará en esta situación.

Siempre habrá un subimpulso cero.

Las funcionesSymbolInfoTick ySymbolInfoDouble son demasiado rápidas: no superan las unidades de microsegundos.

En el guión, he creado esta pequeña cosa:

void OnStart()
  {
uint start=GetTickCount();
double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
Alert("ask=",ask);
uint time=GetTickCount()-start;
Alert("time=",time);
   
  }
//+------------------------------------------------------------------+

tiempo=0

SymbolInfoTick se comprobará el lunes.

Razón de la queja: