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
- Visualizaciones:
- 1544
- Ranking:
- Publicado:
- 2014.01.15 07:30
- 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
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 |
![]() ![]() |
STATUS_ONLINE | 2 |
![]() |
STATUS_AWAY | 4 |
![]() |
STATUS_DONT_DISTURB |
16 |
![]() |
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](https://c.mql5.com/i/code/script.png)
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](https://c.mql5.com/i/code/script.png)
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](https://c.mql5.com/i/code/indicator.png)
El ergodic CCI.
![TrendPower](https://c.mql5.com/i/code/indicator.png)
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