Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

Skype Control Library - Bibliothek für den MetaTrader 4

Ansichten:
823
Rating:
(34)
Veröffentlicht:
2016.04.15 14:04
Aktualisiert:
2016.11.22 07:34
skypemql.zip (756.34 KB)
\MQL4\Scripts\
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 - Numerische Analyse Bibliothek ALGLIB - Numerische Analyse Bibliothek

ALGLIB Math. Funktionen Bibliothek (v. 3.5.0) portiert auf MQL4.

Ideal ZigZag Ideal ZigZag

Sehr schneller ZigZag. Keine abgehängten Spitzen. Keine falschen Spitzen. Zur Verwendung durch EAs. Optimierter Spitzen-Abruf

FMOneEA FMOneEA

FMOneEA ist ein Scalping Expert Advisor basierend auf den MA und MACD-Indikatoren.

Auto MM Auto MM

Descript hilft Ihnen bei der Berechnung der Lotgröße um eine Position zu öffnen.