Questions des débutants MQL5 MT5 MetaTrader 5 - page 399

 

Bonjour, je suis en train de remodeler mon Expert Advisor à partir de l'article https://www.mql5.com/ru/articles/648 et j'essaie d'insérer ma propre fonction. Le problème est que je ne peux pas changer l'indicateur en fractal. Si signal_indicator_handles[s]=iMA(Symboles[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) je le remplace par iFractals(Symboles[s], PERIOD_M15) ; j'obtiens un prix erroné. Pouvez-vous m'aider et modifier le code ?

//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
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
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
Bonjour à tous, pouvez-vous me dire s'il est possible de désactiver les actualités de la catégorie qui ne m'intéresse pas et qui encombrent simplement la fenêtre des actualités dans MT5 ? Comment puis-je le faire ?
 
Pouvez-vous me dire comment trouver le chart_id d'un graphique nouvellement créé ?
 
Créez-vous à la main ?
 
Karputov Vladimir:
Créez-vous à la main ?

Non.

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

Bonjour à tous !

Aidez-nous à répondre à cette question.

Comment faire pour que l'indicateur standard utilisé ne soit pas affiché dans la fenêtre graphique MT4 lorsque le test du conseiller expert est terminé ?

 
Sergei Konoplev:

Bonjour à tous !

Aidez-nous à répondre à cette question.

Comment faire pour que l'indicateur standard utilisé ne soit pas affiché dans la fenêtre graphique MT4 lorsque le test du conseiller expert est terminé ?

Voir l'aide pour la fonction HideTestIndicators()
 
-Aleks-:

Non.

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

Vous pouvez obtenir l'identifiant du graphique créé comme suit :

void OnStart()
  {
   ResetLastError();
   long Chart_ID=ChartOpen("GBPUSD",PERIOD_H1);
   if(Chart_ID!=0)
      Print("Идентификатор созданного графика: ",Chart_ID);
   else
      Print("Ошибка открытия нового графика: ",GetLastError());
  }
 
Vitalii Ananev:
Voir l'aide sur HideTestIndicators()
Tout est brillamment simple ! Merci, le conseil m'a aidé).
 
Karputov Vladimir:

Obtenez l'identifiant du graphique créé comme suit :

Merci. Est-il possible d'obtenir l'ID du dernier graphique créé par un utilisateur ou un autre script qui a cessé de fonctionner ?
Raison: