Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 399

 

Hallo! Ich bin gerade dabei, meinen Expert Advisor aus dem Artikel https://www.mql5.com/ru/articles/648 umzugestalten und versuche, meine eigene Funktion einzufügen. Das Problem ist, dass ich den Indikator nicht in Fraktal ändern kann. Wenn signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) ersetze ich es durch iFractals(Symbols[s], PERIOD_M15); ich bekomme einen falschen Preis. Können Sie helfen und den Code verbessern?

//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
void GetIndicatorHandles()
  {
//--- Пройдемся по всем символам
   for(int s=0; s<NUMBER_OF_SYMBOLS; s++)
     {
      //--- Если торговля по этому символу разрешена
      if(Symbols[s]!="")
        {
         //--- Если хэндл еще не получен
         if(signal_indicator_handles[s]==INVALID_HANDLE)
           {
            //--- Получим хэндл индикатора
            signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE);
            //--- Если не удалось получить хендл индикатора
            if(signal_indicator_handles[s]==INVALID_HANDLE)
               Print("Не удалось получить хэндл индикатора для символа "+Symbols[s]+"!");
           }
        }
     }
  }

//+------------------------------------------------------------------+
//| Получает значения индикаторов                                    |
//+------------------------------------------------------------------+
bool GetIndicatorsData(int symbol_number)
  {
//--- Количество значений индикаторного буфера для определения торгового сигнала   
   int NumberOfValues=3;
//--- Если хэндл индикатора был получен
   if(signal_indicator_handles[symbol_number]!=INVALID_HANDLE)
     {
      //--- Установим обратный порядок индексации (... 3 2 1 0)
      ArraySetAsSeries(indicator[symbol_number].value,true);
      //--- Получим значения индикатора
      if(CopyBuffer(signal_indicator_handles[symbol_number],0,0,NumberOfValues,indicator[symbol_number].value)<NumberOfValues)
        {
         Print("Не удалось скопировать значения ("+
               Symbols[symbol_number]+"; "+TimeframeToString(_Period)+") в массив indicator! Ошибка ("+
               IntegerToString(GetLastError())+"): "+ErrorDescription(GetLastError())+"");
         return(false);
        }
      return(true);
     }
//--- Если хэндл индикатора не получен, то...
   else
     {
      // ...попробуем получить его еще раз
      GetIndicatorHandles();
     }
   return(false);
  }
  

Проверка
Print("++++++++indicator[symbol_number][0]",Symbols[symbol_number],"= ",indicator[symbol_number].value[0]);
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
Рецепты MQL5 - Мультивалютный эксперт: пример простой, точной и быстрой схемы
  • 2013.06.11
  • Anatoli Kazharski
  • www.mql5.com
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
Hallo alle, können Sie mir bitte sagen, ob es möglich ist, die Nachrichten der Kategorie, die ich nicht interessiert bin und einfach überladen das Nachrichtenfenster in MT5 zu deaktivieren? Wie kann ich das tun?
 
Können Sie mir sagen, wie ich die chart_id eines neu erstellten Diagramms herausfinden kann?
 
Gestalten Sie mit der Hand?
 
Karputov Vladimir:
Gestalten Sie mit der Hand?

Nein.

void OnStart() { ChartOpen("GBPUSD", PERIOD_H1); }
 

Hallo zusammen!

Hilfe zu dieser Frage.

Wie kann ich erreichen, dass der verwendete Standardindikator nicht im MT4-Chartfenster angezeigt wird, wenn der Test des Expert Advisors abgeschlossen ist?

 
Sergei Konoplev:

Hallo zusammen!

Hilfe zu dieser Frage.

Wie kann ich erreichen, dass der verwendete Standardindikator nicht im MT4-Chartfenster angezeigt wird, wenn der Test des Expert Advisors abgeschlossen ist?

Siehe Hilfe zum Befehl HideTestIndicators()
 
-Aleks-:

Nein.

void OnStart() { ChartOpen("GBPUSD", PERIOD_H1); }

Sie können den Bezeichner des erstellten Diagramms wie folgt abrufen:

void OnStart()
  {
   ResetLastError();
   long Chart_ID=ChartOpen("GBPUSD",PERIOD_H1);
   if(Chart_ID!=0)
      Print("Идентификатор созданного графика: ",Chart_ID);
   else
      Print("Ошибка открытия нового графика: ",GetLastError());
  }
 
Vitalii Ananev:
Siehe Hilfe zu HideTestIndicators()
Alles ist genial einfach! Danke, der Tipp hat mir geholfen.)
 
Karputov Vladimir:

Ermitteln Sie den Bezeichner des erstellten Diagramms wie folgt:

Ich danke Ihnen. Ist es möglich, die ID des letzten Diagramms zu ermitteln, das von einem Benutzer oder einem anderen Skript erstellt wurde, das nicht mehr funktioniert?