Qué actualiza RefreshRates()

 
Quería saber exactamente qué datos y series temporales actualiza RefreshRates() y cuándo se cumple?
 
Es una función tan secreta que los desarrolladores ni siquiera la conocen)).
 

No tengo paciencia para responder a esas preguntas.

RefreshRates

Осуществляет обновление данных в предопределенных переменных и массивах-таймсериях.


Y lo que son las variables predefinidas y las matrices de series temporales se puede encontrar en la documentación.

Предопределенные переменные - Справочник MQL4
Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
Предопределенные переменные - Справочник MQL4
 
Alexey Viktorov:

No tengo paciencia para responder a esas preguntas.


Y puedes leer sobre las variables predefinidas y las matrices de series temporales en la documentación.

Es decir, los datos de la función iClose() no se ven afectados por RefreshRates() de ninguna manera. Entonces, ¿cómo podemos hacer que la funcióniClose() emita información actualizada?

 
Mikhail Nazarenko:

Así que los datos de iClose() no se ven afectados por RefreshRates(). Entonces, ¿cómo puedo hacer que la funcióniClose() emita información actualizada?

¿Qué barra esiClose()?

 
Alexey Viktorov:

iClose() ¿qué barra?

Cero. Un marco temporal arbitrario.

 
Mikhail Nazarenko:

Cero. Un plazo arbitrario.

Sinceramente, estoy sorprendido... y eso es decir poco. Pensaba que iClose() obtiene los valores del servidor del broker, pero no... RefreshRates(); actualiza los valores obtenidos por iClose()

/********************Script program start function*******************/
void OnStart()
 {
  for(int i = 0; i < 10; i++)
   {
    Print(Bid, " *** ", iClose(_Symbol, PERIOD_CURRENT, 0));
    Sleep(1000);
    RefreshRates();// Без RefreshRates(); значения iClose(_Symbol, PERIOD_CURRENT, 0) не меняются…
                   // То, что без RefreshRates(); не меняются значения Bid, это понятно и нормально…
   }
 }/******************************************************************/

Este es el resultado de la ejecución del script

2021.02.15 11:39:35.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:34.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:33.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:32.559 00 EURUSD,M5: 1.21375 *** 1.21375
2021.02.15 11:39:31.559 00 EURUSD,M5: 1.2138 *** 1.2138
2021.02.15 11:39:30.559 00 EURUSD,M5: 1.21378 *** 1.21378
2021.02.15 11:39:29.559 00 EURUSD,M5: 1.21379 *** 1.21379
2021.02.15 11:39:28.559 00 EURUSD,M5: 1.21378 *** 1.21378
2021.02.15 11:39:27.559 00 EURUSD,M5: 1.21379 *** 1.21379
2021.02.15 11:39:26.559 00 EURUSD,M5: 1.21379 *** 1.21379

Bueno, vale... Tendré en cuenta esta característica e insertaré RefreshRates() si es necesario;


ps; Y iClose(_Symbol, PERIOD_CURRENT, 0) cambia en MT5.

 
Alexey Viktorov:

Francamente, estoy sorprendido... y eso es decir poco. Pensaba que iClose() obtenía los valores del servidor del broker, pero no... RefreshRates(); actualiza los valores recibidos por iClose()

Este es el resultado de la ejecución del script

Bueno, vale... Personalmente tendré en cuenta esta característica e insertaré RefreshRates() cuando sea necesario;

Si cambio el timeframe a otro que no sea el actual, los datos dejarán de refrescarse en el tiempo incluso con RefreshRates(). Así, iClose y otras funciones fundamentales en MT4 producen un sinsentido irrelevante. Estoy seguro de que el 80% de las infos no tienen en cuenta estas características únicas de MT4. ¿Cómo vivir?))

 
Alexey Viktorov:

Francamente, estoy sorprendido... y eso es decir poco. Pensaba que iClose() obtenía los valores del servidor del broker, pero no... RefreshRates(); actualiza los valores recibidos por iClose()

Este es el resultado de la ejecución del script

Bueno, vale... Tendré en cuenta esta característica e insertaré RefreshRates() si es necesario;


ps; Y iClose(_Symbol, PERIOD_CURRENT, 0) cambia en MT5.

Siempre los valores de iXXXXXX en cuádruple han salido correctamente. No se comprueba el resultado de la función. El cuarteto también lo requiere (por extraño que parezca a algunos partidarios de la simplicidad absoluta)
 
¿Cuál es la solución? ¿Más muletas? Por ejemplo, mantener un historial de ticks y recalcular todos los plazos en los EAs por su cuenta. Esto va más allá del bien y del mal).
 
Mikhail Nazarenko:
¿Cuál es la solución? ¿Más muletas? Por ejemplo, mantener un historial de ticks y recalcular todos los plazos en los EAs por su cuenta. Esto va más allá del bien y del mal))).
No, no lo es. ¿Qué dice la ayuda de la función sobre el valor de retorno?