Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

Boblioteca de Controle Skype - biblioteca para MetaTrader 5

Visualizações:
1661
Avaliação:
(39)
Publicado:
2014.01.14 14:37
Atualizado:
2016.11.22 07:33
skypemql.zip (749.56 KB)
\MQL5\Include\ \MQL5\Scripts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Na negociação automatizada o Skype pode ser usado para envio de mensagens com as informações necessárias.

Neste caso o trabalho com o Skype é realizado através da biblioteca Skype4COM, ou seja, um componente ActiveX que representa o acesso para o gerenciamento do programa.

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

Para operar no sistema x86:

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

Para operar no sistema x64:

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

Esta biblioteca SkypeMQL.dll deve ser instalada na pasta: [terminal directory]\MQL5\Libraries

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


1. Enviando mensagens instantâneas

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

Existem vários testes das funções antes de enviar mensagens instantâneas:

  • O nome de usuário não pode estar vazio ou iniciar com número.
  • O usuário com o nome especificado deve estar na lista de contato.
  • A mensagem não pode ser um conteúdo vazio.
  • O status de rede do destinatário deve coincidir com o valor especificado .

A lista das constantes de status da rede:

nome das constantes
valor
descrição
STATUS_OFFLINE 1
Offline
STATUS_ONLINE 2
Online
STATUS_AWAY 4
Fora de local
STATUS_DONT_DISTURB
16
Não perturbe

Exemplo de uso da definição para vários status permitidos simultâneos bit a bit das constantes: STATUS_ONLINE | STATUS_AWAY.

O tamanho máximo de mensagens instantâneas são ~8000 símbolos ANSI e ~4000 símbolos Unicode.

O exemplo de um código:

string InpSkypeName     =  "echo123";        // nome Skype
string InpTextMessage   =  "Hello :)";       // Mensagem do Texto

string msg;
ENUM_SKYPE_ERROR err=(ENUM_SKYPE_ERROR)SkypeSendInstantMessageW(InpSkypeName,InpTextMessage,STATUS_ONLINE|STATUS_AWAY);

if(err==ERROR_NO_ERRORS) msg=StringFormat("Enviar IM para %s, %s",InpSkypeName,InpTextMessage);
else msg=StringFormat("Enviando erro para %s, erro: %s",InpSkypeName,EnumToString(err));

Print(msg);

2. Enviando mensagens SMS

A taxa de pagamento para o serviço de envio de mensagens é realizado instantaneamente!

int SkypeSendSmsMessageW(string phone_number, string message);
int SkypeSendSmsMessageA(string phone_number, string message);// para MetaTrader 4

Existem vários testes das funções antes de enviar mensagens instantâneas::

  • O número de telefone deve ser especificado no formato internacional: + [código do país] [cidade ou código de rede] [número de telefone]
  • O tamanho da sequência que contém o número de telefone deve ter de pelo menos 7 símbolos e começar com um sinal de '+'
  • A mensagem não pode ser um conteúdo vazio.

Enviando SMS um número não existente não é um erro. O custo para esta operação será cobrado.

A mensagem SMS é limitada a 116 símbolos ANSI 58 símbolos Unicode.

O exemplo de um código:

input string InpPhoneNumber   =  "+380123456789";  // número do telefone
input string InpTextMessage   =  "Hello :)";       //Mensagem de Texto

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

if(err==ERROR_NO_ERRORS) msg=StringFormat("Enviar SMS para %s, %s",InpPhoneNumber,InpTextMessage);
else msg=StringFormat("Enviando erro SMS para %s, error: %s",InpPhoneNumber,EnumToString(err));

Print(msg);

Ambas as funções retornam um valor inteiro que pode ser analisado, se necessário.

nome das constantes
valor
 descrição
ERROR_UNKNOWN
-1
Erro desconhecido
ERROR_NO_ERRORS
0 Execução bem sucedida
ERROR_ATTACH
1
Falha ao conectar com o Skype
ERROR_AUTHORIZED
2
Não existe o usuário especificado na lista de contatos
ERROR_STATUS
3
Status do usuário inválido
ERROR_TIMEOUTS
4
Tempo esgotado
ERROR_RUNNING 5 Skype não está carregando a memória
ERROR_SENDING 6
Enviando error
ERROR_VALUE 7 Transferido erros de parâmetros
ERROR_ACCESS 8 Acesso negado ao Skype
ERROR_SKYPE4COM 9 para x86: Skype4COM.dll não está registrado
para x64: erro de criação do COM-object

 

4. O primeiro lançamento

Irá aparecer uma janela pop-up na primeira conexão do terminal MetaTrader 5 ao Skype que permitirá o acesso de gestão do programa.

Depois de acessar ao Skype, o processo solicitando entrada para a lista armazenada nas configurações do programa é seguinte: Ferramentas -> Opções -> Avançado -> Gerir o acesso de outros programas ao Skype.

 

5. Erros de execução

Por razões desconhecidas, o trabalho com a biblioteca compilada para MetaTrader 5 x64 termina com um erro "Stack overflow"". Se está conectado com Skype4COM, então você tem que esperar para as novas mensagens quando esse erro será corrigido.

No anexo existe um arquivo com código fonte da biblioteca (um projeto para Microsoft Visual C++ 2010) e script de teste para verificar o seu desempenho.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/1537

Relative Strength Index (RSI) Relative Strength Index (RSI)

O Indicador Relative Strength Index (RSI) - Índice de Força Relativa - é um oscilador seguidor de preço que varia entre 0 a 100.

OpenBuyPosition_X OpenBuyPosition_X

O script OpenBuyPosition_X foi criado para realizar compras a um valor fixo em pontos do Stop Loss e de Take Profit do preço atual. O volume da posição é determinado com base nos níveis de perdas.

Relative Vigor Index (RVI) Relative Vigor Index (RVI)

O ponto principal do Indicador Relative Vigor Index (RVI) é que no mercado altista, o preço de fechamento, como regra, deve ser maior que o preço de abertura.

FX_Sniper_Ergodic_CCI FX_Sniper_Ergodic_CCI

O CCI ergódico.