Diskussion zum Artikel "Die Erstellung des Bots für Telegram in der Sprache MQL5" - Seite 5

 
Rashid Umarov:
Andrei, müssen Sie die beigefügten Codes im Artikel ersetzen? Bitte schreiben Sie in solchen Fällen an die Moderatoren, um es zu tun, okay?
Ja, Rashid, Sie müssen das Archiv mit den Codes aktualisieren. Ich habe dem Moderator vor ein paar Tagen darüber geschrieben.
 
Andrey Voytenko:
Ja, Rashid, Sie müssen das Archiv mit den Codes aktualisieren. Ich habe den Moderator schon vor ein paar Tagen darauf hingewiesen.
Das Archiv zum Artikel wurde aktualisiert. Ich entschuldige mich für die Verzögerung.
 

Guten Tag Andrey Voytenko! Vielen Dank für den Artikel, aber ich kann nicht empfangen und Ausgabe in Alert-Nachricht von Telegram in der folgenden Weise (jedes Mal gibt einen leeren Alarm, das heißt, die Tatsache einer neuen Nachricht erkannt wird, sondern gibt eine leere Variable):

   void ProcessMessages(void)
     {
      for(int i=0; i<m_chats.Total(); i++)
        {
         CCustomChat *chat=m_chats.GetNodeAtIndex(i);
         //--- wenn die Nachricht nicht verarbeitet wird
         if(!chat.m_new_one.done)
           {
           chat.m_new_one.done=true;
            string text=chat.m_new_one.message_text;
Alert(text);
            //--- Start
            if(text=="/start")
               SendMessage(chat.m_id,"Hello, world! I am bot. \xF680");

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

Ich habe versucht, einen Bot für mich selbst zu erstellen, um einen Screenshot an Telegram zu senden, wenn ein Geschäft erscheint.

Es wird immer wieder aus irgendeinem Grund gesendet, könnten Sie sehen, was das Problem ist?

nur diese Datei, die im Anhang ist.
Dateien:
 

Roman, wenn Sie den Bot nur zum Senden von Screenshots benötigen, können Sie dies tun:

1. Frag den @MyTelegramID_bot nach deiner Chatnummer.

2. Schreiben Sie einen einfachen Bot, der nach neuen Elementen sucht und Bilder an den Chat mit der angegebenen ID sendet. Ein Beispiel ist:

#include <Telegram.mqh>
//+------------------------------------------------------------------+
//| Eingabeparameter|
//+------------------------------------------------------------------+
input ENUM_LANGUAGES    InpLanguage=LANGUAGE_EN;//Sprache
input string            InpToken="";//Token
input long              ChatId=0;   //Chat-ID
//---
CCustomBot bot;
int pos_count;
//+------------------------------------------------------------------+
int OnInit()
  {
   bot.Token(InpToken);
   int res=bot.GetMe();
   if(res!=0)
     {
      Print(GetErrorDescription(res));
     }
   pos_count=PositionCount(_Symbol);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   int pos_count_new=PositionCount(_Symbol);
   if(pos_count_new>pos_count)
     {
      pos_count=pos_count_new;
      int result=SendScreenShot(ChatId,_Symbol,0,NULL);
      if(result!=0)
         Print(GetErrorDescription(result,InpLanguage));
     }
  }
//+------------------------------------------------------------------+
int PositionCount(const string _symbol)
  {
   int count=0;
   int orders_total=OrdersTotal();
   for(int i=0; i<orders_total; i++)
     {
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         PrintError(ERR_ORDER_SELECT);
         return(-1);
        }
      //---
      if(_symbol==NULL || OrderSymbol()==_symbol)
         count++;
     }
//---
   return(count);
  }
//+------------------------------------------------------------------+
int SendScreenShot(const long _chat_id,
                   const string _symbol,
                   const ENUM_TIMEFRAMES _period,
                   const string _template=NULL)
  {
   int result=0;

   long chart_id=ChartOpen(_symbol,_period);
   if(chart_id==0)
      return(ERR_CHART_NOT_FOUND);

   ChartSetInteger(ChartID(),CHART_BRING_TO_TOP,true);

//--- Diagramm aktualisieren
   int wait=60;
   while(--wait>0)
     {
      if(SeriesInfoInteger(_symbol,_period,SERIES_SYNCHRONIZED))
         break;
      Sleep(500);
     }

   if(_template!=NULL)
      if(!ChartApplyTemplate(chart_id,_template))
         PrintError(_LastError,InpLanguage);

   ChartRedraw(chart_id);
   Sleep(500);

   ChartSetInteger(chart_id,CHART_SHOW_GRID,false);

   ChartSetInteger(chart_id,CHART_SHOW_PERIOD_SEP,false);

   string filename=StringFormat("%s%d.gif",_symbol,_period);

   if(FileIsExist(filename))
      FileDelete(filename);
   ChartRedraw(chart_id);

   Sleep(100);

// if(ChartScreenShot(chart_id,filename,800,600,ALIGN_RIGHT))
   if(ChartScreenShot(chart_id,filename,1024,768,ALIGN_RIGHT))
     {
      Sleep(100);

      bot.SendChatAction(_chat_id,ACTION_UPLOAD_PHOTO);

      //--- 30 Sekunden warten, um Bildschirmfoto zu speichern
      wait=60;
      while(!FileIsExist(filename) && --wait>0)
         Sleep(500);

      //---
      string screen_id;
      result=bot.SendPhoto(_chat_id,filename,screen_id,_symbol+"_"+StringSubstr(EnumToString(_period),7));
     }

   ChartClose(chart_id);
   return(result);
  }

//+------------------------------------------------------------------+
 

Vielen Dank für dieses Tutorial,

Ich möchte ein Telegram Bot für mt4 machen bitte bieten Sie mir ein Tutorial für diese.

Danke

 

Wie wäre es, den eigentlichen Artikel zu lesen? https://www.mql5.com/de/articles/2355

Er enthält eine Schritt-für-Schritt-Anleitung...

Sie können es versuchen, und wenn es nicht funktioniert, dann posten Sie hier und wir können nach der Lösung suchen.

How to create bots for Telegram in MQL5
How to create bots for Telegram in MQL5
  • 2016.06.27
  • Andrey Voytenko
  • www.mql5.com
This article contains step-by-step instructions for creating bots for Telegram in MQL5. This information may prove useful for users who wish to synchronize their trading robot with a mobile device. There are samples of bots in the article that provide trading signals, search for information on websites, send information about the account balance, quotes and screenshots of charts to you smart phone.
 
Vielen Dank , Andrey Voytenko.
 
Hallo ich habe meinen Bot laufen lassen und wollte ein Foto senden. In meta trader öffnet das Diagramm und speichern Sie es. und ich sehe Bot sendet mir Foto. aber nach einem kleinen Moment alles stoppt. und ich kann nicht recive Foto warum?
 

Hallo,

zunächst einmal vielen Dank für die detaillierte Beschreibung, sehr geschätzt.

Verzeihen Sie, wenn dies klingt dumm, aber ich wollte versuchen, die Telegram_signal_EA und war in der Hoffnung, ich könnte Alarme durch einen Indikator abgefeuert werden, die an einen Telegram-Kanal gesendet, jedoch der Code, den Sie für diese im dritten Beispiel gab, wurde es für MT4 oder MT5 geschrieben?

Wenn ich den Code kopiere und in eine neue Datei in MetaEditor einfüge und kompiliere, erhalte ich eine ganze Reihe von Fehlern, und ich habe keine Ahnung, was das bedeutet. Sicherlich sollte ich Zeit investieren, um das alles herauszufinden, aber mit dem von Ihnen angegebenen Code sollte es nicht allzu schwierig sein, das zu erreichen, was ich will, oder?

Wenn jemand bereit ist, mir zu helfen oder mir die richtige Richtung zu zeigen, wäre ich wirklich dankbar.

Mit freundlichen Grüßen,

Patrick

Fehlerprotokoll