Mira cómo descargar robots gratis
¡Búscanos en Facebook!
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

Skype Control Library - librería para MetaTrader 5

Visualizaciones:
1525
Ranking:
(39)
Publicado:
2014.01.15 07:30
Actualizado:
2016.11.22 07:33
skypemql.zip (749.56 KB)
\MQL5\Include\
skypemql.mqh (2.26 KB) ver
\MQL5\Scripts\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

En comercio automatizado Skype se puede utilizar para enviar mensajes de texto con la información necesaria. En este caso, funciona con Skype si implementa a través de la librería Skype4COM, i.e. un componente ActiveX que permite el acceso a la gestión del programa.

At present time Skype4COM.dll is distributed with skype, by default it is located in the following folder:

Para el Sistema operativo x86:

  • c:\Program Files\Common Files\Skype\Skype4COM.dll

Para el Sistema operativo x64:

  • c:\Program Files (x86)\Common Files\Skype\Skype4COM.dll

This SkypeMQL.dll esta librería se debe instalar en la carpeta: [terminal directory]\MQL5\Libraries

The project supports only 32-bit version of MetaTrader 4/5.


1. Enviando mensajes instantáneos

int SkypeSendInstantMessageW(string skype_name,string message,int status);
int SkypeSendInstantMessageA(string skype_name,string message,int status);// for MetaTrader 4

Antes de enviar un mensaje instantáneo la función realiza una serie de comprobaciones::

  • El nombre de usuario no puede estar vacío o comenzar con un número.
  • El usuario con el nombre especificado debe estar en la lista de contactos.
  • El mensaje no puede ser una cadena vacía.
  • El estado de la red del receptor debe coincidir con el valor especificado.

Lista de las constantes del estado de la red:

nombre de la constante
valor
descripción
STATUS_OFFLINE 1
Desconectado
STATUS_ONLINE 2
Conectado
STATUS_AWAY 4
Ausente
STATUS_DONT_DISTURB
16
Ocupado

Para configurar varios estados permitidos a la vez se utiliza además bit-a-bit de constantes, por ejemplo: STATUS_ONLINE | STATUS_AWAY.

La longitud máxima de un mensaje instantáneo es de ~8000 caracteres ANSI, ~4000 caracteres Unicode.

Código de ejemplo::

string InpSkypeName     =  "echo123";        // Skype name
string InpTextMessage   =  "Hello :)";       // Text message

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 en este momento!

int SkypeSendSmsMessageW(string phone_number, string message);
int SkypeSendSmsMessageA(string phone_number, string message);// для MetaTrader 4

Antes de enviar mensajes SMS se hacen varias comprobaciones:

  • Número de teléfono debe introducirse en el formato internacional:: + [código de país] [Código de ciudad o de la red] [número de teléfono]
  • Longitud de la cadena con el número de teléfono debe tener al menos 7 caracteres y comenzar con un signo '+'
  • El mensaje no puede estar vacío

El envío de SMS a un número inexistente no da lugar a un error. El costo de tal operación será cargado, pero será devuelto después de un corto período de tiempo, porque el mensaje, de hecho, no se han entregado.

Un mensaje SMS está limitado a 116 caracteres 116 ANSI, 58 caracteres Unicode.

Código de ejemplo::

input string InpPhoneNumber   =  "+380123456789";  // Número de teléfono 
input string InpTextMessage   =  "Hola :)";       // Mensaje de texto

string msg;
ENUM_SKYPE_ERROR err==(ENUM_SKYPE_ERROR) SkypeSendSmsMessageW(InpPhoneNumber,InpTextMessage);

if(err==ERROR_NO_ERRORS) msg=StringFormat("SMS enviado a %s, %s",InpPhoneNumber,InpTextMessage);
else msg=StringFormat("Error al enviar SMS to %s, : %s",InpPhoneNumber,EnumToString(err));

Print(msg);



3. Descripción de los valores de retorno

Ambas funciones devuelven un valor entero que se puede analizar, si es necesario.

nombre de la constante
valor
 descripción
ERROR_UNKNOWN
-1
Error desconocido
ERROR_NO_ERRORS
0 Ejecución exitosa
ERROR_ATTACH
1
No pudo conectarse a Skype
ERROR_AUTHORIZED
2
Usuario especificado no está en la lista de contactos
ERROR_STATUS
3
Condición de usuario no válido
ERROR_TIMEOUTS
4
Tiempo agotado
ERROR_RUNNING 5 Skype no se carga en la memoria
ERROR_SENDING 6
Error al enviar
ERROR_VALUE 7 Error de parámetros trasferidos
ERROR_ACCESS 8 Acceso a Skype denegado
ERROR_SKYPE4COM 9 para x86: Skype4COM.dll no esta registrada
for x64: Error al crear el objeto COM-

 

4. The first launc

En el primer acceso a la ventana del MetaTrader 5 Skype aparece con la capacidad de proporcionar acceso a la gestión del programa.

Después de confirmar su acceso a Skype, el proceso solicitante llega a la lista almacenada en la configuración del programa: Herramientas -> Opciones -> Avanzada -> Admininistrar el acceso de otros programas a Skype.

 

5. Errores de ejecución

Por razones desconocidas, el trabajo con la biblioteca compilada para MetaTrader 5 x64 termina con error "desbordamiento de pila". Si esto se debe a Skype4COM, sólo queda esperar a las nuevas versiones, en las que se corrija el error.

Se adjunta un archivo con la librería con el de código fuente (un proyecto de Microsoft Visual C + + 2010) y un script de prueba para probar su eficacia.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1537

OpenBuyPosition_X OpenBuyPosition_X

El script OpenBuyPosition_X está diseñado para comprar en los valores fijos de Stop Loss y Take Profit en puntos del el precio actual. El volumen de la posición estará determinada por el nivel de pérdidas.

OpenSellPosition_X OpenSellPosition_X

Se crea el script OpenSellPosition_X para vender en los valores fijos en puntos de Stop Loss y Take Profit desde el precio actual. El volumen de la posición estará determinada por el nivel de pérdidas.

FX_Sniper_Ergodic_CCI FX_Sniper_Ergodic_CCI

El ergodic CCI.

TrendPower TrendPower

El indicador de tendencia elaborado sobre la base de una comparación de seis niveles de medias móviles simples con el alto y bajo de la vela actual