und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
Skype Control Library - Bibliothek für den MetaTrader 4
- Ansichten:
- 823
- Rating:
- Veröffentlicht:
- 2016.04.15 14:04
- Aktualisiert:
- 2016.11.22 07:34
- Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Automatisierte Handelssysteme können hiermit Skype verwenden, um Textnachrichten zu versenden. In diesem Fall wird Skype über die Bibliothek Skype4COM angesprochen, das ist eine ActiveX-Komponente, die Zugriff auf das Programm ermöglicht. Sie können Skype4COM von der offiziellen Website der Entwickler herunterladen: http://dev.skype.com/accessories/skype4com
Die Skype4COM.dll Datei muss installiert und registriert sein.
Für ein Betriebssystem X86:
- Kopieren Sie in den Ordner %systemroot%\System32;
- In der cmd-Befehlszeile ausführen: %systemroot%\System32\regsvr32.exe % systemroot%\System32\Skype4COM.dll.
Für ein Betriebssystem X64:
- Kopieren Sie in den Ordner %systemroot%\SysWOW64;
- In der cmd-Befehlszeile ausführen: %systemroot%\SysWOW64\regsvr32.exe % systemroot%\SysWOW64\Skype4COM.dll.
Die SkypeMQL.dll-Datei muss im Ordner: [terminal Verzeichnis] \MQL5\Libraries installiert werden
1. Sofortnachrichten senden
int SkypeSendInstantMessageW (Zeichenfolge Skype_name,String Message,Int Status); int SkypeSendInstantMessageA(string skype_name,string message,int status);// für MetaTrader 4
Vor dem Senden einer Nachricht werden einige Tests durchgeführt:
- Der Benutzername darf nicht leer sein oder mit einer Zahl beginnen.
- Der Benutzer muss mit dem angegebenen Namen in der Kontaktliste existieren.
- Die Nachricht darf keine leere Zeichenfolge sein.
- Der Netzwerkstatus des Empfängers muss mit dem angegebenen Wert übereinstimmen.
Die Liste der Netzwerk-Status-Konstanten:
Name |
Wert |
Beschreibung |
---|---|---|
STATUS_OFFLINE | 1 |
Offline |
STATUS_ONLINE | 2 |
Online |
STATUS_AWAY | 4 |
Abwesend |
STATUS_DONT_DISTURB |
16 |
Nicht Stören |
Um mehrere Status zu erlauben gibt es die bit-by-bit Addition, zum Beispiel: STATUS_ONLINE | STATUS_AWAY.
Die maximale Länge einer Sofortnachrichten ist ~8000 ANSI Symbole, ~4000 Unicode-Symbole.
Beispielcode:
string InpSkypeName = "echo123"; // Skype Name string InpTextMessage = "Hello :)"; // Text Nachricht string msg; ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY); if(err==ERROR_NO_ERRORS) msg=StringFormat("Sent IM to %s, %s",InpSkypeName,InpTextMessage); else msg=StringFormat("Error sending IM to %s, error: %s",InpSkypeName,EnumToString(err)); Print(msg);
2. Senden von SMS-Nachrichten
Das Senden von SMS-Nachrichten ist kostenpflichtig im Moment!
int SkypeSendSmsMessageW(string phone_number, string message); int SkypeSendSmsMessageA(string phone_number, string message);// для MetaTrader 4
Vor dem Senden einer SMS werden einige Tests durchgeführt:
- Die Telefonnummer muss im internationalen Format angegeben werden: + [Landesvorwahl] [Regional-oder Netzwerk-Vorwahl] [Telefonnummer]
- Die Länge der Telefonnummer muss mindestens 7 Zeichen lang sein und mit einem '+' beginnen
- Die Nachricht darf keine leere Zeichenfolge sein.
Das Senden einer SMS an eine nicht existierende Nummer ist kein Fehler. Die Kosten für diese Operation werden berechnet, aber nach kurzer Zeit wieder retourniert, wenn die SMS nicht zugestellt werden konnte.
Eine SMS ist begrenzt auf 116 ANSI Symbole oder 58 Unicode-Symbole.
Beispielcode:
input string InpPhoneNumber = "+380123456789"; // Telefonnummer input string InpTextMessage = "Hello :)"; // SMS string msg; ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage); if(err==ERROR_NO_ERRORS) msg=StringFormat("Sent SMS to %s, %s",InpPhoneNumber,InpTextMessage); else msg=StringFormat("Error sending SMS to %s, error: %s",InpPhoneNumber,EnumToString(err)); Print(msg);
3. Beschreibung der Rückgabewerte
Beide Funktionen geben einen Integer-Wert zurück, die analysiert werden können, wenn nötig.
Name |
Wert |
Beschreibung |
---|---|---|
ERROR_UNKNOWN |
-1 |
Unbekannter Fehler |
ERROR_NO_ERRORS |
0 | Die erfolgreiche Ausführung |
ERROR_ATTACH |
1 |
Keine Verbindung zu Skype |
ERROR_AUTHORIZED |
2 |
Der Benutzer existiert nicht in der Kontaktliste |
ERROR_STATUS |
3 |
Ungültige Benutzer-Status |
ERROR_TIMEOUTS |
4 |
Zeitüberschreitung |
ERROR_RUNNING | 5 | Skype wurde nicht in den Speicher geladen |
ERROR_SENDING | 6 |
Fehler beim Senden |
ERROR_VALUE | 7 | Fehler der übergebenen Parameter |
ERROR_ACCESS | 8 | Zugriff auf Skype verweigert |
ERROR_SKYPE4COM | 9 | für x86: Skype4COM.dll wurde nicht registriert für x64: COM-Objekt Fehler beim Anlegen |
4. Der erste Start
Bei der ersten Verbindungsaufnahme des MetaTrader 5 mit Skype erscheint ein Pop-Up-Fenster, durch das die Verbindung erlaubt werden kann.
Nach der Zugriffserlaubnis wird das Programm in die Liste der Programmeinstellungen eingetragen: Tools -> Options -> Advanced -> Manage other programs' access to Skype.
5. Ausführungsfehler
Aus unbekanntem Grund endete die Arbeit Bibliothek kompiliert für MetaTrader 5 x64 mit einem "Stack overflow" Fehler. Wenn es mit Skype4COM verbunden ist, müssen Sie auf eine neue Nachricht warten, die diesen Fehler behebt.
Die Anlage verfügt über ein Archiv mit der Quellcode-Bibliothek (ein Projekt für den Microsoft Visual C++ 2010) und ein Leistungstest-Skript.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/11453
ALGLIB Math. Funktionen Bibliothek (v. 3.5.0) portiert auf MQL4.
Ideal ZigZagSehr schneller ZigZag. Keine abgehängten Spitzen. Keine falschen Spitzen. Zur Verwendung durch EAs. Optimierter Spitzen-Abruf