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
Visualizações:
27
Avaliação:
(6)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Você já precisou copiar e colar alguns objetos gráficos entre gráficos abertos? Acho que sim. Surpreendentemente, o MetaTrader não oferece o recurso "Copiar e colar" para objetos. A única coisa que lhe permite obter um efeito mais ou menos semelhante são os modelos (arquivos tpl). Mas o modelo armazena o estado completo do gráfico, incluindo indicadores, configurações e muitas coisas auxiliares, que podem ser irrelevantes e desnecessárias para o procedimento de replicação necessário.

É por isso que desenvolvi esse indicador ChartObjectsCopyPaste.mq5. Ele copia os objetos selecionados para a área de transferência, de onde eles podem ser colados em outro(s) gráfico(s). Sem amarras.

O indicador é baseado em outro indicador publicado no livro de algotrading - ObjectGroupEdit.mq5.

Siga o link para saber mais sobre todas as classes subjacentes(ObjectMonitor, MapArray e outras) que funcionam nos bastidores.

Esse indicador não tem buffers. Ele deve ser anexado a pelo menos dois gráficos: o gráfico de origem, do qual você deseja copiar os objetos, e o gráfico de destino, onde você planeja colá-los.

Durante a execução em um gráfico, o indicador rastreia os objetos gráficos existentes e faz anotações sobre quais estão selecionados.

Como de costume, os comandos "Copiar e colar" funcionam em pares:

  1. Pressione a tecla de atalho Ctrl+Q para copiar todos os objetos selecionados para a área de transferência do Windows como um texto (você pode salvá-lo e visualizá-lo em qualquer editor de texto; veja um exemplo abaixo).
  2. Em um gráfico de destino, pressione Ctrl+J para colar todos os objetos da área de transferência.

Por que Ctrl+Q/Ctrl+J? Essas são apenas duas combinações de teclas vagas escolhidas voluntariamente entre pouquíssimas. Isso ocorre porque o MetaTrader intercepta e não propaga muitas teclas de atalho para os programas MQL. Isso se aplica especialmente ao padrão Ctrl+C/Ctrl+V/Ctrl+Ins/Shift+Ins, que não está funcionando nesse contexto.

Como o código-fonte está disponível, você pode alterar as teclas de atalho para outras combinações.

Como o indicador usa DLLs do sistema para acessar a área de transferência do Windows, você deve permitir importações de DLL na caixa de diálogo Propriedades, na guia Dependências.

Devido ao fato de a base de código não permitir importações de DLL, o código relacionado à área de transferência está envolvido na diretiva de pré-processador condicional #ifdef DLL_LINK, portanto, descomente a linha

#define DLL_LINK

antes da compilação. Caso contrário, você verá como os stubs da função da área de transferência mostrarão alertas em resposta ao pressionamento das teclas de atalho, mas nenhuma ação real será executada!

As entradas são:
  • MakeAllSelectable - sinalizador para tornar todos os objetos selecionáveis (que normalmente é falso para os objetos criados programaticamente);
  • LogDetails - sinalizador para gerar todas as propriedades dos objetos transferidos para o registro;
O indicador não verifica se os objetos colados correspondem ao gráfico de destino real, como símbolo, faixa de preço, número de subjanelas, etc. - você mesmo deve fazer isso.

Aqui está um exemplo de texto da área de transferência com 2 objetos:

OBJ_VLINE       H1 Vertical Line 5578   0       0
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   55295
1       OBJPROP_STYLE   2
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    0
8       OBJPROP_TIME    1726739940
10      OBJPROP_SELECTABLE      1
11      OBJPROP_CREATETIME      1726847009
12      OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1032    OBJPROP_RAY     1
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   1.11449
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Vertical Line 5578
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 
OBJ_CHANNEL     H1 Equidistant Channel 40885    5       1
enum ENUM_OBJECT_PROPERTY_INTEGER
0       OBJPROP_COLOR   255
1       OBJPROP_STYLE   0
2       OBJPROP_WIDTH   1
3       OBJPROP_BACK    0
4       OBJPROP_SELECTED        1
7       OBJPROP_TYPE    5
8       OBJPROP_TIME    1726758000
8       OBJPROP_TIME.1  1726797600
8       OBJPROP_TIME.2  1726758000
10      OBJPROP_SELECTABLE      1
11      OBJPROP_CREATETIME      1726847883
12      OBJPROP_TIMEFRAMES      2097151
200     OBJPROP_LEVELS  0
207     OBJPROP_ZORDER  0
208     OBJPROP_HIDDEN  0
1003    OBJPROP_RAY_LEFT        0
1004    OBJPROP_RAY_RIGHT       0
1031    OBJPROP_FILL    0
enum ENUM_OBJECT_PROPERTY_DOUBLE
9       OBJPROP_PRICE   -28.113879003558715
9       OBJPROP_PRICE.1 -21.708185053380777
9       OBJPROP_PRICE.2 -48.04270462633452
enum ENUM_OBJECT_PROPERTY_STRING
5       OBJPROP_NAME    H1 Equidistant Channel 40885
6       OBJPROP_TEXT    
206     OBJPROP_TOOLTIP 

E aqui estão esses objetos colados no gráfico:

2 objetos gráficos colados no gráfico por meio da área de transferência








Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/52263

FERRAMENTAS DE CALIBRAÇÃO EM ZIGUEZAGUE FERRAMENTAS DE CALIBRAÇÃO EM ZIGUEZAGUE

Permite visualizar facilmente períodos de alta e de baixa confirmados pelo indicador de ziguezague usando vlines. Você pode controlar a exibição do ziguezague, escolhendo começar do início do gráfico ou de um determinado número de barras, bem como a exibição de rótulos que mostram o preço do pico ou da depressão, a direção do período passado e sua amplitude em pips. Obviamente, isso funciona tanto na janela principal quanto nas subjanelas. AVISO!!! Trata-se de uma ajuda valiosa para compreender e calibrar indicadores e desenvolver estratégias, mas não se destina ao uso direto. Traduzido com DeepL.com (versão gratuita)

Code To Check And Delete Chart Objects For MT5 Code To Check And Delete Chart Objects For MT5

- O script examina o gráfico atual em busca de objetos de gráfico disponíveis, - Conta e os exclui de acordo - E registra os nomes dos objetos no gráfico, respectivamente.

Accumulation/Distribution Accumulation/Distribution

O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.