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

 


Wir versuchen, dasTelegram_Bot_EA-Skript zu verwenden, um auf Anfrage einen Chart-Bildschirm zu senden. Wir haben es in Bezug auf die Auswahl von Vorlagen und anderen Tools leicht modifiziert. Aber ich denke, das ist nicht unbedingt notwendig. Nehmen wir an, es gibt zwei Benutzer.

- Der erste startet den Bot, wählt ein Tool (z.B. RI), wählt einen TF - 5min, pausiert....

- der zweite startet den Bot, wählt das Instrument (BR), wählt den TF - 30min, wählt das Muster "#1". - erhält den richtigen Bildschirm.

- der erste macht weiter und wählt das Muster "#2" und erhält.... das Bild, das der zweite erhalten hat.


Das heißt, in dem Moment, in dem der erste pausiert hat, hat sich der Bot irgendwie mit den Daten, die er vom zweiten erhalten hat, neu aufgebaut und sie dann verwendet, als der erste die Anfrage beendet hat. Es stellte sich heraus, dass die Variablen, in denen das Werkzeug, die TF und das Muster gespeichert sind, in gewisser Weise global sind, und deshalb wurden sie ersetzt.

Wie kann dieses Problem gelöst werden?

Das Beispiel auf dem Bildschirm unten. Ein RTS-Instrument wurde bestellt, 5 m. Ich wurde vor der Auswahl einer Vorlage aufgehalten, während der zweite Benutzer sein Bild anforderte. Dann fuhr ich mit der Auswahl der Vorlage fort und erhielt BR, H1 anstelle von RTS

Das Problem stellt sich wie folgt dar.



Wie kann dieses Problem gelöst werden?

 
StarleyNSK:

Das heißt, in dem Moment, in dem der erste pausierte, baute sich der Bot irgendwie auf den Daten auf, die er vom zweiten erhielt, und verwendete sie dann, als der erste die Anfrage beendete. Es stellt sich heraus, dass die Variablen, in denen das Werkzeug, die TF und die Vorlage gespeichert sind, in gewisser Weise global sind, und deshalb wurden sie ersetzt.

Wie kann dieses Problem gelöst werden?

Analysieren Sie die i-di des Benutzers, der die Daten anfordert, und speichern Sie alles mit einer Bindung an diese i-di.

 
Hallo. Gibt es eine Möglichkeit, dem Bot die Möglichkeit zu geben, alle Nachrichten im Chat zu sehen und eine bestimmte Nachricht zu zitieren?
 
Yevhenii Levchenko:

Wenn ich versuche, einen Screenshot eines Diagramms zu senden, kommt manchmal die Meldung: "Fehler: Unbekannter Fehler 5020" - die Datei existiert nicht. Obwohl sie im Ordner "Dateien" vorhanden ist. Das passiert manchmal. Manchmal veröffentlicht es alles nacheinander (ich mache mehr als 3 Sekunden Verzögerung zwischen dem Senden von Nachrichten). Der Algorithmus selbst sieht wie folgt aus: der Bot öffnet ein Diagramm, verschiebt das Diagramm an die äußerste rechte Position, erstellt Pfeile (Preisniveaus), macht einen Screenshot, sendet ihn (nach einer Verzögerung von 3 Sekunden nur ... ohne dass er es aus irgendeinem Grund nicht senden will), löscht die Pfeile und löscht sie, nachdem er geprüft hat, ob die Datei vorhanden ist. Oder löscht sie nicht. Wenn der Bot beim Senden den Fehler 5020 ausgibt, gibt die Funktion FileIsExist Unsinn zurück. Ich habe versucht, Verzögerungen nach der Dateierstellung einzustellen, aber das hat nicht viel geholfen. Ich sende an einen offenen Kanal. Die Erweiterung ist .gif.

Wie schlecht ist diese Lösung (das Senden von Screenshots auf diese Weise)? Der Code ist wahrscheinlich alles andere als ideal, aber warum will er keine Screenshots senden? Oder besser gesagt, manchmal sendet er sie normal, und manchmal will er sie gar nicht senden. Internet scheint normal zu sein...

Anstelle der Verzögerung ist es schöner, die Funktion der Überprüfung auf das Vorhandensein einer Datei zu verwenden, aber nicht nur das Vorhandensein einer Datei im Katalog, sondern das Vorhandensein ihrer Länge. Es gibt Situationen, in denen eine Datei mit einer Länge von Null erscheint, während der Schreibprozess noch nicht abgeschlossen ist, und erst nach Abschluss des Schreibvorgangs wird die Länge festgelegt.

Dies kann in OnTime nachverfolgt werden.

 
Yuriy Zaytsev:

Anstelle der Verzögerung ist es schöner, die Funktion der Überprüfung auf das Vorhandensein einer Datei zu verwenden, aber nicht nur das Vorhandensein einer Datei im Verzeichnis, sondern auch ihre Länge. Es gibt Situationen, in denen eine Datei mit einer Länge von Null erscheint, während der Schreibvorgang noch nicht abgeschlossen ist, und erst nach Abschluss des Schreibvorgangs wird die Länge festgelegt.

Dies kann in OnTime nachverfolgt werden.

Ja, das ist eine vollständigere Lösung. Vielen Dank für den Hinweis!

 
Indra Lukmana:

Hallo zusammen,


ich weiß nicht, ob diese Frage schon einmal gestellt wurde,

Ich habe versucht, dieses Modul mit EA-Format und es funktioniert wunderbar, aber wenn ich versucht, dieses Modul mit Indikator-Format, es zeigt einen Fehler wie unten:

2020.08.26 10:25:37.839 inLuk_TelegramBot EURUSD,H1: Error: URL ist für WebRequest nicht erlaubt


Haben Sie einen Vorschlag, oder kann dieses Modul nicht für den Indikator verwendet werden?

danke.

Benutzen Sie Windows 7?

Ich habe Webrequest Problem mit Windows 7

 
firecard:
Ich habe diesen Fehler:

'SendPhoto' - keine der Überladungen kann auf den Funktionsaufruf angewendet werden Telegram_Bot_EA.mq5 117 24


Beim Kompilieren von telegram_bot MT5

Auf Seite 4 finden Sie die Lösung
 

Hallo Trader!

Ich habe eine Frage,

ich habe den Telegram_Bot_EA für Mt4 und Mt5 ausprobiert ....

Kann mir jemand sagen, warum der Bot nicht senden Screenshot am Wochenende auf Mt4, Datei wird in Datei-Ordner generiert und auch auf Telegramm sehen Sie (senden Foto oben) aber kein Screenshot kommt ?

Auf mt5 kommt der Screenshot in ein paar Sekunden.

Mit freundlichen Grüßen

 
Audiamant:

Hallo Trader!

Ich habe eine Frage,

Ich habe versucht, die Telegram_Bot_EA für Mt4 und Mt5 ....

Kann mir jemand sagen, warum der Bot am Wochenende auf Mt4 keinen Screenshot sendet, die Datei wird im Dateiordner generiert und auch auf Telegram sieht man (send photo on top) aber es kommt kein Screenshot ?

Auf Mt5 kommt der Screenshot in ein paar Sekunden.

Mit freundlichen Grüßen

Wenn u kommunizieren mt4 zu Telegram n anderen Weg hat die EA kommunizieren, überprüfen Sie Logs
 
Jefferson Metha:
Wenn u kommunizieren mt4 zu Telegram n anderen Weg hat die EA kommunizieren, überprüfen Sie Protokolle

Ja, der EA kommuniziert, das einzige Problem ist, dass er am Wochenende keinen Screenshot sendet? (mt4)

in der Log-Datei sehe ich nur EA erfolgreich geladen


Sehr interessant, weil es von Montag bis Freitag funktioniert .

Hat jemand das gleiche Problem?