Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
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
Avalie seu funcionamento no terminal MetaTrader 5
TypeToBytes - biblioteca para MetaTrader 5
- Visualizações:
- 1100
- Avaliação:
- Publicado:
- 2017.01.09 09:16
- Atualizado:
- 2017.07.17 17:19
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Esta biblioteca multi-plataforma permite realizar convenientemente a operação um-byte-de-cada-vez com estruturas e tipos de dados padrão.
Caraterísticas
- Comparação de um-byte-de-cada-vez (== e !=) entre as estruturas e tipos de dados padrão (em MQL, os operadores para comparar estruturas estão ausentes por padrão).
- Definição do deslocamento de bytes de uma estrutura arquivada pelo seu nome.
- Leitura do valor de qualquer tipo padrão pelo deslocamento de bytes nos dados de origem.
- Registro de estruturas e tipos padrão (através do operador =) por deslocamento de bytes (através do operador []) em dados de origem.
- Atribuição por bytes (através do operador =).
- Conversão de estruturas e tipos de dados padrão em uma matriz de bytes.
Tudo mencionado se aplica a estruturas simples.
Um script com comentários detalhados é anexado para demonstrar as capacidades da biblioteca
// MQL4&5-code #property strict #include <TypeToBytes.mqh> #define PRINT(A) ::Print(#A + " = " + (string)A); void OnStart( void ) { MqlTick Tick; ::SymbolInfoTick(::Symbol(), Tick); MqlTick CloneTick = Tick; // Trabalho com estruturas if (_R(Tick) == CloneTick) // Agora é possível comparar estruturas ::Print("Equal"); // Obtenção do valor do tipo exigido segundo o deslocamento PRINT(_R(Tick)[(datetime)0]) // Verificamos o valor datetime om o deslocamento zero no objeto da estrutura MqlTick - Tick.time // Obter o deslocamento do campo de estrutura const int Offset = _OFFSET(Tick, bid); // Encontrado o deslocamento em bytes do campo de lance no objeto MqlTick PRINT(Tick.bid) // Verificamos o valor Tick.bid _W(Tick)[Offset] = 1.23456; // Registramos de acordo com o deslocamento encontrado o valor (double)1.23456 PRINT(Tick.bid) // Confira que Tick.bid seja igual a 1.23456 PRINT(_R(Tick)[(double)Offset]) // Imprimimos o valor double, que se encontra na deslocaçao Offset, isto é novamente Tick.bid PRINT(_R(Tick).Bytes[8]) // Verificamos o valor de byte com deslocamento 8 no objeto da estrutura MqlTick PRINT(_R(Tick)[(uchar)8]) // É igual, mas de outra maneira PRINT(CloneTick.bid) // Verificamos o valor CloneTick.bid _W(CloneTick)[0] = Tick; // Registramos no CloneTick por deslocamento zero o valor do objeto de estrutura Tick PRINT(CloneTick.bid) // Conferimos que CloneTick.bid == Tick.bid // Trabalho com tipos padrão color Color = C'241,248,255'; PRINT(_R(Color)[(uchar)1]) // Green-cor de componente - 248 _W(Color)[2] = (uchar)230; // Registramos por deslocamento 2 o valor (uchar)230. PRINT(Color) // Conferimos que Color agora é C'241,248,230' // Trabalho simultâneo com tipos padrão if (_R(Tick) != Color) // É possível comparar estruturas com os tipos padrão ::Print("Not equal"); // Operador de byte de atribuição int i = 0; _W(i) = (float)12.34; // Registramos na variável int a apresentação por byte do número (float)12.34 PRINT(i) // verificamos que é 1095069860 float f = 0; _W(f) = i; // Registramos na variável float a apresentação por byte do número obtido anteriormente (int)1095069860 PRINT(f) // Conferimos que o numero é igual ao original - (float)12.34 return; }
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/16280
PriceLines
Script para a elaboração de layout de preços.
StochasticDiff_HTFIndicador StochasticDiff com possibilidade de alterar o timeframe do indicador nos parâmetros de entrada.
Monthly Weekly Levels
O script exibe no gráfico os níveis semanais e mensais.
PricePositionIndicador PricePosition mostra estatísticas segundo o preço no ponto de canto, após o qual o preço sobe acima (COMPRAR) ou cai abaixo (VENDER).