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

 
Maxim Kuznetsov:

NO, NO PUEDE...

Es curioso, pero lo que el usuario ha seleccionado en la pestaña "Colores" normalmente NO está disponible dentro del indicador

Gracias por la respuesta.

Todavía tengo el sueño de que el desarrollador de MT4 (para Windows) ADAPTE las redirecciones en mi tablet....

Les escribí, me contestaron y me dijeron que todos sus esfuerzos se centran en MT5...

 
kopeyka2:

Gracias por su respuesta.

Todavía tengo el sueño de que el desarrollador de MT4 (para Windows) ADAPTE el rediseño para la tableta....

Les escribí, me contestaron, me dijeron que todos sus esfuerzos están concentrados en MT5...

En mt4 es poco probable que haya algo nuevo.

 
kopeyka2:

Hola.

Pregunta: En MT4, ¿es posible hacer coincidir el color del buffer EZ con el gráfico, siempre que el color del indicador en el gráfico haya cambiado?

En el código

#property indicators_color1 clrYellow

***

***

ObjectCreate(.......);

ObjectSetInteger(... indicators_color1);


Problema; al cambiar de color en el indicador, cambia el color de la línea del buffer, pero en el gráfico es el mismo que en #property. Necesita ser emparejado.

Hasta ahora resuelto a través del color de entrada , PERO son dos entradas en el código, dos cambios en la configuración, y me gustaría un ajuste a través del buffer.


Gracias por los comentarios.

Lo escribí esquemáticamente desde mi smartphone.


Tomamos el indicador donde se muestra el gráfico y miramos:

//+------------------------------------------------------------------+
//| Описание                                                         |
//+------------------------------------------------------------------+
void Descriptions(void)
  {
   int x=4;
   int y=1;
   int arr_colors[]={indicator_color1,indicator_color2,indicator_color3,indicator_color4,indicator_color5};
   string arr_texts[]={"Up direction","Down direction","Crossing to up","Crossing to down","Neutral"};
   string arr_names[COUNT];
   for(int i=0; i<COUNT; i++)
     {
      arr_names[i]=prefix+"label"+(string)i;
      arr_colors[i]=PlotIndexGetInteger(i,PLOT_LINE_COLOR);
      int shift=(i*(i<2 ? 90 : i<COUNT-1 ? 96 : 100)-(i>0 ? x : 0));
      x+=shift;
      Label(arr_names[i],x,y,CharToString(167),16,arr_colors[i],"Wingdings");
      Label(arr_names[i]+"_txt",x+10,y+5,arr_texts[i],10,clrGray,"Calibri");
     }
  }
//+------------------------------------------------------------------+

Se declarauna matriz de colores y se inicializa con los colores especificados por el usuario en la configuración del indicador.

A continuación, el valor del color de la matriz se pasa a la función de salida de la etiqueta de texto.

Todo es estándar en la función de salida de etiquetas de texto:

//+------------------------------------------------------------------+
//| Выводит текстовую метку                                          |
//+------------------------------------------------------------------+
void Label(const string name,const int x,const int y,const string text,const int size,const color clr,const string font)
  {
   if(ObjectFind(0,name)!=wnd)
      ObjectCreate(0,name,OBJ_LABEL,wnd,0,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,size);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//---
   ObjectSetString(0,name,OBJPROP_FONT,font);
   ObjectSetString(0,name,OBJPROP_TEXT,text);
   ObjectSetString(0,name,OBJPROP_TOOLTIP,"\n");
  }
//+------------------------------------------------------------------+

El color pasado a la función establece el color del marcador de texto. Y todo funciona...

 
Artyom Trishkin:

Tomamos el indicador en el que se muestra el gráfico y lo miramos:

Se declarauna matriz de colores y se inicializa con los colores especificados por el usuario en la configuración del indicador.

A continuación, el valor del color de la matriz se pasa a la función de salida de la etiqueta de texto.

Todo es estándar en la función de salida de etiquetas de texto:

El color pasado a la función establece el color de la etiqueta de texto. Y todo funciona...

He considerado la opción de la matriz... No está claro cómo se conecta con el buffer... La pregunta era sobre un movimiento de cambio de color... para el buffer y la etiqueta(línea).

¿O no lo entiendo?)))

Gracias por el ejemplo)))


PS

pensé, tal vez de alguna manera tirar (comparar) el color de la memoria intermedia ... Creo que esto es una tontería...

 

Saludos. ¿Puede decirme cómo escribir un indicador que funcione sólo con el precio de venta?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

 
Anatolij Anufriev:

Saludos. ¿Puede decirme cómo escribir un indicador que funcione sólo con el precio de venta?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

en las barras de MT4 - OHLC se construyen por Bid, de hecho, los precios Ask no están disponibles en el historial. como opción, recoger Ask en ticks y utilizar iRSIOnArray()

 

¿Cuál es la mejor solución para utilizar bases de datos con MQL4/5?

Hay muchos artículos, es difícil elegir uno

 
Igor Makanu:

en las barras de MT4 - OHLC se construyen por Bid, de hecho los precios Ask no están disponibles en el historial, alternativamente recoger en Ask ticks y utilizar iRSIOnArray()

Gracias

 
Sergey Likho:

¿Cuál es la mejor solución para utilizar bases de datos con MQL4/5?

Hay muchos artículos, es difícil elegir uno.

Si no tienes un artículo, busca en "Artículos" en el foro. Puedes encontrar toda la información en la sección "Foro". Hay muchas cosas que se combinan con MT4, SQL y aplicaciones como MathLab o R... Busca lo que quieras, busca bastante bien en este foro

https://www.mql5.com/ru/search#!keyword=sql&module=mql5_module_articles

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Por alguna razón no puedo coger una barra en el bucle, que empieza a las 15 horas.

Si escribo if(i<24) como condición, el registro muestra la hora de cada barra del día, pero no se cumple la condición requerida:


   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      
      if( TimeHour(iTime(NULL,PERIOD_H1,i)==15)  )
      //if(i<24)
      Print("TimeHour = ", TimeHour(iTime(NULL,PERIOD_H1,i)));
      
      CrossDown[i]=High[i]+250*Point;
   
      i--;                          // Расчёт индекса следующего бара
     }
Razón de la queja: