Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
Librería de Control de Skype - librería para MetaTrader 4
- Visualizaciones:
- 940
- Ranking:
- Publicado:
- 2016.06.29 16:46
- Actualizado:
- 2016.11.22 07:33
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Puede utilizarse en el trading automático deSkype para enviar mensajes de texto con la información necesaria. En este caso el trabajo con Skype se realiza vía la librería Skype4COM, es decir, un componente de ActiveX que representa el acceso al programa gestión. Hay que descargar Skype4COM desde el sitio web oficial para los desarrolladores: http://dev.skype.com/accessories/skype4com
El archivo .dll Skype4COM debe ser instalado y registrado.
Para un sistema operativo x86:
- Copiar en la carpeta %systemroot%\System32;
- Ejecutar en la línea de comandos: %systemroot%\System32\regsvr32.exe % systemroot%\System32\Skype4COM.dll.
Para un sistema operativo x64:
- Copiar en la carpeta %systemroot%\SysWOW64;
- Ejecutar en la línea de comandos: %systemroot%\SysWOW64\regsvr32.exe % systemroot%\SysWOW64\Skype4COM.dll.
This SkypeMQL.dll library file must be installed in the folder: [terminal directory]\MQL5\Libraries
1. Envío de mensajes instantáneos
int SkypeSendInstantMessageW(string skype_name,string message,int status); int SkypeSendInstantMessageA(string skype_name,string message,int status);// for MetaTrader 4
Hay que hacer varias pruebas en una función antes de enviar mensajes instantáneos:
- El nombre de usuario no puede estar vacío o no se puede comenzar con un número.
- El usuario con el nombre especificado debe estar en la lista de contactos.
- El mensaje no puede ser un string vacío.
- El estado de la red del destinatario debe coincidir con el valor especificado.
La lista de las constantes de estado de red:
nombre de constante |
valor |
Descripción |
---|---|---|
STATUS_OFFLINE | 1 |
Offline |
STATUS_ONLINE | 2 |
Online |
STATUS_AWAY | 4 |
Fuera del sitio |
STATUS_DONT_DISTURB |
16 |
No molestar |
Para configurar varios estados permitidos simultáneamente bit a bit se utiliza la adición de constantes, por ejemplo: STATUS_ONLINE | STATUS_AWAY.
La longitud máxima de un mensaje instantáneo es ~ 8000 símbolos ANSI, ~ 4000 símbolos de Unicode.
Ejemplo de código:
string InpSkypeName = "echo123"; // Nombre Skypee string InpTextMessage = "Hello :)"; // Texto del mensaje 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. Envío de mensajes SMS
El servicio para enviar mensajes SMS es de pago por el momento!
int SkypeSendSmsMessageW(string phone_number, string message); int SkypeSendSmsMessageA(string phone_number, string message);// для MetaTrader 4
Hay que hacer varias pruebas antes de enviar el mensaje SMS:
- Se debe especificar el número de teléfono en formato internacional: + [código de país] [código de ciudad o de la red] [número de teléfono]
- La longitud de la cadena que contiene el número de teléfono debe ser al menos 7 símbolos y comenzar con un signo '+'
- El mensaje de texto no debe ser una cadena vacía
El envio del SMS a un número no existente no es un error. El costo de esta operación será cargado, pero después de un corto tiempo se devuelve, si el mensaje no fue entregado.
Los mensajes se limitan a 116 símbolos ANSI, 58 símbolos Unicode.
Ejemplo de código:
input string InpPhoneNumber = "+380123456789"; // Phone number input string InpTextMessage = "Hello :)"; // Text message 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. Descripción de los valores del retorno
Ambas funciones devuelven un valor entero que se puede analizar, si es necesario.
nombre de constante |
valor |
Descripción |
---|---|---|
ERROR_UNKNOWN |
-1 |
Error desconocido |
ERROR_NO_ERRORS |
0 | Ejecución exitosa |
ERROR_ATTACH |
1 |
No se pudo conectar a Skype |
ERROR_AUTHORIZED |
2 |
No hay ningún usuario especificado en la lista de contactos |
ERROR_STATUS |
3 |
Estado de usuario no válido |
ERROR_TIMEOUTS |
4 |
Tiempo agotado |
ERROR_RUNNING | 5 | Skype no está cargado en memoria |
ERROR_SENDING | 6 |
Envio de error |
ERROR_VALUE | 7 | Error de parámetros transferidos |
ERROR_ACCESS | 8 | Acceso denegado a Skype |
ERROR_SKYPE4COM | 9 | for x86: no se requiere Skype4COM.dll for x64: error de creación del COM-object |
4. El primer lanzamiento
En la primera conexión de MetaTrader 5 a Skype aparece una ventana pop-up que permite el acceso a la administración del programa.
Después que se confirma el acceso a Skype, el proceso solicitante entra en la lista en la configuración del programa: herramientas-> opciones-> avanzado-> administración el acceso de otros programas para Skype.
5. Errores de tiempo de ejecución
Por razones desconocidas, el trabajo con la libreria compilada para MetaTrader 5 x64 termina con error de "Desbordamiento de pila". Si está conectado con Skype4COM, entonces tienes que esperar a que los nuevos mensajes que se corregirán este error.
El accesorio tiene un archivo con código fuente de la libreria (un proyecto de Microsoft Visual C++ 2010) y script de prueba para comprobar su funcionamiento.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/11453
El EA muestra los valores actuales de los índices de valores del World Stock Indices del Google Finance mediante la función WebRequest.
SignalsDemoEl asesor experto muestra las propiedades de las señales, permite modificar la configuración de copia de la señal y suscribirse o desuscribirse de la señal del trade seleccionado.
El oscilador para el trading intradía.
spread_on_chartEl indicador spread_on_chart muestra los valores actuales de spread, stop y niveles de congelación.