Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1912

 
DanilaMactep #:
Wenn ich mich nicht irre, hat es so angefangen und es hat nicht funktioniert, wie ich mich erinnere ;-)

Ich habe es Ihnen bereits gezeigt - ich weiß nicht, warum es bei Ihnen nicht funktioniert - es funktioniert bei mir sowohl auf mt4 als auch auf mt5.

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

Sie können auch die Farbe der Diagramme ändern

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

Ich habe es Ihnen bereits gezeigt - ich weiß nicht, warum es bei Ihnen nicht funktioniert - es funktioniert bei mir sowohl auf mt4 als auch auf mt5.

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

Hier ist eine weitere Möglichkeit, die Farbe der Diagramme zu ändern.

Es ist einfach eine unvermeidbare höhere Gewalt, es ist nur ein Schlaganfall - ich sehe vielleicht etwas nicht, das ist alles. Aber vielen Dank für Ihre Hilfe.

 
DanilaMactep #:

Es ist nur eine höhere Gewalt - die Folgen meines Schlaganfalls - ich sehe vielleicht etwas nicht, das ist alles. Aber vielen Dank für Ihre Hilfe.

Sie müssen dem Code keine .tpl hinzufügen, das ist bereits erledigt.

Sie brauchen nur den Namen der Vorlage einzugeben.

 Template + ".tpl"

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

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

Sie brauchen dem Code keine (.tpl) hinzuzufügen, er ist bereits für Sie vorgeschrieben.

müssen Sie nur den Namen der Vorlage in das Feld .

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

Ich glaube, ich hab's kapiert - das nächste Mal gib mir bitte die Gebrauchsanweisung, denn ohne einen halben Liter versteht man es nicht)))))) ;-) Vielen Dank für die Hilfe :-)
 
137 Matrix #:

Ich habe es Ihnen bereits gezeigt - ich weiß nicht, warum es bei Ihnen nicht funktioniert - es funktioniert bei mir sowohl auf mt4 als auch auf mt5.

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

Sie können auch die Farbe der Diagramme ändern

Sascha, du kannst dir nichts Schlimmeres vorstellen, als Beispiele aus der Dokumentation oder Tumblr-Beispiele zu verwenden. Und Sie haben auch das Flag für die erzwungene Beendigung der while-Schleife irgendwo verloren. Alles in allem ... ohne Worte.
 
DanilaMactep #:
Diese Option bewirkt gar nichts - ich lasse das Skript auf dem Diagramm los und nichts passiert.

Leider ist das logische Negationszeichen verloren gegangen!

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 #:
Sascha, du kannst dir nichts Schlimmeres vorstellen, als Beispiele aus der Dokumentation oder Tumblr-Beispiele zu verwenden. Oh, und irgendwo hat er die Flagge der erzwungenen Beendigung der while-Schleife verloren. Nun ... keine Worte.

Meine Aufgabe ist es zum Beispiel, eine Funktion zu finden, die meiner Aufgabe entspricht. Ich suche sie und wenn sie meiner Aufgabe entspricht - egal wie viele Zeilen sie hat - verwende ich sie.

Die Hauptsache ist, dass die Funktion so funktioniert, wie ich es möchte.

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

Ich tue es, um mich selbst weiterzuentwickeln und nichts weiter, nur für mich. Ich glaube nicht, dass ich jemandem etwas schreiben muss.

 
137 Matrix #:

Meine Aufgabe ist es zum Beispiel, eine Funktion zu finden, die meiner Aufgabe entspricht. Ich suche sie und wenn sie meiner Aufgabe entspricht - egal wie viele Zeilen sie hat - verwende ich sie.

Die Hauptsache ist, dass die Funktion so funktioniert, wie ich es möchte.

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

Ich tue es, um mich selbst weiterzuentwickeln und nichts weiter, nur für mich. Ich glaube nicht, dass ich jemandem etwas schreibe.

Wenn Sie jemandem einen Rat geben, ist das nicht für Sie.

Besonders bei solchen Fehlern... Was ist PERIOD_CURRENT und was ist das Ergebnis in der Bedingung

      if(TimeFrame != PERIOD_CURRENT)
 
Alexey Viktorov #:

Wenn Sie jemand anderem einen Rat geben, dann nicht für sich selbst.

Besonders bei solchen Fehlern... Was ist PERIOD_CURRENT und was ist das Ergebnis in der Bedingung

Ich weiß es nicht, es funktioniert!

Es schaltet das Diagramm um den in den Einstellungen wiederhergestellten Zeitraum um.

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

Wenn jemand eine Frage stellt, versuche ich, mich in seine Lage zu versetzen und das gewünschte Ergebnis zu erzielen.

Falls Sie es noch nicht bemerkt haben, habe ich diese Aufgabe so gut wie möglich erledigt und das fertige Skript gepostet - es mag nicht korrekt sein, aber es erfüllt seinen Zweck.

 
Alexey Viktorov #:

Wenn Sie jemand anderem einen Rat geben, dann nicht für sich selbst.

Besonders bei solchen Fehlern... Was ist PERIOD_CURRENT und was ist das Ergebnis in der Bedingung

 if(TimeFrame != PERIOD_CURRENT)

Ich kann hier keinen Fehler erkennen.