Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1893

 

¿Puedes darme una pista?

En mql4 había un indicador basado en MA para el precio de apertura, que permitía evitar la re-presentación en la barra actual. a través de int start() funcionaba bien. Lo mostraba todo con claridad.

En mql5, el mismo indicador no funciona a través de int start, funciona a través de int OnCalculate. Sigue recalculando y volviendo a dibujar, por un segundo la imagen desaparece y puede tener valores diferentes debido a la situación de límite con la intersección de dos MAs, aunque la distancia entre dos MAs está ajustada, no ayuda. Pensé en tomar no el valor 0 sino el 1er valor del buffer de MA, pero no funcionó y también pensé en saltar esta función antes de que llegue una nueva barra y tampoco funcionó (incluso intenté dejar de mostrar nada). ¿Cómo superar esta situación?

Al voltear el gráfico de derecha a izquierda, también parpadea el indicador con un recálculo constante

 
Sergey Dymov #:

¿Puedes darme una pista?

En mql4 había un indicador basado en MA sobre el precio de apertura, permitía evitar el redibujado en la barra actual. a través de int start() funcionaba bien. Lo mostraba todo con claridad.

En mql5, el mismo indicador no funciona a través de int start, funciona a través de int OnCalculate. Sigue recalculando y volviendo a dibujar, por un segundo la imagen desaparece y puede tener valores diferentes debido a la situación de límite con la intersección de dos MAs, aunque la distancia entre dos MAs está ajustada, no ayuda. Pensé en tomar no el valor 0 sino el 1er valor del buffer de MA, pero no funcionó y también pensé en saltar esta función antes de que llegue una nueva barra y tampoco funcionó (incluso intenté dejar de mostrar nada). ¿Cómo superar esta situación?

Al voltear el gráfico de derecha a izquierda, también parpadea el indicador con un recálculo constante

Haz la pregunta aquí, seguro que te ayudarán.

 
Sergey Dymov #:

¿Puedes darme una pista?

En mql4 existía un indicador basado en MA para el precio de apertura, que permitía evitar la re-presentación en la barra actual. a través de int start() funcionaba bien. Lo mostraba todo con claridad.

En mql5, el mismo indicador no funciona a través de int start, funciona a través de int OnCalculate. Sigue recalculando y volviendo a dibujar, por un segundo la imagen desaparece y puede tener valores diferentes debido a la situación de límite con la intersección de dos MAs, aunque la distancia entre dos MAs está ajustada, no ayuda. Pensé en tomar no el valor 0 sino el 1er valor del buffer de MA, pero no funcionó y también pensé en saltar esta función antes de que llegue una nueva barra y tampoco funcionó (incluso intenté dejar de mostrar nada). ¿Cómo superar esta situación?

Al voltear el gráfico de derecha a izquierda, también parpadea el indicador con un recálculo constante

Publicar el código
 

Existe tal cosa en el gráfico

Lo he visto hecho en cualquier color, si no me equivoco.

¿Cómo?

 
Vitaly Muzichenko #:

Existe tal cosa en el gráfico

Lo he visto hecho en cualquier color, si no me equivoco.

¿Cómo?

F8 y.


Pero este es también el color de la cuadrícula, así que desmarca


 
Artyom Trishkin #:

F8 y

Pero este es también el color de la cuadrícula, así que desmarca

Lo tengo, ¡gracias!

La red es necesaria, lástima que no esté separada.

P.D. ¿Cómo se desplazan 15 barras desde el borde derecho de forma programada?
 
Vitaly Muzichenko #:

Lo tengo, ¡gracias!

La red es necesaria, lástima que no esté dividida.

P.D. ¿Cómo se desplazan 15 barras desde el borde derecho de forma programada?

¿Qué te parece esto?

//+------------------------------------------------------------------+
//| Функция включает/выключает режим отображения ценового графика с  |
//| отступом от правого края.                                        |
//+------------------------------------------------------------------+
bool ChartShiftSet(const bool value,const long chart_ID=0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим значение свойства
   if(!ChartSetInteger(chart_ID,CHART_SHIFT,0,value))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

¿Qué te parece esto?

Sí, pero eso es presionar el botón

Cuando se arrastra el marcador con las manos, se apoya antes de alcanzar el borde derecho bastante - ¡esto es una limitación fundamentalmente errónea del terminal!

Al pulsar el botón, la barra más externa casi se pega al borde derecho, por lo que se pierde el valor informativo del gráfico.

Debe pulsar el botón sin llegar a las 15-20 barras y no realizar esta operación cada vez que aparezca una nueva barra. Comprimir sólo una vez.

P.D. ¿Por qué tanta restricción y tanto espacio vacío?


 
Vitaly Muzichenko #:

Sí, pero se está alejando el botón.

Cuando se arrastra el marcador con las manos, se apoya antes de alcanzar el borde derecho bastante - ¡esto es una limitación fundamentalmente errónea del terminal!

Al pulsar el botón, la barra más externa casi se pega al borde derecho, por lo que se pierde el valor informativo del gráfico.

Debe pulsar el botón sin llegar a las 15-20 barras y no realizar esta operación cada vez que aparezca una nueva barra. Comprimir sólo una vez.

Porcentaje

//+------------------------------------------------------------------+ 
//| Функция устанавливает размер отступа нулевого бара от правого    | 
//| края графика в процентах (от 10% до 50%). Для включения режима   | 
//| отступа, нужно установить значение свойства CHART_SHIFT равным   | 
//| true.                                                            | 
//+------------------------------------------------------------------+ 
bool ChartShiftSizeSet(const double value,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Alekseu Fedotov #:

Porcentaje

Funciona, pero el mínimo es una sangría que se puede fijar a mano y al menos

Visualmente, es un mínimo del 10%. ¿Por qué no funciona el 5%?