Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 399

 

Salve, sto riprogettando il mio Expert Advisor dall'articolo https://www.mql5.com/ru/articles/648 e sto cercando di inserire la mia funzione. Il problema è che non posso cambiare l'indicatore in frattale. Se signal_indicator_handles[s]=iMA(Symbols[s],_Period,IndicatorPeriod[s],0,MODE_SMA,PRICE_CLOSE) lo sostituisco con iFractals(Symbols[s], PERIOD_M15); ottengo un prezzo sbagliato. Puoi aiutare e modificare il codice?

//+------------------------------------------------------------------+
//| Получает хэндлы индикаторов                                      |
//+------------------------------------------------------------------+
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
В этой статье мы рассмотрим реализацию простой схемы для мультивалютного эксперта. В данном случае имеется в виду, что эксперт можно будет настроить на тестирование/торговлю по одинаковым условиям, но с разными параметрами для каждого символа. В качестве примера создадим схему для двух символов, но сделаем это так, чтобы при необходимости можно было добавлять дополнительные символы, внося небольшие изменения в код.
 
Ciao a tutti, potete dirmi se è possibile disattivare le notizie della categoria che non mi interessa e che ingombrano semplicemente la finestra delle notizie in MT5? Come posso fare?
 
Potete dirmi come trovare il chart_id di un grafico appena creato?
 
Crei a mano?
 
Karputov Vladimir:
Crei a mano?

No.

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

Ciao a tutti!

Aiutami con questa domanda.

Come posso fare in modo che l'indicatore standard utilizzato non venga visualizzato nella finestra del grafico MT4 quando il test dell'Expert Advisor è completato?

 
Sergei Konoplev:

Ciao a tutti!

Aiutami con questa domanda.

Come posso fare in modo che l'indicatore standard utilizzato non venga visualizzato nella finestra del grafico MT4 quando il test dell'Expert Advisor è completato?

Vedere l'aiuto per la funzione HideTestIndicators()
 
-Aleks-:

No.

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

Potete ottenere l'identificatore del grafico creato come segue:

void OnStart()
  {
   ResetLastError();
   long Chart_ID=ChartOpen("GBPUSD",PERIOD_H1);
   if(Chart_ID!=0)
      Print("Идентификатор созданного графика: ",Chart_ID);
   else
      Print("Ошибка открытия нового графика: ",GetLastError());
  }
 
Vitalii Ananev:
Vedere l'aiuto per HideTestIndicators()
Tutto è brillantemente semplice! Grazie, il suggerimento ha aiutato).
 
Karputov Vladimir:

Ottenere l'identificatore del grafico creato come segue:

Grazie. È possibile ottenere l'ID dell'ultimo grafico creato da un utente o da un altro script che ha smesso di funzionare?