[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 405
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
1. ¿Por qué iba a ocurrir de repente? Sólo tenemos que añadir otra cosa, que la función devuelve algún valor más, lo que significaría, "Sin precio". Parece lógico. Cuando estaba lanzando la función, estaba pensando más en la lógica previa, entonces no me fijé en su final. Y por qué la función 0 devolverá 0 por sí misma no entiendo algo...
2. ¿Para qué necesito Ask (si hablamos específicamente del precio de compra), si siempre puedo utilizar MarketInfo(fs_symbol, MODE_ASK)? Al fin y al cabo, si lo miras así, remitiéndote a Ask, no puedes estar seguro de que sea preciso en un momento dado...
1. Simple. La función se declara como doble, por lo que cuando se llama, devolverá doble independientemente de si llama a return o no. Si añadimos algo más... pero aún no tenemos esto más.
2. Si te da igual pulsar 3 teclas o 30, no necesitas estos Bid y Ask. Si el Asesor Experto no hace cálculos largos, no pasa nada, es conveniente utilizar el Bid y el Ask. Si realiza cálculos largos, puede utilizar RefreshRates(). Hay varias formas de hacerlo.
A mi entender, esto no es lo que necesitamos. Y necesitamos los últimos precios del servidor Ask y Bid, no los del terminal local. ¿Verdad?
Por eso inicié la discusión aquí, para entender de una vez por todas cómo organizarlo de forma más lógica y correcta. Pues en teoría esto es correcto, pero en la práctica...
El servidor está en algún lugar, y se nos da un terminal para contactar con el servidor. Si hay conexión, el último precio en el terminal corresponderá al último precio en el servidor. Si no hay conexión, entonces no importa en absoluto los precios.
1. Simple. La función está declarada como doble, por lo que devolverá doble cuando sea llamada, independientemente de que se haya llamado a return en ella. Si se añade algo más... ...pero que aún no está ahí.
2. Si te da igual pulsar 3 teclas o 30, no necesitas estos Bid y Ask. Si el Asesor Experto no hace cálculos largos, no pasa nada, es conveniente utilizar el Bid y el Ask. Si realiza cálculos largos, puede utilizar RefreshRates(). Todo puede hacerse de varias maneras.
1. Sí, es que estoy saturado de trabajo, así que habré escrito una tontería...
2. Largo es un término relativo. ¿Sugiere que midamos la velocidad del cálculo medio?
El servidor está ahí fuera, en algún lugar, y se nos da un terminal para contactar con el servidor. Si hay conexión, el último precio en el terminal corresponderá al último precio en el servidor. Si no hay conexión, no importa el precio que haya en el servidor.
Si asumimos, como has escrito, que el último valor de los datos variables del mercado (en nuestro caso, el precio ) corresponde al último valor del servidor, entonces significa que el terminal actualiza las variables del entorno del mercado si tiene conexión con el servidor. Pero no es así, porque esta función existe y significa que los precios no se actualizan todo el tiempo, ¿verdad?
No estoy discutiendo, estoy preguntando, argumentando mi punto de vista. Tenga en cuenta que...
Si asumimos, como has escrito, que el terminal tiene el último valor de la variable de datos de mercado, en nuestro caso el precio, correspondiente al último valor del servidor, entonces significa que el terminal actualiza las variables de entorno de mercado por sí mismo si hay una conexión con el servidor, lo que significa que la función RefreshRates() no es necesaria. Pero no es así, porque esta función existe y significa que los precios no se actualizan todo el tiempo, ¿verdad?
No estoy discutiendo, estoy preguntando, argumentando mi punto de vista. Tenga en cuenta que...
Si llegan nuevos ticks durante los cálculos en el EA (cuando se ejecuta la función start()), el EA no los conocerá (ticks). RefreshRates() permite utilizar los últimos precios actualizados, pero esta función no accede al servidor. Actualiza el entorno de mercado que conoce el terminal. Ninguna de las funciones, excepto la de comercio, accede al servidor
Si llegan nuevos ticks durante los cálculos en el EA (cuando se ejecuta la función start()), el EA no los conocerá (ticks). RefreshRates() permite utilizar los últimos precios actualizados, pero esta función no accede al servidor. Actualiza el entorno de mercado que conoce el terminal. Ninguna de las funciones, excepto las de comercio, accede al servidor.
Por lo tanto, si la solicitud es local y no al servidor, esta función debería funcionar al instante. Como ya se ha dicho, la función RefreshRates() puede no tener tiempo de actualizar los datos del entorno del mercado...
Por lo tanto, si la solicitud es local y no al servidor, esta función debería funcionar al instante. Y arriba se dijo que la función RefreshRates() puede no tener tiempo para refrescar los datos del entorno del mercado...
Sí funciona. Y lo refresca si hay algo que refrescar. Pero si no hay ninguna garrapata nueva, no hay nada que actualizar.
Y se solucionará. Y lo refresca si hay algo que refrescar. Pero si no hay una nueva garrapata, no hay nada que actualizar.
Así que si no hay un nuevo tick, el precio no cambiará... y por supuesto los precios anteriores seguirán siendo válidos. Así que no hay necesidad de complicar las cosas.
Y Vadim escribió en la parte superior que era necesario comprobar este punto. Pero no había lógica en sus palabras, ni tampoco argumentación. Es extraño... Entonces, inserto RefreshRates() en todas partes y en ese momento los últimos datos conocidos del terminal pasan a ser utilizables en lugar de los anteriores y todo va como debería. Siempre queRefreshRates() devuelva TRU. Si es Falso, significa que los datos no han cambiado y funciona con los precios anteriores... ¿Estoy razonando correctamente?
Así que no hace falta que me moleste. Basta con llamar aRefreshRates() y funcionará con datos reales...