Errores, fallos, preguntas - página 245

 

¿Por casualidad la historia rebota?

¿Es siempre sólo en un símbolo o también en el GBPUSD?

¿Qué construcción? ¿Qué servidor?

 

El rebote de la historia es cosa del pasado,

No en todos los pares de divisas tanto en simbol1 como en simbol2,

Bild 370, cuenta demo (alpari-demo)


Me gustaría notar que sólo tengo un comerciante (de la captura de pantalla anterior) el rebasamiento es

Me gustaría notar que si dejo un indicador (en la captura de pantalla de arriba), el re-dibujo no se nota tanto,

puede volver a dibujarse varias veces.

Pensé que el ordenador podría ser lento, pero es lo mismo en un ordenador de 2 núcleos y el gráfico no se desplaza

Probablemente, está esperando el tiempo de inactividad o algo más...

¡Por la tarde en los seis núcleos se hará la prueba!

También quiero señalar que no ha pasado nada con otros pavos similares.

No puede ser por cálculos complicados. Y la plataforma giratoria es sencilla

y funciona a precios Open.

 
alexluek:

¡Ayuda! El indicador funciona bien, muestra y calcula todo, pero

cuando llega un nuevo tick, se reinicia y las líneas se vuelven a calcular.

A mí me ocurre esto regularmente con la pérdida de conexión. Tras la reconexión, el terminal vuelve a calcular los valores de los indicadores, lo que lleva tiempo. De referencia:

Hay que tener en cuenta la relación entre el valor devuelto por OnCalculate() y el segundo parámetro de entrada prev_calculado. El parámetro prev_calculado cuando se llama a la función contiene el valor devuelto por OnCalculate() en la llamada anterior. Esto permite economizar los algoritmos de cálculo del indicador personalizado para evitar cálculos repetidos para aquellas barras que no han cambiado desde la anterior llamada a esta función.

Para ello, suele bastar con devolver el valor del parámetro rates_total, que contiene el número de barras de la llamada a la función actual. Si desde la última llamada de OnCalculate() los datos del precio han cambiado (se ha bombeado un historial más profundo o se han llenado los espacios en blanco del historial), entonces el valor del parámetro de entrada prev_calculado será puesto a cero por el terminal.

No sé cuál es exactamente su situación, pero en mi caso me explico ese comportamiento como un "relleno de lagunas en la historia". ¿O tal vez su indicador funciona de manera ineficiente, recalculando todo el rango de valores a cada llegada de un tick?

 

No hubo pérdida de comunicación, ni sobrecarga de garrapatas, y cuanto más grande es la TF, más rara es.

Y el método de cálculo desde la fecha de inicio hasta la fecha de finalización (he descubierto que hay 3) sin

Probablemente ocurre (recalcula todas las barras), pero aún no es preciso y no sé cómo comprobarlo.

pero es sólo una idea - vamos a comprobarlo...

Tal vez haya otro enfoque para deshacerse de él...

 
alexluek:

No hubo pérdida de comunicación, ni sobrecarga de garrapatas, y cuanto más grande es la TF, más rara es.

Y el método de cálculo desde la fecha de inicio hasta la fecha de finalización (he descubierto que hay 3) sin

Probablemente ocurre (recalcula todas las barras), pero aún no es preciso y no sé cómo comprobarlo.

pero es sólo una idea - vamos a comprobarlo...

Tal vez haya otro enfoque para deshacerse de él...

Por supuesto, hay un enfoque. Si(prev_calculated==0), realizamos el cálculo inicial para todas las barras. Posteriormente, para cada nuevo tick (si 0 < prev_calculated < rates_total) hacemos cálculos como for(int i=prev_calculated-1;i<rates_total;i++) sólo para las últimas barras aparecidas.
 
Yedelkin:
Por supuesto, hay un enfoque. Si(prev_calculado==0), realizamos el cálculo inicial para todas las barras. Posteriormente, para cada nuevo tick (si 0 < prev_calculado < rates_total) realizamos cálculos del tipo for(int i=prev_calculado-1;i<rates_total;i++) sólo para las últimas barras aparecidas.
Buena idea: ¡probemos y respondemos! Gracias.
 

Quiero obtener el valor del timeframe del gráfico actual como una cadena. Lo escribo así:

ENUM_TIMEFRAMES period1=Period();
string periodStr;
periodStr=PeriodStr(period1);

El compilador me dice que 'PeriodStr' - la función no está definida...

¿Qué sentido tiene? Colegas, por favor, ayuda :-)

Existe una función de este tipo en la Ayuda:

PeriodStr

Convierte el valor de la enumeración ENUM_TIMEFRAMES en una cadena.

stringPeriodStr(
int val// valor
)

Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
Документация по MQL5: Основы языка / Типы данных / Целые типы / Перечисления
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Перечисления - Документация по MQL5
 

Estimados desarrolladores, por favor, díganme qué es una llamada ambigua a una función sobrecargada (esto es lo que jura el compilador):

'set' - llamada ambigua a una función sobrecargada

class CA
  {
public:
   void set(int i,int j,long n){Print("перегрузка long");};
   void set(int i,int j,int n){Print("перегрузка int");};
  };

void OnStart()
  {
//---
   CA a;
   int Int=3;
   long Long=4;
   a.set(1,2,Int);
   a.set(1,2,Long);
  }

HH he descubierto la forma en que si se sustituyen las constantes en el primer y segundo parámetro al tipo de variable int, entonces el juramento se detiene.

Pero no entiendo la lógica del compilador, los dos primeros parámetros son los mismos en todas las sobrecargas, no hay parámetros por defecto.

Entonces, ¿por qué jura el compilador, cuál es la ambigüedad de la llamada?

Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
Документация по MQL5: Основы языка / Типы данных / Целые типы / Типы char, short, int и long
  • www.mql5.com
Основы языка / Типы данных / Целые типы / Типы char, short, int и long - Документация по MQL5
 
denkir:

Quiero obtener el valor del timeframe del gráfico actual como una cadena. Lo escribo así:

El compilador me dice que 'PeriodStr' - la función no está definida...

¿Qué pasa? Colegas, por favor, ayúdenme :-)

El archivo de ayuda tiene esta función:

PeriodStr

Convierte el valor de la enumeración ENUM_TIMEFRAMES en una cadena.

stringPeriodStr(
int val// valor
)

Es extraño, no he encontrado esa función -PeriodStr- en el manual
 
denkir:

Quiero obtener el valor del timeframe del gráfico actual como una cadena. Lo escribo así:

El compilador me dice que 'PeriodStr' - la función no está definida...

¿Cuál es el problema? Colegas, por favor, ayúdenme :-)

Existe una función de este tipo en la Ayuda:

PeriodStr

Convierte el valor de la enumeración ENUM_TIMEFRAMES en una cadena.

stringPeriodStr(
int val// valor
)

Este es un método de clase

https://www.mql5.com/ru/docs/standardlibrary/technicalindicators/cindicator

#include<Indicators\Indicator.mqh>

Razón de la queja: