Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 980

 
Vladimir Karputov:
Вечером напишу проверку наличия сделок с фильтром по символу и magic’у
Спасибо большущее очень очень жду)
 
Kolya32:

Очень нужна ФУНКЦИЯ НА MQL5 КОТОРАЯ БЫ ПРОВЕРЯЛА БЫЛА ЛИ СЕГОДНЯ СДЕЛКА ПО СОВЕТНИКУ. ЕСЛИ ДА ТО true ЕСЛИ НЕТ ТО false (С заданным Magic конечно же). На МТ4 я пользуюсь этой функцией.

Вставьте до функции

#include <MT4Orders.mqh>

#define False false
#define True  true

int TimeYear(const datetime dt)
{
  MqlDateTime mdts;
  TimeToStruct(dt, mdts);
  return mdts.year;
}

int TimeMonth(const datetime dt)
{
  MqlDateTime mdts;
  TimeToStruct(dt, mdts);
  return mdts.mon;
}

int TimeDay(const datetime dt)
{
  MqlDateTime mdts;
  TimeToStruct(dt, mdts);
  return mdts.day;
}

int Day()   { return(TimeDay(TimeCurrent())); }
int Month() { return(TimeMonth(TimeCurrent())); }
int Year()  { return(TimeYear(TimeCurrent())); }

и все станет кроссплатформенным.

 
fxsaber:

Вставьте до функции

и все станет кроссплатформенным.

Спасибо. Очень помогли. Хорошая все-таки библиотека)
 

Здравствуйте!

Допустим у меня есть пользовательский индикатор с параметрами (внешние параметры для оптимизации). Тестер видит только параметры в эксперте. Как можно провести перебор этих параметров для оптимизации?

В виде пробы пера взял индикатор из стандартной библиотеки и добавил туда этот параметр. Если объявлять input в файле с экспертом, то не получается протащить этот параметр до индикатора. Эксперт же, как я понял, пользуется не самим индикатором, а сигналами от него.

Или где можно прочитать описание взаимодействия компонентов стандартной библиотеки?

P.S. как же не хватает хорошей IDE с подсветкой и парсером. Может есть что-то лучше, чем стандартный редактор в MetaTrader?

 
Kolya32:
Спасибо. Очень помогли. Хорошая все-таки библиотека)

Упс, не успел. Ну и ладно :)

 
Kolya32:
Спасибо. Очень помогли. Хорошая все-таки библиотека)

Под кимовские функции сделал.

 

не могу сообразить, что означает результат 0 в первом принте?

void OnStart()
  {
Print(GetFilling()); 					// 0
Print(EnumToString(GetFilling())); 			// ORDER_FILLING_FOK
Print(SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE)); 	// 1
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Возвращает тип заполнения                                        |
//+------------------------------------------------------------------+
ENUM_ORDER_TYPE_FILLING GetFilling()
  {
   int filling=(int)SymbolInfoInteger(_Symbol,SYMBOL_FILLING_MODE);

   if(filling==1)
      return(ORDER_FILLING_FOK);
   else if(filling==2)
      return(ORDER_FILLING_IOC);
   return(WRONG_VALUE);
  }

 
Fast528:

не могу сообразить, что означает результат 0 в первом принте?


Означает что функция вернула первое значение из списка. А нумерация значений ведётся как во всех массивах с нуля.

 

Друзья, подскажите новичку, что не так. Хочу найти бары соответствующее определенному времени, ниже код,но не работает. 

       MqlRates rates[];
       ArraySetAsSeries(rates,true);
       int copied = CopyRates(NULL,_Period,0,f_bar,rates);
     
        string a1,a2;
          if (copied>0)
         for(int i=0;i<copied;i++)
           {
               a1 = TimeToString (rates[i].time,TIME_DATE);
               a2 = TimeToString(rates[i].time,TIME_MINUTES);
               if(a2=="14:00"){Comment(a1,"\n",a2);break;
           }
 
Alexander Mikryukov:

Друзья, подскажите новичку, что не так. Хочу найти бары соответствующее определенному времени, ниже код,но не работает. 

Поиск бара по времени