Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
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

ObjectCreateAndSet - biblioteca para MetaTrader 5

Visualizações:
2246
Avaliação:
(28)
Publicado:
2015.08.10 14:57
Atualizado:
2016.11.22 07:33
\MQL5\Include\ \MQL5\Scripts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

O arquivo anexado *.mqh contém funções para a criação de objetos e alteração das propriedades do objeto. Ele é particularmente útil para mim quando eu preciso escrever rapidamente um código de teste que cria objetos em um gráfico e/ou altera as propriedades de objetos existentes.

O outro arquivo é um script com um exemplo de uso (cria um rótulo de texto, gira gradualmente em 90 graus mudando o texto e sua cor ao longo do caminho).

I. Funções para a criação de objetos:

As funções são baseadas nas funções padrão descritas na Referência MQL5. As principais diferenças em relação às funções padrão correspondentes:

  • adcionado as linhas para definir as dicas de ferramentas e definir a visibilidade de objetos em diferentes intervalos de tempo;
  • removido as linhas para a criação de funções sem definir coordenadas, preços, pontos de ancoragem (exceto para VLineCreate(...) e EventCreate(...));
  • baseada em funções para a definir (mudança) as propriedades dos objetos implementados nessa biblioteca, foram acrescentadas condições adicionais para verificar o sucesso da definição das propriedades.

Lista de funções para a criação de objetos:

Nome
Breve descrição
Tipo de objeto

VLineCreate

Cria uma linha vertical

OBJ_VLINE

HLineCreate

Cria uma linha horizontal

OBJ_HLINE

TrendCreate

Cria uma linha de tendência pelas coordenadas dadas

OBJ_TREND

ArrowedLineCreate

Cria uma linha de setas pelas coordenadas dadas

OBJ_ARROWED_LINE

ChannelCreate

Cria um canal equidistante pelas coordenadas dadas

OBJ_CHANNEL

RectangleCreate

Cria um retângulo pelas coordenadas dadas

OBJ_RECTANGLE

TriangleCreate

Cria um triângulo por coordenadas dadas

OBJ_TRIANGLE

EllipseCreate

Cria uma elipse, pelas coordenadas dadas

OBJ_ELLIPSE

ArrowCreate

Cria um OBJ_ARROW

OBJ_ARROW
TextCreate

Crie um objeto de Texto

OBJ_TEXT

LabelCreate

Cria um rótulo de texto

OBJ_LABEL

ButtonCreate

Cria um botão

OBJ_BUTTON

BitmapCreate

Cria um bitmap na janela do gráfico

OBJ_BITMAP

BitmapLabelCreate

Cria um rótulo do objeto Bitmap

OBJ_BITMAP_LABEL

EditCreate

Cria um objeto Editar

OBJ_EDIT

EventCreate

Cria um objeto de Evento no gráfico

OBJ_EVENT

RectLabelCreate

Cria uma etiqueta retângulo

OBJ_RECTANGLE_LABEL

 

II. Funções para definir as propriedades do objeto:

Usando ObjectSetDouble(...), ObjectSetInteger(...) e ObjectSetString(...) sem especificar um modificador:


Nome da função
Enumeração
Propriedade
Breve descrição
Tipo de Propriedade
1. ObSetDouble ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_SCALE Escala (propriedade de objetos de Gann e objetos Fibonacci Arcs) double
OBJPROP_ANGLE
Ângulo. Para objetos sem ângulo especificado, criado a partir de um programa, o valor é igual a EMPTY_VALUE
double
OBJPROP_DEVIATION Desvio do canal de desvio padrão
double
2. ObSetIntegerAlign ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ALIGN Alinhamento de texto horizontal no objeto Edit (OBJ_EDIT)
ENUM_ALIGN_MODE
3. ObSetIntegerAncorPoint ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR
Localização do ponto de ancoragem para os objetos OBJ_LABEL, OBJ_BITMAP_LABEL e OBJ_TEXT
ENUM_ANCHOR_POINT
4.
ObSetIntegerArrowAncor
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR Localização do ponto de âncora para objetos OBJ_ARROW
ENUM_ARROW_ANCHOR
5. ObSetIntegerArrowCode
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ARROWCODE código de arrow para OBJ_ARROW
char
6. ObSetIntegerBool ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_BACK
Objeto em segundo plano
bool
OBJPROP_FILL Preencher um objeto com cor (por OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL, OBJ_REGRESSION) bool
OBJPROP_HIDDEN Proibir a exibição do nome de um objeto gráfico na lista de objetos a partir do terminal de menu "Gráficos" - "Objetos" - "Lista de objetos". "true" esconde um objeto da lista. Por padrão, o "true" é definido para objetos que exibem eventos no calendário, histórico de negociação e para objetos criados a partir de programas MQL5. Para ver esses objetos gráficos e acessar suas propriedades, clique em
Botão "All" na "Lista de objetos" da janela.
bool
OBJPROP_SELECTED
Objeto é selecionado bool
OBJPROP_READONLY
Habilidade para editar o texto no objeto Edit bool
OBJPROP_SELECTABLE
Disponibilidade do objeto bool
OBJPROP_RAY_LEFT
O raio vai para a esquerda bool
OBJPROP_RAY_RIGHT O raio vai para a direita bool
OBJPROP_RAY Linha vertical que passa por todas as janelas de um gráfico bool
OBJPROP_ELLIPSE Mostra a elipse completa do objeto Fibonacci Arc (OBJ_FIBOARC) bool
OBJPROP_DRAWLINES Exibe as linhas para a marcação da onda de Elliott bool
OBJPROP_STATE Estado de botão (pressionado/liberado) bool
OBJPROP_DATE_SCALE Sinalização da exibição da escala para o objeto Chart bool
OBJPROP_PRICE_SCALE Sinalizador da exibição da escala do preço para o objeto Chart bool
7. ObSetIntegerBorderType ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_BORDER_TYPE
Tipo de fronteira para o objeto rótulo Retângulo
ENUM_BORDER_TYPE
8. ObSetIntegerColor ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_COLOR Cor (dependendo do tipo de objeto, controla a cor das linhas, texto etc.) color
OBJPROP_BGCOLOR Cor de fundo para OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL color
OBJPROP_BORDER_COLOR Cor da borda para OBJ_EDIT e OBJ_BUTTON color
9. ObSetIntegerCorner
ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_CORNER Canto do Gráfico para anexar um objeto gráfico
ENUM_BASE_CORNER
10. ObSetIntegerInt ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_WIDTH Espessura da linha int
OBJPROP_LEVELS Número de níveis int
OBJPROP_FONTSIZE Tamanho da fonte int
OBJPROP_TIMEFRAMES Visibilidade de um objeto em intervalos de tempo (um conjunto de sinalizadores) int
OBJPROP_XDISTANCE Distância em pixels ao longo do eixo X do canto âncora (ver nota na Referência MQL5) int
OBJPROP_YDISTANCE Distância em pixels ao longo do eixo Y do canto âncora (ver nota na Referência MQL5)
int
OBJPROP_XSIZE Largura do objeto ao longo do eixo X em pixels. Especificada para OBJ_LABEL (somente leitura), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_YSIZE Altura do objeto ao longo do eixo Y em pixels. Especificada para OBJ_LABEL (somente leitura), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_XOFFSET A coordenada X do canto superior esquerdo da área visível retangular na etiqueta Bitmap e objetos gráficos Bitmap (OBJ_BITMAP_LABEL и OBJ_BITMAP). O valor é definido em pixels em relação ao canto superior esquerdo da imagem original int
OBJPROP_YOFFSET A coordenada Y do canto superior esquerdo da área visível retangular na etiqueta Bitmap e objetos gráficos Bitmap (OBJ_BITMAP_LABEL и OBJ_BITMAP). O valor é definido em pixels em relação ao canto superior esquerdo da imagem original int
OBJPROP_CHART_SCALE Escala para o objeto gráfico (0-5) int
11. ObSetIntegerLineStyle ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_STYLE
Estilo
ENUM_LINE_STYLE
12. ObSetIntegerLong ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ZORDER Prioridade de um objeto gráfico para receber o evento de clicar em um gráfico (CHARTEVENT_CLICK). O valor padrão zero é definido ao criar um objeto, mas a prioridade pode ser aumentada se necessário. Ao aplicar objetos um em detrimento de outro apenas um deles com a maior prioridade receberá o evento CHARTEVENT_CLICK.
long

ObSetString ENUM_OBJECT_PROPERTY_STRING OBJPROP_NAME Nome do objeto
string
OBJPROP_TEXT Descrição do objeto (texto contido no objeto) string
OBJPROP_TOOLTIP Texto dica de ferramenta. Se a propriedade não estiver definida, então a dica gerada automaticamente é mostrada. Para desativar a dica de ferramenta, defina o valor "\\ n" (nova linha) para ela string
OBJPROP_FONT Fonte string
OBJPROP_SYMBOL Símbolo para o objeto Gráfico string

 

Usando ObjectSetDouble(...), ObjectSetInteger(...) e ObjectSetString(...) com a especificação de um modificador:


Nome
Enumeração Propriedade Breve descrição Tipo de Propriedade
1. ObSetDoubleMod ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_PRICE Coordenada do preço - double, modificador = número ponto de ancoragem double
OBJPROP_LEVELVALUE Valor do nível - double, modificador = número do nível
double
2.
ObSetIntegerLevelColorMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELCOLOR Nível de cor da linha - color, modificador = número do nível
color
3.
ObSetIntegerLevelStyleMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELSTYLE
Linha de nível de estilo ENUM_LINE_STYLE, modificador = número do nível
ENUM_LINE_STYLE
4.
ObSetIntegerLevelWidthMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELWIDTH
Linha do nível de largura - int, modificador = número do nível
int
5. ObSetIntegerTimeMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_TIME
Coordenada do Tempo - data e hora, modificador = número ponto de ancoragem
datetime
6. ObSetStringMod ENUM_OBJECT_PROPERTY_STRING OBJPROP_LEVELTEXT Descrição do nível - string, modificador = número do nível string
OBJPROP_BMPFILE
Nome do arquivo BMP para o objeto Bitmap Level - string. Veja também Recursos na Referência. Modificador: 0 - Ligado, 1 - Desligado string

 

Funções adicionais:



bool ObDelete (long chart_ID,string name)
Apaga um único objeto com o nome especificado

 

III. Uso:

Você pode usá-lo como um arquivo de include ou você pode simplesmente copiar certas funções a partir dele ao seu código fonte.

Se você escolher a segunda forma, eu acho que é melhor utilizar pela primeira vez como um arquivo include. Depois de implementar todas as funções de chamada necessárias você pode remover a diretiva include (#include ...).

Em seguida, o compilador irá apontar quais funções você precisa copiar a partir do arquivo de inclusão.

Uso como um arquivo include:

  1. Salve o arquivo anexado ObjectCreateAndSet.mqh para a pasta "Include". Para fazer isso, você pode usar a janela do Navegador no MetaEditor. Na janela do Navegador, clique com o botão na pasta "Include" e selecione "Open Folder".

  2. Para usar a biblioteca em seu código, copie a linha #include... a partir do início do arquivo e cole em seu código fonte:
    #include <ObjectCreateAndSet.mqh>
    O script em anexo apresenta um exemplo de incluir a biblioteca.

  3. Depois disso, compile o código. Ele permitirá ver as dicas de ferramentas para as funções incluídas quando você começar a digitar seus nomes:

Nome completo de uma função em uma dica de ferramenta depois de digitar suas primeiras letras

Fig.1. Nome completo de uma função em uma dica de ferramenta depois de digitar suas primeiras letras


Fig.2. Parâmetros de uma função em uma dica de ferramenta

Falando nisso, você pode utilizar o botão lista de funções na barra de ferramentas do MetaEditor para visualizar rapidamente a lista de funções usadas no arquivo atual:

Fig.3. Botão para mostrar a lista de funções utilizadas em um arquivo

Quando você pressionar o botão, uma lista suspensa aparecerá. Para ir para uma determinada função, clique em seu nome na lista.

Fig.4. Pressionando o botão abre a lista de funções em um arquivo (Útil para se mover rapidamente para uma determinada função)

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

ColorLinearRegSlope_V2_HTF ColorLinearRegSlope_V2_HTF

O indicador ColorLinearRegSlope_V2 com a opção de seleção do período disponível nos parâmetros de entrada.

ColorLeManTrend_HTF ColorLeManTrend_HTF

O indicador ColorLeManTrend com a opção de seleção do período disponível nos parâmetros de entrada.

ColorMomentum_AMA_HTF ColorMomentum_AMA_HTF

O indicador ColorMomentum_AMA com a opção de seleção do período disponível nos parâmetros de entrada.

ColorMaRsi-Trigger_HTF ColorMaRsi-Trigger_HTF

O indicador ColorMaRsi-Trigger com a opção de seleção do período disponível nos parâmetros de entrada.