Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 1788
- Avaliação:
- Publicado:
- 2014.01.14 14:37
- Atualizado:
- 2016.11.22 07:33
-
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 |
![]() ![]() |
STATUS_ONLINE | 2 |
![]() |
STATUS_AWAY | 4 |
![]() |
STATUS_DONT_DISTURB |
16 |
![]() |
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

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

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.

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.

O CCI ergódico.