Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1894

 

Помогите вытащить номер чата. Обнуляется. что то не догоняю.

#include <Telegram.mqh>
long Ch_id;
//+------------------------------------------------------------------+
//|   CMyBot                                                         |
//+------------------------------------------------------------------+
class CMyBot: public CCustomBot
  {
public:
   void ProcessMessages(void)
     {
      for(int i=0; i<m_chats.Total(); i++)
        {
         CCustomChat *chat=m_chats.GetNodeAtIndex(i);
         //--- if the message is not processed
         if(!chat.m_new_one.done)
           {
            chat.m_new_one.done=true;
            string text=chat.m_new_one.message_text;
            Ch_id=chat.m_id;   // И здесь не хочет присваивать.
            //--- start
            if(text=="/start")
               SendMessage(chat.m_id,"Hello, world! I am bot. \xF680");
               Alert("chat.m_id ",chat.m_id);
               Ch_id=chat.m_id;  // что здесь не так?

            //--- help
            if(text=="/help")
               SendMessage(chat.m_id,"My commands list: \n/start-start chatting with me \n/help-get help");
           }        
        }
     }
  };

//---
input string InpToken="5068873298:AAGihZr2vJsD5Zs1ca4i0r2JimAFuIbbmI0";//Token
//---
CMyBot bot;
int getme_result;
//+------------------------------------------------------------------+
//|   OnInit                                                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set token
   bot.Token(InpToken);
//--- check token
   getme_result=bot.GetMe();
//--- run timer
   EventSetTimer(3);
   OnTimer();
//--- done
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|   OnDeinit                                                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|   OnTimer                                                        |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- show error message end exit
   if(getme_result!=0)
     {
      Comment("Error: ",GetErrorDescription(getme_result));
      return;
     }
//--- show bot name
   Comment("Bot name: ",bot.Name());
//--- reading messages
   bot.GetUpdates();
//--- processing messages
   bot.ProcessMessages();
  }

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
   if(id==CHARTEVENT_KEYDOWN &&
         lparam=='Q')
   {

      Alert("445672666"); // Номер чата вручную забил, работает.
       
      bot.SendMessage(445672666,"ee\nAt:100\nDDDD");
  //    bot.SendMessage(Ch_id,"ee\nAt:100\nDDDD"); не хочет работать, Ch_id=0.
      Alert(Ch_id);
      
     
   }
}
 

Alexey Viktorov

Спасибо, помогло

 
Доброе утро. Нужна помощь. В тестере на графике не корректно отображается прибыль ордеров. До этого было все нормально. А на сегодня такое ощущение что занижает  очень намного. 
 
Сергей Груздев #:
Доброе утро. Нужна помощь. В тестере на графике не корректно отображается прибыль ордеров. До этого было все нормально. А на сегодня такое ощущение что занижает  очень намного. 

Тебе сюда.

 
 Прямо-таки секрет какой-то, никто не сознаётся. Может, тут кто знает: https://www.mql5.com/ru/forum/1111/page3141#comment_27268709?
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2022.01.16
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Valeriy Yastremskiy #:

Помогите вытащить номер чата. Обнуляется. что то не догоняю.

Напишите там, где обсуждение библиотеки  Telegram.mqh

 
Vitaly Muzichenko #:

Напишите там, где обсуждение библиотеки  Telegram.mqh

Написал. Там вопрос конечно не мкл, а апи бота телеги. При отправки из бота айди в сообщении и обраткой формируется ответ с айди чата и токеном бота. А вот с токеном бота что можно получить от телеги.
 
x572intraday #:
 Прямо-таки секрет какой-то, никто не сознаётся. Может, тут кто знает: https://www.mql5.com/ru/forum/1111/page3141#comment_27268709?

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

 
Andrey Sokolov #:

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

 Роскошная идея, как я сам не допёр!

 Вот что получилось:

CPU and GPU usage

 Как видно из скриншота, оба процессора задействуются, хотя и в разной степени. Говорить, что-де CPU вскипел больше GPU и поэтому-то индикаторные буфера обрабатывает именно он, было бы слишком самонадеянно, так как сравнивать CPU с GPU некорректно в силу специфики каждого. Можно только лишний раз заключить, что в дело впрягаются они оба. Вопрос остаётся открытым...

 

Не могу сообразить, как решить задачу

Нужен тиковый график, то есть, пришёл тик - сдвигаем буфер на единицу и рисуем

Рисовать нужно 60 последних тиков, то есть - 60 баров.

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   // ВСЁ - здесь затык :(
    Buffer[0] = _bid;
   return(rates_total);
  }

---

Нужно сделать, как это реализовано в терминале окна "Тики"


Причина обращения: