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

 
DanilaMactep #:
Si no me equivoco, así empezó y no funcionó según recuerdo ;-)

Ya te lo mostré - no sé por qué no te funciona - a mí me funciona tanto en mt4 como en mt5.

\\\\\\\\\\\\\\\\\\\\

también puede cambiar el color de los gráficos

//+------------------------------------------------------------------+
//|                                       CHART_COLOR_BACKGROUND.mq5 |
//|                                  Copyright 2022, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
//----
sinput color Backclr = clrWhite; // Цвет фона графика.
sinput color Foreclr = clrBlack; // Цвет осей, шкалы и строки OHLC графика.
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
//--- переменные для идентификаторов графиков
   long currChart, prevChart = ChartFirst();
   int i = 0, limit = 100;
   bool errTemplate;
   Print("ChartFirst = ", ChartSymbol(prevChart), " ID = ", prevChart);
   while(i < limit) // у нас наверняка не больше 100 открытых графиков
     {
      currChart = ChartNext(prevChart); // на основании предыдущего получим новый график
      errTemplate = ChartBackColorSet(Backclr, prevChart);
      errTemplate = ChartForeColorSet(Foreclr, prevChart);
      if(errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
      if(currChart < 0)
         break;          // достигли конца списка графиков
      Print(i, ChartSymbol(currChart), " ID =", currChart);
      prevChart = currChart; // запомним идентификатор текущего графика для ChartNext()
      i++;// не забудем увеличить счетчик
     }
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет фона графика.                         |
//+------------------------------------------------------------------+
bool ChartBackColorSet(const color clr, const long chart_ID = 0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим цвет фона графика
   if(!ChartSetInteger(chart_ID, CHART_COLOR_BACKGROUND, clr))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__ + ", Error Code = ", GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
//| Функция устанавливает цвет осей, шкалы и строки OHLC графика.    |
//+------------------------------------------------------------------+
bool ChartForeColorSet(const color clr, const long chart_ID = 0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим цвет осей, шкалы и строки OHLC графика
   if(!ChartSetInteger(chart_ID, CHART_COLOR_FOREGROUND, clr))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__ + ", Error Code = ", GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
//+------------------------------------------------------------------+
 
137 Matrix #:

Ya te lo mostré - no sé por qué no te funciona - a mí me funciona tanto en mt4 como en mt5.

\\\\\\\\\\\\\\\\\\\\

Aquí hay otra forma de cambiar el color de los gráficos.

Es una fuerza mayor inevitable, es sólo un golpe - podría no ver algo, eso es todo. Pero muchas gracias por su ayuda.

 
DanilaMactep #:

Es sólo una fuerza mayor -las secuelas de mi infarto-, puede que no vea algo, eso es todo. Pero muchas gracias por su ayuda.

No necesitas añadir un .tpl al código, ya está hecho por ti.

Sólo tienes que poner el nombre de la plantilla.

 Template + ".tpl"

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

sinput string Template           = "ADX";          // Имя шаблона(without '.tpl')
      errTemplate = ChartApplyTemplate(prevChart, Template + ".tpl");
      if(!errTemplate)
        {
         Print("Error ", ChartSymbol(prevChart), "-> ", GetLastError());
        }
 
137 Matrix #:

no necesitas añadir (.tpl) al código, ya está prescrito para ti.

sólo tiene que introducir el nombre de la plantilla en el campo .

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Creo que lo tengo claro - la próxima vez, por favor, dame las instrucciones de uso, porque no lo entenderás sin medio litro)))))) ;-) Muchas gracias por la ayuda :-)
 
137 Matrix #:

Ya te lo mostré - no sé por qué no te funciona - a mí me funciona tanto en mt4 como en mt5.

\\\\\\\\\\\\\\\\\\\\

también puede cambiar el color de los gráficos

Sasha, no se te ocurre nada peor que usar ejemplos de la documentación o ejemplos de tumblr. Y también has perdido la bandera de la terminación forzada del bucle while en alguna parte. En definitiva... sin palabras.
 
DanilaMactep #:
Esta opción no hace nada en absoluto - suelto el script en el gráfico y no pasa nada.

Lo siento, he perdido el signo de negación lógica.

void OnStart()
 {
  long prevChart = ChartFirst();
  while(prevChart >= 0 && !IsStopped())
   {
    //if(ChartPeriod(prevChart) != PERIOD_H1)
      ChartSetSymbolPeriod(prevChart, ChartSymbol(prevChart), PERIOD_H1);// или PERIOD_D1
      ChartApplyTemplate(prevChart, tplName);
    prevChart = ChartNext(prevChart);
   }
 }/******************************************************************/
/*****************************End program****************************/
 
Alexey Viktorov #:
Sasha, no se te ocurre nada peor que usar ejemplos de la documentación o ejemplos de tumblr. Ah, y en algún lugar perdió la bandera de la terminación forzada del bucle while. Bueno... no hay palabras.

Por ejemplo, mi tarea es encontrar una función que satisfaga mi tarea, la busco y si se ajusta a mi tarea -no importa cuántas líneas tenga- la uso.

Lo principal es que la función funcione como yo quiero.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Lo hago para autodesarrollarme y nada más, puramente para mí. No creo que tenga que escribir nada a nadie.

 
137 Matrix #:

Por ejemplo, mi tarea es encontrar una función que satisfaga mi tarea, la busco y si se ajusta a mi tarea -no importa cuántas líneas tenga- la uso.

Lo principal es que la función funcione como yo quiero.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Lo hago para autodesarrollarme y nada más, puramente para mí. No creo que esté escribiendo nada a nadie.

Cuando das un consejo a alguien, no es para ti.

Especialmente con estos errores... ¿Qué es PERIOD_CURRENT y cuál es el resultado en la condición

      if(TimeFrame != PERIOD_CURRENT)
 
Alexey Viktorov #:

Cuando das un consejo a otra persona, no es para ti.

Especialmente con estos errores... ¿Qué es PERIOD_CURRENT y cuál es el resultado en la condición

No sé, ¡funciona!

Cambia el gráfico por el periodo restaurado en los ajustes .

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Cuando alguien hace una pregunta, intento ponerme en su lugar y conseguir el resultado deseado.

Por si no te has dado cuenta, he completado esta tarea lo mejor que he podido y he publicado el script terminado - puede que no sea correcto - pero cumple su propósito.

 
Alexey Viktorov #:

Cuando das un consejo a otra persona, ya no es para ti.

Especialmente con estos errores... ¿Qué es PERIOD_CURRENT y cuál es el resultado en la condición

 if(TimeFrame != PERIOD_CURRENT)

No veo ningún error aquí.

Razón de la queja: