Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 399

 

Olá! estou a redesenhar o meu consultor especializado a partir do artigo https://www.mql5.com/ru/articles/648 e a tentar inserir a minha própria função. O problema é que não posso mudar o indicador para fractal. Se signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) eu substituo-o por iFractals(Symbols[s], PERÍODO_M15); recebo um preço errado. Pode ajudar e afinar o código?

//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
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
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
Olá a todos, podem por favor dizer-me se é possível desligar as notícias da categoria em que não estou interessado e simplesmente desorganizar a janela de notícias no MT5? Como o posso fazer?
 
Pode dizer-me como descobrir o ID_do_gráfico de um gráfico recentemente criado?
 
Cria à mão?
 
Karputov Vladimir:
Cria à mão?

Não.

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

Olá a todos!

Ajuda com esta pergunta.

Como posso fazer com que o indicador padrão utilizado não seja exibido na janela do gráfico MT4 quando o teste do Expert Advisor estiver concluído?

 
Sergei Konoplev:

Olá a todos!

Ajuda com esta pergunta.

Como posso fazer com que o indicador padrão utilizado não seja exibido na janela do gráfico MT4 quando o teste do Expert Advisor estiver concluído?

Ver ajuda para a função HideTestIndicators()
 
-Aleks-:

Não.

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

Pode obter o identificador do gráfico criado da seguinte forma:

void OnStart()
  {
   ResetLastError();
   long Chart_ID=ChartOpen("GBPUSD",PERIOD_H1);
   if(Chart_ID!=0)
      Print("Идентификатор созданного графика: ",Chart_ID);
   else
      Print("Ошибка открытия нового графика: ",GetLastError());
  }
 
Vitalii Ananev:
Ver ajuda para HideTestIndicators()
Tudo é brilhantemente simples! Obrigado, a dica ajudou).
 
Karputov Vladimir:

Obtenha o identificador do gráfico criado da seguinte forma:

Obrigado. É possível obter a identificação do último gráfico criado por um utilizador ou outro script que tenha deixado de funcionar?