Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Librería de Control de Skype - librería para MetaTrader 4

Visualizaciones:
924
Ranking:
(34)
Publicado:
2016.06.29 16:46
Actualizado:
2016.11.22 07:33
skypemql.zip (756.34 KB)
\MQL4\Scripts\
MQL5 Freelance ¿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

QuotesDemo QuotesDemo

El EA muestra los valores actuales de los índices de valores del World Stock Indices del Google Finance mediante la función WebRequest.

SignalsDemo SignalsDemo

El 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.

AFL Winner AFL Winner

El oscilador para el trading intradía.

spread_on_chart spread_on_chart

El indicador spread_on_chart muestra los valores actuales de spread, stop y niveles de congelación.