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

 
progeon:
Подскажите как отобразить двумерный массив в виде константы, т.е. задать все параметры вручную?
double Variable[][3]={{1, 2, 3},{ 4, 5, 6},{7, 8, 9}};

https://www.mql5.com/ru/articles/567

Основы программирования на MQL5 - Массивы
Основы программирования на MQL5 - Массивы
  • 2012.11.03
  • Dmitry Fedoseev
  • www.mql5.com
Наряду с переменными и функциями, массивы являются практически неотъемлемой частью любого языка программирования. Статья должна быть интересна в первую очередь новичкам, приступившим к изучению программирования на MQL5. Опытным программистам представляется хорошая возможность подытожить, обобщить и систематизировать свои знания.
 

Подскажите пожалуйста, как настроить торговлю в определенный день в определенное время?

Искал по форуму, читал Основы программирования на MQL5 - Время, но так и не понял как вписать в алгоритм все это?

К примеру, мне нужно открывать сделку в среду после первой 4-х часовой свечи.

Беру из статьи все про торговлю в определенный день:

input bool Sunday   =true; // Воскресенье
input bool Monday   =true; // Понедельник
input bool Tuesday  =true; // Вторник 
input bool Wednesday=true; // Среда
input bool Thursday =true; // Четверг
input bool Friday   =true; // Пятница
input bool Saturday =true; // Суббота

bool WeekDays[7];
void WeekDays_Init()
  {
   WeekDays[0]=Sunday;
   WeekDays[1]=Monday;
   WeekDays[2]=Tuesday;
   WeekDays[3]=Wednesday;
   WeekDays[4]=Thursday;
   WeekDays[5]=Friday;
   WeekDays[6]=Saturday;
  }
bool WeekDays_Check(datetime aTime)
  {
   MqlDateTime stm;
   TimeToStruct(aTime,stm);
   return(WeekDays[stm.day_of_week]);
  }

Как применить это? Я пытаюсь добавить вызов функции в OnTimer() и поставить условие, что если WeekDays_Check(3)==true и время с начала среды в пределах seconds>14300 && seconds <14800, то открываем сделку.

void OnTimer()
  {
   S_Time=TimeCurrent();
   if(WeekDays_Check(3)==true)
     {
      Print("Среда");
      long seconds=S_Time%86400;
      if (seconds>14300 && seconds <14800)
      {
      double Open_1=S_Open(NULL,PERIOD_CURRENT,1);
      double Close_1=S_Close(NULL,PERIOD_CURRENT,1);
      double High_1=S_High(NULL,PERIOD_CURRENT,1);
      double Low_1=S_Low(NULL,PERIOD_CURRENT,1);
      bool S_CriBuy=0,S_CriSell=0;
      double S_Lot;
      S_CriBuy=S_TailBar_Buy(Open_1,Close_1,High_1,Low_1);
      S_CriSell=S_TailBar_Sell(Open_1,Close_1,High_1,Low_1);
      Print("Прошлый бар",High_1);
      if(S_CriBuy==1)
        {
         double S_Price=Low_1;
         double S_SL=Low_1+SL*Point();
         double S_TP=Low_1-TP*Point();
         S_Lot=countLot(Lot,HandLot);
         S_Trade.SellStop(S_Lot,S_Price,NULL,S_SL,S_TP);
        }
      if(S_CriSell==1)
        {
         double S_Price=High_1;
         double S_SL=High_1-SL*Point();
         double S_TP=High_1+TP*Point();
         S_Lot=countLot(Lot,HandLot);
         S_Trade.BuyStop(S_Lot,S_Price,NULL,S_SL,S_TP);
        }
        }
     }
  }

Не работает так( Открывает в любые дни. Объясните как сделать торговлю в определенный день хотя бы?

Заранее спасибо. Если код детский - извините, учусь только)

 
DenisSavenko:

Подскажите пожалуйста, как настроить торговлю в определенный день в определенное время?

Искал по форуму, читал Основы программирования на MQL5 - Время, но так и не понял как вписать в алгоритм все это?

К примеру, мне нужно открывать сделку в среду после первой 4-х часовой свечи.

Беру из статьи все про торговлю в определенный день:

Как применить это? Я пытаюсь добавить вызов функции в OnTimer() и поставить условие, что если WeekDays_Check(3)==true и время с начала среды в пределах seconds>14300 && seconds <14800, то открываем сделку.

Не работает так( Открывает в любые дни. Объясните как сделать торговлю в определенный день хотя бы?

Заранее спасибо. Если код детский - извините, учусь только)

М.б.
   if(WeekDays_Check(TimeCurrent())==true)
?
 
uncleVic:
М.б.
?

Да получилось! Спасибо большое. Конечно, ещё есть какие-то ошибки в смещении дней, но это уже в моей части кода проблема, а так все работает. Если поставить false на ненужные дни, то в true идет торговля - то что надо.

Спасибо ещё раз

 
 я зарегестрировался на Инста Трейдере подключил реальный счет,в MQ5 подписался на сигнал у /**/  подписка прошла успешно,потом открыл Инста Трейдер и зашел в системные настройки чтоб включить сигнал нотам пишет сигнал не подключён,как мне подключить сигнал и запустить его в работу с реальными деньгами [Торговый счет #5216372]
 
752360:
 я зарегестрировался на Инста Трейдере подключил реальный счет,в MQ5 подписался на сигнал у /**/ подписка прошла успешно,потом открыл Инста Трейдер и зашел в системные настройки чтоб включить сигнал нотам пишет сигнал не подключён,как мне подключить сигнал и запустить его в работу с реальными деньгами [Торговый счет #5216372]
Также, как и с нереальными деньгами, т.е. залогиниться на реальный счёт и подписаться на сигнал.
 
где залогинится по точнее 
 
752360:
где залогинится по точнее 

В торговом терминале.

Подписка на сигнал

 

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

Подскажите, пожалуйста как выставить срок действия отложенного ордера (EXPIRATION) в классе CTrade? Пытаюсь добавить эту позицию при отправке СTrade.SellStop(Lot,Price,NULL,SL,TP,expiration); выдает всегда can't convert enum. В документации к CTrade нашел только как узнать время жизни для отложенного ордера RequestExpiration, но как его выставить непонятно.

Может ли CTrade выставлять expiration? Или для этого нужно использовать полный запрос MqlTradeRequest через OrderSend()? Просто я вообще не очень понимаю как ими пользоваться, везде в статьях сразу на CTrade дается упор.

 
DenisSavenko:

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

Подскажите, пожалуйста как выставить срок действия отложенного ордера (EXPIRATION) в классе CTrade? Пытаюсь добавить эту позицию при отправке СTrade.SellStop(Lot,Price,NULL,SL,TP,expiration); выдает всегда can't convert enum. В документации к CTrade нашел только как узнать время жизни для отложенного ордера RequestExpiration, но как его выставить непонятно.

Может ли CTrade выставлять expiration? Или для этого нужно использовать полный запрос MqlTradeRequest через OrderSend()? Просто я вообще не очень понимаю как ими пользоваться, везде в статьях сразу на CTrade дается упор.

   bool              SellStop(const double volume,const double price,const string symbol=NULL,const double sl=0.0,const double tp=0.0,
                              const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const datetime expiration=0,const string comment="");
пропустили параметры