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

 
Подскажите ,пожалуйста, с чем может быть связана ошибка при отладке на реальных данных :"указанный символ не выбран"
Спасибо !
MT5
 
IlyaDemidenko:
Подскажите ,пожалуйста, с чем может быть связана ошибка при отладке на реальных данных :"указанный символ не выбран"
Спасибо !
MT5

Перед тестированием (перед запуском теста из редактора MetaEditor) зайдите в редакторе MetaEditor в настройки и посмотрите вкладку "Отладка". В этой вкладке указан символ по которому будет идти тестирование:

А теперь откройте терминал и проверьте, есть ли в окне "Обзор рынка" выбранный символ?


 
Vladimir Karputov:

Перед тестированием (перед запуском теста из редактора MetaEditor) зайдите в редакторе MetaEditor в настройки и посмотрите вкладку "Отладка". В этой вкладке указан символ по которому будет идти тестирование:

А теперь откройте терминал и проверьте, есть ли в окне "Обзор рынка" выбранный символ?

Спасибо большое )
Процесс пошел ))

 
Здравствуйте. Цена в 17:30 прошлого дня. Как её узнать? То есть цену закрытия любого бара в 17:30
 
bij:
Здравствуйте. Цена в 17:30 прошлого дня. Как её узнать? То есть цену закрытия любого бара в 17:30

Почитайте CopyOpen (вторая форма вызова).

 
Vladimir Karputov:

Почитайте CopyOpen (вторая форма вызова).

Спасибо, не понял как время задать, кроме time=D'2018.07.26 17:30'; 

        time=???;      //Как сюда передать 17:30 прошлого дня?
        int barIndex = iBarShift(NULL,PERIOD_M1, time);        // Определение индекса бара, соответствующего времени time
        double openPrice = CopyOpen(NULL, PERIOD_M1, barIndex);// Определение Bid цены открытия бара barIndex
 
bij:

Спасибо, не понял как время задать.

На скорую руку накидал скриптик:

//+------------------------------------------------------------------+
//|                                                  TestOpenDay.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property script_show_inputs
//--- enums
enum ENUM_DAY
  {
   DAY_CURRENT,            // Сегодня
   DAY_YESTERDAY,          // Вчера
   DAY_BEFORE_YESTERDAY    // Позавчера
  };
//--- input parameters
input ENUM_DAY InpDay      =  DAY_YESTERDAY; // День:
input uint     InpHours    =  17;            // Часы
input uint     InpMinutes  =  30;            // Минуты
//--- global variables
datetime day;
int      day_shift;
int      hours;
int      minutes;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   hours=int(InpHours> 23 ? 23 : InpHours);
   minutes=int(InpMinutes>59 ? 59 : InpMinutes);
   day_shift=(int)InpDay;
   day=iTime(NULL,PERIOD_D1,day_shift);
   Print("Сегодня: ",TimeToString(TimeCurrent(),TIME_DATE),", день: ",InputDayToString(),", дата/время: ",TimeToString(GetTime(day)));
//---
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
datetime GetTime(const datetime time)
  {
   MqlDateTime tm;
   if(!TimeToStruct(time,tm))
      return 0;
   tm.hour=hours;
   tm.min=minutes;   
   return StructToTime(tm);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string InputDayToString(void)
  {
   return(InpDay==DAY_CURRENT? "Сегодня" : InpDay==DAY_YESTERDAY ? "Вчера" : "Позавчера");
  }
//+------------------------------------------------------------------+

В журнал после запуска выведет выбранный день, его дату и время.

 
Artyom Trishkin:

На скорую руку накидал скриптик:

В журнал после запуска выведет выбранный день, его дату и время.

Спасибо, хочу в индикаторе ставить линию в истории на цену в 17:30, каждые сутки. Как задам каждый день? Чтобы не писать каждую дату, а только время 17:30

Вот так ставлю на цену закрытия дня, каждый день.

 if(!TrendCreate(0,"close"+time[i],0,iTime(NULL,PERIOD_D1,i+1),iClose(NULL,PERIOD_D1,i+1),iTime(NULL,PERIOD_D1,i),0,clrLime,STYLE_SOLID,2,false,false,false,false,0))
        {
         continue;
        }
 
bij:

Спасибо, хочу в индикаторе ставить линию в истории на цену в 17:30, каждые сутки. Как задам каждый день?

Вот так ставлю на цену закрытия дня, каждый день.

Если прошлая дата (год, месяц, день) не равна текущей, и час и минута равны заданным, то ставить линию.

Или так: Если прошлая дата (год, месяц, день) равна текущей, или час и минута не равны заданным, то continue;

В любом случае будут пропуски - не на каждом баре выбранного таймфрейма есть заданное время.

 
Artyom Trishkin:

Если прошлая дата (год, месяц, день) не равна текущей, и час и минута равны заданным...

if(iTime(NULL,PERIOD_D1,i+1)!=iTime(NULL,PERIOD_D1,i)&& здесь как написать? )