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

 

Hallo Andrey,

warum bekommt der Bot ständig Error: HTTP-Anfrage fehlgeschlagen, tq

 

Hallo Andrey,

warum bekommt der Bot ständig Error: HTTP-Anfrage fehlgeschlagen, tq


 

Vielleicht haben sie das Protokoll geändert.

Haben Sie Telegram API überprüft?

 
Haijie Qi:

Hallo Andrey,

warum bekommt der Bot ständig Error: HTTP request failed, tq

Ich habe den 'Telegram_Bot_EA' auf Deinem PC mit TeamViewer getestet und festgestellt, dass WebRequest() -1 zurückgegeben hat. _LastError = 5203.

Aber ich weiß nicht warum. Vielleicht blockiert Ihre Firewall TCP-Pakete.

 
Andrey Voytenko:

Ich habe den 'Telegram_Bot_EA' auf Ihrem PC mit TeamViewer getestet und festgestellt, dass WebRequest() -1 zurückgegeben hat. _LastError = 5203.

Aber ich weiß nicht warum. Vielleicht blockiert Ihre Firewall TCP-Pakete.


Danke Andrey,

wenn ich die Firewall ausschalte, tritt der Fehler immer noch auf,

ich werde genauer hinschauen :)

 

Hey Jungs, also im Grunde habe ich den Quellcode genommen und im Grunde den Code für die telegram_signal_EA bearbeitet, um Trades basierend auf meiner Strategie zu senden. Also ich kompiliert, um für Fehler zu überprüfen und alles funktioniert gut, auch wenn ich die EA auf dem Diagramm die Experten Registerkarte zeigt, dass seine meine Telegram Bot erkannt. Jetzt mein Problem liegt in das Senden der Warnung selbst, ich bin nicht erhalten Warnungen zu Telegramm, wenn meine Regeln für einen Handel erfüllt sind. Jede Hilfe auf diese Jungs? Hier ist der Code unten

//+------------------------------------------------------------------+
//|Telegramm_Signal_EA.mq5 |
//| Copyright 2014, MetaQuotes Software Corp. |
//|http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict

#include <Telegram.mqh>

//--- Eingabeparameter
input string InpChannelName="ForexSignalChannel";//Kanalname
input string InpToken="";//Token

//--- globale Variablen
CCustomBot bot;
int ema_handle;
int ema2_handle;
int rsi_handle;
datetime time_signal=0;
bool checked;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion|
//+------------------------------------------------------------------+
int OnInit()
  {
   time_signal=0;

   bot.Token(InpToken);

#ifdef __MQL5__   
   ema_handle=iMA(NULL,0,200,0,MODE_EMA,PRICE_CLOSE,0);
   if(ema_handle==INVALID_HANDLE)
      return(INIT_FAILED);
      
   ema2_handle=iMA(NULL,0,400,0,MODE_EMA,PRICE_CLOSE,0);
   if(ema2_handle==INVALID_HANDLE)
      return(INIT_FAILED);
      
   rsi_handle=iRSI(NULL,0, 14,PRICE_CLOSE,0);
   if(ema2_handle==INVALID_HANDLE)
      return(INIT_FAILED);
//--- Hinzufügen des Indikators zum Diagramm
   int total=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   ChartIndicatorAdd(0,total,macd_handle);
#endif   

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   if(reason==REASON_PARAMETERS ||
      reason==REASON_RECOMPILE ||
      reason==REASON_ACCOUNT)
     {
      checked=false;
     }

//--- den Indikator löschen
#ifdef __MQL5__ 
   int total=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   for(int subwin=total-1; subwin>=0; subwin--)
     {
      int amount=ChartIndicatorsTotal(0,subwin);
      for(int i=amount-1; i>=0; i--)
        {
         string name=ChartIndicatorName(0,subwin,i);
         if(StringFind(name,"MACD",0)==0)
            ChartIndicatorDelete(0,subwin,name);
        }
     }
#endif
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   if(id==CHARTEVENT_KEYDOWN && 
      lparam=='Q')
     {
         
         bot.SendMessage(InpChannelName,"ee\nAt:100\nDDDD");
     }
  }
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion|
//+------------------------------------------------------------------+
void OnTick()
  {

   if(!checked)
     {
      if(StringLen(InpChannelName)==0)
        {
         Print("Error: Channel name is empty");
         Sleep(10000);
         return;
        }

      int result=bot.GetMe();
      if(result==0)
        {
         Print("Bot name: ",bot.Name());
         checked=true;
        }
      else
        {
         Print("Error: ",GetErrorDescription(result));
         Sleep(10000);
         return;
        }
     }

//--- Zeit erhalten
   datetime time[1];
   if(CopyTime(NULL,0,0,1,time)!=1)
      return;

//--- Überprüfung des Signals bei jedem Balken
   if(time_signal!=time[0])
     {
      //--- erste Berechnung
      if(time_signal==0)
        {
         time_signal=time[0];
         return;
        }

     double ema = iMA(NULL, 0, 200, 0, MODE_EMA, PRICE_CLOSE, 0);
      double ema2 = iMA(NULL, 0, 400, 0, MODE_EMA, PRICE_CLOSE, 0); 
      double rsi = iRSI(NULL, 0, 14, PRICE_CLOSE, 0);


      time_signal=time[0];

      //--- Signal BUY senden
      if ((Bid > ema)&&(Bid < ema2)&&(rsi < 30))
      
        {
         string msg=StringFormat("Name: BossPips Signal\xF4E3\nSymbol: %s\nTimeframe: %s\nType: Buy\nPrice: %s\nTime: %s",
                                 _Symbol,
                                 StringSubstr(EnumToString((ENUM_TIMEFRAMES)_Period),7),
                                 DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits),
                                 TimeToString(time[0]));
         int res=bot.SendMessage(InpChannelName,msg);
         if(res!=0)
            Print("Error: ",GetErrorDescription(res));
        }

      //--- Signal SELL senden
      
       if ((Bid < ema)&&(Bid > ema2)&&(rsi > 70))
       
        {
         string msg=StringFormat("Name: BossPips Signal\xF4E3\nSymbol: %s\nTimeframe: %s\nType: Sell\nPrice: %s\nTime: %s",
                                 _Symbol,
                                 StringSubstr(EnumToString((ENUM_TIMEFRAMES)_Period),7),
                                 DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits),
                                 TimeToString(time[0]));
         int res=bot.SendMessage(InpChannelName,msg);
         if(res!=0)
            Print("Error: ",GetErrorDescription(res));
        }
     }
  }
//+------------------------------------------------------------------+
 
Gibt es eine Version für mq4?
 
Mohd Fahmi Azlan Mohamad Zuki:
Gibt es eine Version für mq4?

Die Codes in diesem Artikel sind für den Handel auf beiden Plattformen angepasst - MetaTrader 4 und MetaTrader 5.

Ändern Sie einfach EAs Dateierweiterungen zu mq4.

 

Ich ändere von for(int i=0;i<=1;i++) zu for(int i=0;i>=1;i--) auf Signal ea,

jetzt bekomme ich kein Signal von Telegram, kann mir jemand helfen/helfen ;(

 
Andrey Voytenko:

Die Codes in diesem Artikel sind für den Handel auf beiden Plattformen - MetaTrader 4 und MetaTrader 5 - geeignet.

Ändern Sie einfach EAs Dateierweiterungen zu mq4.

Ich habe versucht, zu ändern. Aber wenn ich einen Auftrag erteile, erhalte ich keine Benachrichtigung. Gibt es etwas, das ich überprüfen muss?