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:
- 1651
- 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

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.

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.

El ergodic CCI.

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