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

 
Roman Sharanov:

nada, vacío

Pregunteaquí.

 
Artyom Trishkin:

Pregunteaquí.

Si ayuda, debería dibujar flechas, en el euro, en el euro-yen, en el aussie, en los demás no

Archivos adjuntos:
Hydra.mq4  9 kb
 
Roman Sharanov:

Si ayuda, debería dibujar flechas, en el euro, en el euro-yen, en el aussie, en otros no

Sólo una suposición.

Hay un valor tan grande en los ajustes:

input int so_slowma = 233;//Медленная МА

Y luego en OnInit():

   //---- установка номера бара, начиная с которого будет отрисовываться индикатор 
   SetIndexDrawBegin(0,so_slowma);
   SetIndexDrawBegin(1,so_slowma);

Veo que los datos de las barras diarias se utilizan para el cálculo:

if(so > so_minsize && fto > fto_minsize && fo[1] < 0 && fo[0] > 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_1[i+1] = Low[i+1] - 10 * Point;  
if(so < -so_minsize && fto < -fto_minsize && fo[1] > 0 && fo[0] < 0 && (iHigh(_Symbol,PERIOD_D1,0)-iLow(_Symbol,PERIOD_D1,0))/daily_atr <= 0.6) buf_2[i+1] = High[i+1] + 10 * Point; 

¿Está seguro de que hay suficientes barras en los símbolos donde no hay dibujo? Poner un valor menor en la variable so_slowma - al menos 100. Si hay renderización, entonces no tienes suficientes datos históricos.

Es sólo una suposición que se me ocurrió la primera vez que miré el código. Y puede estar equivocado. Pero deberías comprobarlo antes de nada.

 

¿Cómo puedo hacer que un rectángulo https://docs.mql4.com/ru/constants/objectconstants/enum_object/obj_rectangle se dibuje encima de otro rectángulo sin mezclar sus colores?

Aquí, por ejemplo, una línea horizontal posterior se dibuja encima de una línea horizontal anterior sin mezclar sus colores, pero no veo cuál es la causa de la diferencia con los rectángulos.

Gracias.

OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
OBJ_RECTANGLE - Типы объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Следующий скрипт создает и перемещает на графике прямоугольник. Для создания и изменения свойств графического объекта написаны специальные функции, которые вы можете использовать "как есть" в своих собственных программах. //| Cоздает прямоугольник по заданным координатам                    |               time1=0,           ...
 
Artyom Trishkin:

Sólo una suposición.

Hay un valor tan grande en los ajustes:

y luego en OnInit():

Veo que los datos de las barras diarias se utilizan para el cálculo:

¿Está seguro de que hay suficientes barras en los símbolos en los que no hay representación? Poner un valor menor en la variable so_slowma - al menos 100. Si hay renderización, entonces no tienes suficientes datos históricos.

Es sólo una suposición que se me ocurrió la primera vez que miré el código. Y puede estar equivocado. Pero debes comprobarlo antes de nada.

Es decir, como tomo los datos de un gráfico diario en alguna parte del código, el indicador no dibujará los primeros 233 días?
 
Roman Sharanov:
Es decir, porque tomo los datos de los datos diarios una vez en el código, el indicador no dibujará los primeros 233 días?

No, no lo es. Este valor indica a partir de qué número de barra el indicador comenzará a dibujar en el gráfico. Pero este número de barras se utiliza para calcular la media móvil. Si hay menos barras en el gráfico, no se calculará la MA. Para evitar esta situación, en la línea 73, el código contiene el retorno de OnCalculate() en caso de ausencia de barras para el cálculo:

if (Bars <= so_slowma) return (0);

En cuanto a los datos diarios, puede que no estén ahí también, pero es más bien una "continuación de la historia"...

 
Artyom Trishkin:

No, no lo es. Este valor indica a partir de qué número de barra el indicador comenzará a dibujar en el gráfico. Pero este número de barras se utiliza para calcular la media móvil. Si hay menos barras en el gráfico, no se calculará la MA. Para evitar esta situación, en el código, en la línea 73 escribimos return de OnCalculate() en caso de ausencia de barras para el cálculo:

En cuanto a los datos diarios, puede que no estén ahí también, pero es más bien una "continuación de la historia"...

La libra, por ejemplo, tiene más de 1000 barras en el diario y en el m15, pero no dibuja...

 
Roman Sharanov:

Bueno la libra por ejemplo, tanto en el diario como en el m15 supera las 1000 barras, pero no está dibujando....

Tienes el código fuente. Imprima los valores de todas las variables en el registro y vea lo que obtienen.

 
Artyom Trishkin:

Tienes el código fuente. Imprime los valores de todas las variables en el registro, y mira lo que obtienen.

¿De dónde viene esto?


 
Roman Sharanov:

¿De dónde sale esto?


Basura en los topes. Primero hay que introducir un valor en blanco en todos los buffers a dibujar (si son buffers de flechas), y sólo entonces realizar el cálculo del indicador. No puedo ver el código desde mi móvil, así que no puedo decirlo con exactitud.