Si hace esto, y hay 7 líneas de este tipo en el código para siete pares, entonces la visión general del mercado sólo mostrará las cotizaciones de una moneda.
int bars=Bars(_Symbol,_Period);
if(bars>0)
{
Print("Количество баров в истории терминала по символу-периоду на данный момент = ",bars);
}
else//нет доступных баров
{
//--- видимо, данные по символу не синхронизированы с данными на сервереbool synchronized=false;
//--- счетчик циклаint attempts=0;
// сделаем 5 попыток дождаться синхронизацииwhile(attempts<5)
{
if(SeriesInfoInteger(Symbol(),0,SERIES_SYNCHRONIZED))
{
//--- есть синхронизация, выходим
synchronized=true;
break;
}
//--- увеличим счетчик
attempts++;
//--- подождем 10 миллисекунд до следующей итерацииSleep(10);
}
//--- вышли из цикла по факту синхронизацииif(synchronized)
{
Print("Количество баров в истории терминала по символу-периоду на данный момент = ",bars);
Print("Самая первая в истории терминала дата по символу-периоду на данный момент = ",
(datetime)SeriesInfoInteger(Symbol(),0,SERIES_FIRSTDATE));
Print("Самая первая дата в истории по символу на сервере = ",
(datetime)SeriesInfoInteger(Symbol(),0,SERIES_SERVER_FIRSTDATE));
}
//--- синхронизация данных так и не была достигнутаelse
{
Print("Не удалось получить количество баров на ",_Symbol);
}
}
Además, la referencia a los precios en OnTick debería ser (para que se carguen los caracteres de terceros).
Además, debería haber una referencia a los precios en OnTick (para que se carguen los caracteres de terceros).
Esto no resuelve el problema del original
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b) siempre se rellena con un valor cuando se utiliza correctamente. Por alguna razón el valor correcto del símbolo requerido no viene. Y parece que se rellena utilizando el valor anterior recibido, que es el valor de una de las otras siete monedas.
Si no hay solución, y esta solución la estoy buscando desde hace más de un mes, siento que es sólo un probador de errores. Los desarrolladores deben prestar atención a esto. Si se trata de un error, arréglalo
Pero cuando pruebo uno de mis indicadores multisímbolos, la lista de símbolos de la cadena de parámetros de entrada se carga en OnInit. Y se accede a sus precios en OnCalculate. Además, cuando configuro la carga de símbolos desde Market Watch, sólo aparece un símbolo básico en el probador.
Sé coherente. Si comprueba
entonces comprueba y
:)
Si hace esto, y hay siete líneas de este tipo en el código para siete pares, entonces el resumen del mercado sólo tendrá cotizaciones para una divisa.
Sé coherente. Si comprueba
entonces comprueba y
:)
Es mejor que sólo
euSY01b>0Si comprueba la sincronización, sólo funciona para una moneda. Necesito analizar 7 monedas a la vez.
Necesito hacerlo en OnInit()
Si comprueba la sincronización, sólo funciona para una moneda. Y tengo que analizar 7 monedas en un momento.
Como muleta, podrías intentar recordar la hora en la que el par se sincronizó por última vez y usarla como referencia.
Además, puede utilizar SymbolInfoTick() para la oferta y la demanda
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
Yury Lemeshev, 2022.01.02 08:54
Esto es más correcto que
euSY01b>0es como true == true, resultado: true. y false == true, resultado: false :)
este es exactamente el resultado que se obtiene si
o
Si hace esto, y hay 7 líneas de este tipo en el código para siete pares, entonces la visión general del mercado sólo mostrará las cotizaciones de una moneda.
intente llamar a Bars en OnTick
https://www.mql5.com/ru/docs/series/bars
del artículo:
Además, la referencia a los precios en OnTick debería ser (para que se carguen los caracteres de terceros).intente llamar a Bars en OnTick
https://www.mql5.com/ru/docs/series/bars
del artículo:
Además, debería haber una referencia a los precios en OnTick (para que se carguen los caracteres de terceros).Esto no resuelve el problema del original
SymbolInfoDouble(euSY06,SYMBOL_BID,euSY06b) siempre se rellena con un valor cuando se utiliza correctamente. Por alguna razón el valor correcto del símbolo requerido no viene. Y parece que se rellena utilizando el valor anterior recibido, que es el valor de una de las otras siete monedas.
Si no hay solución, y esta solución la estoy buscando desde hace más de un mes, siento que es sólo un probador de errores. Los desarrolladores deben prestar atención a esto. Si se trata de un error, arréglaloNecesito hacer en OnInit()
Pero cuando pruebo uno de mis indicadores multisímbolos, la lista de símbolos de la cadena de parámetros de entrada se carga en OnInit. Y se accede a sus precios en OnCalculate. Además, cuando configuro la carga de símbolos desde Market Watch, sólo aparece un símbolo básico en el probador.