Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1912

 
DanilaMactep #:
Si je ne me trompe pas, c'est comme ça que ça a commencé et ça n'a pas marché si je me souviens bien ;-)

Je vous l'ai déjà montré - je ne sais pas pourquoi cela ne fonctionne pas pour vous - cela fonctionne pour moi sur mt4 et mt5.

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

vous pouvez également changer la couleur des graphiques

//+------------------------------------------------------------------+
//|                                       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 #:

Je vous l'ai déjà montré - je ne sais pas pourquoi cela ne fonctionne pas pour vous - cela fonctionne pour moi sur mt4 et mt5.

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

Voici une autre façon de changer la couleur des graphiques.

C'est juste une force majeure inévitable, c'est juste une attaque - je pourrais ne pas voir quelque chose, c'est tout. Mais merci beaucoup pour votre aide.

 
DanilaMactep #:

C'est juste une force majeure - les séquelles de mon attaque cérébrale - qui fait que je pourrais ne pas voir quelque chose, c'est tout. Mais merci beaucoup pour votre aide.

Vous n'avez pas besoin d'ajouter un .tpl au code, c'est déjà fait pour vous.

Il vous suffit d'indiquer le nom du modèle.

 Template + ".tpl"

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

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

vous n'avez pas besoin d'ajouter (.tpl) au code, il est déjà prescrit pour vous.

il suffit d'entrer le nom du modèle dans le champ .

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

Je crois que j'ai compris - la prochaine fois, donnez-moi le mode d'emploi, car vous ne le comprendrez pas sans un demi-litre)))))). ;-) Merci beaucoup pour votre aide :-)
 
137 Matrix #:

Je vous l'ai déjà montré - je ne sais pas pourquoi cela ne fonctionne pas pour vous - cela fonctionne pour moi sur mt4 et mt5.

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

vous pouvez également changer la couleur des graphiques

Sasha, il n'y a rien de pire que d'utiliser des exemples de la documentation ou des exemples de tumblr. Et vous avez également perdu le drapeau de terminaison forcée de la boucle while quelque part. En tout et pour tout... pas de mots.
 
DanilaMactep #:
Cette option ne fait rien du tout - je lance le script sur le graphique et rien ne se passe.

Désolé, j'ai perdu le signe de négation logique !

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, il n'y a rien de pire que d'utiliser des exemples tirés de la documentation ou des exemples de tumblr. Oh, et quelque part il a perdu le drapeau de la terminaison forcée de la boucle while. Eh bien ... pas de mots.

Par exemple, ma tâche consiste à trouver une fonction qui satisfait à ma tâche, je la recherche et si elle correspond à ma tâche - peu importe le nombre de lignes qu'elle comporte - je l'utilise.

L'essentiel est que la fonction fonctionne comme je le souhaite.

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

Je le fais pour m'épanouir et rien de plus, uniquement pour moi. Je ne pense pas avoir à écrire quoi que ce soit à qui que ce soit.

 
137 Matrix #:

Par exemple, ma tâche consiste à trouver une fonction qui satisfait à ma tâche, je la recherche et si elle correspond à ma tâche - peu importe le nombre de lignes qu'elle comporte - je l'utilise.

L'essentiel est que la fonction fonctionne comme je le souhaite.

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

Je le fais pour m'épanouir et rien de plus, uniquement pour moi. Je ne pense pas que j'écrive quoi que ce soit à qui que ce soit.

Quand tu donnes des conseils à quelqu'un, ce n'est pas pour toi.

Surtout avec de telles erreurs... Qu'est-ce que PERIOD_CURRENT et quel est le résultat dans la condition

      if(TimeFrame != PERIOD_CURRENT)
 
Alexey Viktorov #:

Quand vous donnez des conseils à quelqu'un d'autre, ce n'est plus pour vous-même.

Surtout avec de telles erreurs... Qu'est-ce que PERIOD_CURRENT et quel est le résultat dans la condition

Je ne sais pas, ça marche !

Il fait basculer le graphique en fonction de la période restaurée dans les paramètres.

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

Lorsque quelqu'un pose une question, j'essaie de me mettre à sa place et d'obtenir le résultat souhaité.

Si vous n'avez pas remarqué, j'ai accompli cette tâche du mieux que j'ai pu et j'ai posté le script terminé - il n'est peut-être pas correct, mais il remplit son rôle.

 
Alexey Viktorov #:

Quand vous donnez des conseils à quelqu'un d'autre, ce n'est plus pour vous-même.

Surtout avec de telles erreurs... Qu'est-ce que PERIOD_CURRENT et quel est le résultat dans la condition

 if(TimeFrame != PERIOD_CURRENT)

Je ne vois pas d'erreur ici.

Raison: