Como começar com o Metatrader 5 - página 110

 
Sergey Golubev:

e o seguinte artigo -



Eu sou novo, você pode me ajudar?

 
armynnoow:

Eu sou novo, você pode me ajudar?


Há um posto para iniciantes (sobre "por onde eu começo") -

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Como começar com o Metatrader 5

Sergey Golubev, 2017.10.03 06:39

Apenas para iniciantes (se você é novo neste site, por exemplo) - é altamente recomendável ler os seguintes artigos/postais/threads -

============

1. Nota do usuário

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Como começar com o Metatrader 5

Sergey Golubev, 2016.12.30 17:26

Apenas alguns lembretes sobre como inserir código no post(para novos usuários/novos usuários) - leia aqui, e leia o artigo inteiro: MQL5.community - Memorando do usuário

============

2. Como fazer uma busca no portal do fórum/mql5

============

3. Resumos

3.1Como começar com MT5, um resumo !(incl. o tópico anterior:Como começar com MetaTrader e forex, o início)
MetaTrader 4 Ajuda - Terminal do Cliente - Guia do Usuário
MetaTrader 5 Ajuda - Plataforma de Operação - Manual do Usuário

3.2Tudo (ainda não) sobre Testador de Estratégia, Otimização e Nuvem

3.3.resumo do SISTEMA ASCTREND(incl. 2 bons EAs)

3.4SISTEMA DE TRATAMENTO DE ARMADILHAS Como

3.5Sistema Parabólico PriceChannel(incl. 2 versões do EA)

3.6Avaliação da Condição de Mercado(2 EAs foram criados)

3.7Ichimoku

3.8Vídeos financeiros e comerciais - Índice

3.9Tudo sobre a guia Calendário e Eventos Macroeconômicos

3.10Tudo sobre o MQL5 Wizard : criar robôs sem programação

============

4. Primeiro artigo chave:
MetaTrader 5 - More Than You Can Imagine!

============

5. O segundo artigo chave:
Oportunidades sem limites com MetaTrader 5 e MQL5

============

6. Como adicionar o corretor ao MT5:

6.1. Ajuda do MetaTrader 5 -Abrir uma conta

6.2. MetaTrader 5 Android OS Help -Abrindo uma conta demo

6.3 MetaTrader 5 Ajuda iPhone/iPad -Conectando a uma conta e abrindo uma conta demo

============

7.Sinais

============

8.mercado

============

9.MQL5 VPS para MT4/MT5

9.1. Como se inscrever no VPShttps://www.mql5.com/en/forum/187872#comment_4851530

9.2. Você pode mover sua assinatura VPS de uma conta para outra
https://www.mql5.com/en/forum/172120#comment_4166892

9.3. Descrição MQL5 VPS
https://www.mql5.com/en/forum/172553#comment_4185979

9.4. Monitor VPS

9.5. Sincronizar -
https://www.mql5.com/en/forum/211508

============

10. Corretores

10.1. Encontre um servidor pelo nome do Corretor:
https://www.mql5.com/en/forum/214820

10.2. Ajuda para iniciantes

10.3. Corretores dos EUA
https://www.mql5.com/en/forum/12423/page500#comment_4736742

============

11. Promoção:
https://www.mql5.com/en/forum/9950/page88#comment_3982036

https://www.mql5.com/en/forum/9950/page88#comment_3982036

============

12. Freelance, descompilação, as regras, exemplos do código descompilado:

============

13. regras gerais e melhores práticas do Fórum

13.1Discussão

13.2Regras do fórum

============

14. O tópico sobre os tópicos:o que está acontecendo no fórum em todo lugar
Bom tópico se você está procurando algo novo e moderno (e grátis)

============

15.MT5, mql5, mql5.com sugestões de melhoria

============

16. Como se inscrever no tópico ou convidar uma pessoa a participar do tópico -o fio condutor

============


 

O MetaEditor (que é atualizado junto com o Metatrader) foi muito atualizado.
Muita coisa!
Mais proteção de código, projetos, e mais e mais.

Você pode tentar encontrá-lo por conta própria, ou esperar pelos lançamentos que serão publicados durante a semana.

Apenas para informação.

 

É uma atualização muito interessante especialmente para o MetaEditor, então parece que vou precisar aprender sobre isso.

------------------

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Plataforma MetaTrader 5 Beta Build 1700: Projetos em MetaEditor e instrumentos financeiros sintéticos

MetaQuotes Software Corp., 2017.12.05 14:33

Plataforma MetaTrader 5 Beta Build 1700: Projetos em MetaEditor e instrumentos financeiros sintéticos

A versão beta da plataforma MetaTrader 5 atualizada será lançada em 6 de dezembro de 2017. Nós atualizaremos nosso servidor público MetaQuotes-Demo localizado em access.metatrader5.com:443. Convidamos todos os traders a participar dos testes a fim de avaliar as características da plataforma atualizada e para ajudar os desenvolvedores a corrigir erros.

Para atualizar a plataforma MetaTrader 5 até o 1700, conecte-se ao servidor access.metatrader5.com:443.

A construção final da nova plataforma MetaTrader 5 será lançada após o teste beta público.

Fim do suporte para versões de terminais mais antigos
O suporte para versões mais antigas de terminais desktop e móveis terminará com o lançamento da nova versão da plataforma:
  • Terminal do cliente: versões abaixo de 730, 23 de novembro de 2012
  • Terminal Móvel para iPhone: versões abaixo de 1171, 11 de novembro de 2015
  • Terminal Móvel para Android: versões abaixo de 1334, 5 de agosto de 2016
Os terminais sem suporte não poderão ser conectados a novas versões de servidores. Recomendamos fortemente que você atualize seus terminais com antecedência.

Mudanças no protocolo de operação de armazenamento da MQL5
Para apoiar novos projetos compartilhados, atualizamos o protocolo de operação com a MQL5 Storage. Portanto, será necessário realizar um checkout de todos os dados do armazenamento após a atualização da plataforma. Os dados armazenados no MQL5 Storage não serão perdidos ou afetados durante a atualização.

Antes de atualizar a plataforma para a nova versão, recomendamos que você realize a operação Commit para enviar todas as mudanças locais para o Armazenamento MQL5.

A atualização apresentará as seguintes mudanças:

  1. Projetos completos estão agora disponíveis no MetaEditor. O processo de desenvolvimento do programa se tornou mais conveniente.

    Agora o arquivo principal do programa MQ5 não aparece como o projeto. O projeto é um arquivo "MQPROJ" separado, que armazena as configurações do programa, parâmetros de compilação e informações sobre todos os arquivos utilizados. As configurações principais do projeto podem ser acessadas a partir de uma caixa de diálogo separada, portanto não há necessidade de especificá-las no código fonte via #property agora.

    Uma aba separada no Navegador é fornecida para um trabalho conveniente com o projeto. Todos os arquivos, tais como include, resource, header e outros arquivos estão organizados em categorias nesta aba. Todos os arquivos são automaticamente adicionados ao Navegador do projeto. Por exemplo, se você incluir um novo arquivo MQH, ele aparecerá automaticamente na seção "Dependências" do navegador.

    O suporte a novos projetos também foi implementado no repositório online MQL5 Storage atualizado. É uma opção conveniente para o desenvolvimento de grandes projetos através da colaboração com outros membros da comunidade MQL5.community.

    A seção Novos Projetos Compartilhados é fornecida para projetos de grupo. Um projeto criado nesta seção é imediatamente enviado para o armazenamento: você pode conceder permissões a outros usuários e iniciar a colaboração imediatamente.





    Quando você compila um projeto em Projetos Compartilhados, um arquivo EX5 executável é automaticamente copiado para o diretório local de Especialistas, Indicadores ou Scripts, dependendo do tipo de programa. Você pode facilmente iniciar o programa em um gráfico sem ter que copiar arquivos manualmente.


    O que há de novo na operação de armazenamento da MQL5
    Para implementar apoio a novos projetos compartilhados, modificamos o protocolo de operação com a MQL5 Storage. Portanto, será necessário realizar um checkout de todos os dados do armazenamento após a atualização da plataforma. Os dados armazenados no armazenamento da MQL5 não serão perdidos ou afetados durante a atualização.
    Antes de atualizar a plataforma para a nova versão, recomendamos que você realize a operação Commit para enviar todas as mudanças locais para o armazenamento MQL5.
    O comando 'Checkout from Storage' agora está disponível apenas em Projetos Compartilhados. Para outros catálogos na pasta MQL5 são utilizados os comandos 'Activate MQL5 Storage' e 'Update from Storage':

    • Se você não tiver usado o MQL5 Storage na instância atual do MetaEditor, clique em 'Ativar MQL5 Storage' no menu de contexto da janela Navegador. Todos os catálogos e arquivos disponíveis em seu armazenamento serão carregados em seu computador local.
    • Se você já estiver trabalhando com o armazenamento, clique em 'Atualizar arquivos do armazenamento' no menu de contexto do elemento MQL5 raiz no Navegador para receber todos os dados do armazenamento.


    Novos projetos: Exemplos de detalhes de criação e operação
    Uma nova entidade de projeto foi adicionada no MetaEditor. Um projeto é um arquivo mqproj que armazena propriedades comuns do programa e informações sobre todos os arquivos usados. Agora, as propriedades do programa podem ser convenientemente gerenciadas a partir de um diálogo separado no MetaEditor em vez de modificação manual de propriedades no código fonte (usando as diretrizes #property).

    Se você tiver código disponível, você pode facilmente testar novos projetos usando o comando 'New Project from Source'.




    No diretório onde se encontra o arquivo selecionado, será criado um novo arquivo de projeto com o mesmo nome e a extensão mqproj. As principais propriedades do programa especificadas no código fonte via #property serão automaticamente adicionadas ao projeto, incluindo o nome, direitos autorais, versão, link para o site do desenvolvedor e descrição do programa.
    O conjunto de propriedades do programa no arquivo do projeto recebe maior prioridade do que as propriedades especificadas no código do programa. Se forem especificadas propriedades tanto no projeto quanto no arquivo fonte, serão usadas propriedades do projeto.




    Duas novas opções para a compilação de programas MQL5 foram adicionadas às propriedades do projeto:

    • Permitir otimização adicional: aplicações com a otimização desativada são compiladas mais rapidamente, mas executadas mais lentamente.
    • Verificar divisores de ponto flutuante: aplicações com a verificação desativada funcionam um pouco mais rápido, porque o erro de divisão zero não é verificado durante a execução do código.

    Para trabalhar com projetos, use uma aba separada Project na janela Navigator. Todos os arquivos usados em um projeto são exibidos nesta aba de uma forma conveniente. Quando um projeto é gerado a partir de um arquivo fonte, todos os arquivos utilizados incluem arquivos (especificados usando o diretório #include no arquivo principal MQ5 e em seus arquivos include) são automaticamente adicionados à seção Dependências.

    Quando um novo arquivo include é adicionado ao código-fonte, ele também aparece no Navegador do projeto. Os arquivos de cabeçalho usados são adicionados à seção Cabeçalhos; imagens, sons e outros programas MQL5 usados no projeto como recurso são adicionados à seção Recursos. Os arquivos MQ5 com o código fonte são exibidos na seção Fontes. Na seção 'Configurações e arquivos', você pode adicionar outros arquivos, tais como arquivos set para testes e modelos de gráficos.

    Use os comandos do menu de contexto para adicionar arquivos existentes a um projeto ou para excluir arquivos dele. Tenha cuidado ao excluir arquivos, já que você pode remover um arquivo do projeto (remover a ligação) ou apagá-lo completamente do disco rígido:



    A criação de um novo projeto é tão fácil quanto a criação de um programa MQL5 normal. Clique em 'Novo Projeto', selecione o tipo de novo programa e especifique propriedades (tais como nome, manipuladores de eventos, etc.) no MQL5 Wizard.

    Para obter um arquivo EX5 executável, você pode abrir o projeto e pressionar F7 (o comando de compilação) ou abrir o arquivo MQ5 principal do programa e compilá-lo.

    Projetos compartilhados no armazenamento da MQL5: Detalhes da operação
    Os projetos compartilhados são gerenciados a partir de uma seção separada de Projetos Compartilhados. Se você ainda não tiver conectado o armazenamento, execute o comando 'Ativar armazenamento MQL5' a partir do menu de contexto da pasta desejada. O MetaEditor verificará se o seu armazenamento contém algum dado salvo e se há algum projeto de compartilhamento disponível para você. Todos os dados disponíveis serão recuperados do armazenamento e carregados em seu computador (a operação de checkout). Os projetos de grupo disponíveis aparecem na seção de Projetos Compartilhados. Para recuperar os projetos, execute "Checkout do Armazenamento" no menu de contexto.

    Para criar um novo projeto de grupo, selecione a pasta Projetos Compartilhados e clique em "Novo Projeto":



    Em seguida, complete os passos padrão MQL5: defina o tipo, nome e propriedades do programa desejado. Para projetos em grupo, deve-se usar nomes claros e compreensíveis, para que os outros participantes possam encontrá-los facilmente. Somente letras latinas sem espaços podem ser usadas em nomes de projetos.

    Um objeto criado é imediatamente adicionado ao armazenamento da MQL5. Os arquivos da biblioteca padrão usados no projeto não são adicionados ao armazenamento, e você pode adicioná-los manualmente.

    Para permitir que outros participantes possam trabalhar com o projeto, abra suas propriedades. A partir daqui, você pode conceder permissões a usuários selecionados especificando seu login MQL5.community, bem como definir parâmetros comuns para o trabalho em grupo:

    • Projeto privado
    • Livre para participar do projeto
    • Junte-se ao projeto por solicitação



    Quando você compila um projeto de grupo, o arquivo executável EX5 é automaticamente copiado para o diretório local de Especialistas, Indicadores ou Scripts, dependendo do tipo de programa. Ele permite executar instantaneamente o programa no terminal sem ter que copiá-lo manualmente para o diretório apropriado.

  2. Terminal: Agora, a plataforma de negociação permite criar instrumentos financeiros sintéticos, ou seja, símbolos baseados em um ou mais instrumentos existentes. O usuário deve definir a fórmula para calcular as cotações, após o que a plataforma gerará ticks do instrumento sintético em tempo real, e também criará seu histórico minucioso.

    Como Funciona
    • Você cria um instrumento sintético e estabelece a fórmula para o cálculo do preço.
    • A plataforma calcula ticks com uma freqüência de 10 vezes por segundo, desde que o preço de pelo menos um dos instrumentos usados na fórmula tenha mudado.
    • A plataforma também calcula o histórico de barras de um minuto (para os últimos dois meses) com base em barras minúsculas de instrumentos usados em sua fórmula. Todas as barras novas (atuais e subseqüentes) são construídas em tempo real com base nas carrapatas geradas pelo instrumento sintético.
    Por exemplo, você pode criar um instrumento mostrando o índice do dólar (USDX). Ele usa a fórmula abaixo:
    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
    Nota: os pares USDEUR e USDGBP são usados na fórmula do índice do dólar de origem. Como somente os pares inversos estão disponíveis na plataforma, um poder negativo e Ask ao invés de Bid são usados na fórmula do símbolo sintético.

    A plataforma calculará em tempo real o preço do novo instrumento com base nas cotações dos outros seis símbolos fornecidos por seu corretor. As mudanças de preço serão visualizadas na janela Market Watch e no gráfico:



    Crie um novo símbolo personalizado, abra sua especificação e insira a fórmula:



    Por conveniência, o editor de fórmulas mostra uma lista de opções possíveis enquanto você digita os nomes dos símbolos e funções.

    O cálculo de carrapatos e barras de um minuto de um instrumento sintético começa quando este instrumento é adicionado ao Market Watch. Além disso, todos os símbolos necessários para o cálculo do preço sintético são automaticamente adicionados ao relógio do mercado. Uma entrada sobre o início do cálculo será adicionada ao diário da plataforma: Símbolo Sintético USDX: o processamento é iniciado.
    • O cálculo de um instrumento sintético pára depois que ele é retirado do Market Watch.
    • Os símbolos que são usados atualmente para calcular os preços dos símbolos sintéticos não podem ser ocultados do Market Watch.

    Cálculo de citações em tempo real
    A cada 100 ms (ou seja, dez vezes por segundo) são verificados os preços dos símbolos usados no cálculo. Se pelo menos um deles tiver mudado, o preço do símbolo sintético é calculado e um novo tick é gerado. O cálculo é feito em paralelo em três linhas para Bid, Ask e Last prices. Por exemplo, se a fórmula de cálculo for EURUSD*GBPUSD, o preço do símbolo sintético será calculado como se segue:

    • Bid = bid(EURUSD)*bid(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Último = último(EURUSD)*last(GBPUSD)

    A disponibilidade das mudanças é verificada separadamente para cada preço. Por exemplo, se apenas o preço de licitação de um instrumento de origem tiver mudado, apenas o preço apropriado de um instrumento sintético será calculado.

    Criando um Histórico de Barras Minuciosas
    Além de coletar carrapatos em tempo real, a plataforma cria um minuto de história do instrumento sintético. Ela permite aos comerciantes visualizar gráficos de símbolos sintéticos semelhantes aos normais, bem como realizar análises técnicas utilizando objetos e indicadores.

    Quando um trader adiciona um instrumento sintético ao Market Watch, a plataforma verifica se seu histórico de minutos calculado existe. Se não existir, será criado o histórico dos últimos 60 dias, que inclui cerca de 50.000 barras. Se um valor mais baixo for especificado no parâmetro "Máx. barras no gráfico" nas configurações da plataforma, a restrição apropriada será aplicada.

    Se algumas das barras dentro deste período já tiverem sido criadas, a plataforma gerará adicionalmente novas barras. Um histórico mais profundo é criado se o usuário tentar visualizar um período de tempo mais antigo no gráfico (rolando-o de volta ou acessando-o a partir de um programa MQL5).

    O histórico de barras de um minuto de um instrumento sintético é calculado com base em uma barra de um minuto (não carrapatos) de instrumentos usados em sua fórmula. Por exemplo, para calcular o preço aberto de uma barra de 1 minuto de um símbolo sintético, a plataforma utiliza os preços abertos dos símbolos utilizados em sua fórmula. Os preços Alto, Baixo e Fechado são calculados de forma semelhante.

    Se a barra necessária não estiver disponível para nenhum dos instrumentos, a plataforma utilizará o preço Fechado da barra anterior. Por exemplo, três instrumentos são usados: EURUSD, USDJPY e GBPUSD. Se no cálculo de uma barra correspondente a 12:00 a barra requerida de USDJPY não estiver disponível, os seguintes preços serão usados para o cálculo:

    • Aberto: EURUSD Aberto 12:00, USDJPY Fechado 11:59, GBPUSD Aberto 12:00
    • Alta: EURUSD Alta 12:00, USDJPY Fechado 11:59, GBPUSD Alta 12:00
    • Baixo: EURUSD Baixo 12:00, USDJPY Fechar 11:59, GBPUSD Baixo 12:00
    • Fechar: EURUSD Fechado 12:00, USDJPY Fechado 11:59, GBPUSD Fechado 12:00

    Se a barra minuto não estiver disponível para todos os instrumentos usados na fórmula, a barra minuto apropriada do instrumento sintético não será calculada.

    Desenho de Novas Barras Minutas
    Todas as novas barras (atuais e subsequentes) do instrumento sintético são criadas com base nos carrapatos gerados. O preço utilizado para construir as barras depende do valor do parâmetro Modo Gráfico na especificação:




    Que operações podem ser usadas na Fórmula do Símbolo
    Os dados de preços e algumas propriedades dos símbolos existentes fornecidos pelo corretor podem ser usados para calcular os preços sintéticos. Especifique o seguinte:

    • Nome do símbolo - dependendo do preço sintético a ser calculado, será utilizado o Bid, Ask ou Last do instrumento especificado. Por exemplo, se EURUSD*GBPUSD for especificado, Bid é calculado como bid(EURUSD)*bid(GBPUSD), e Ask = ask(EURUSD)*ask(GBPUSD).
    • bid(nome do símbolo) - o preço de licitação do símbolo especificado será utilizado forçosamente para o cálculo do preço de licitação do instrumento sintético. Esta opção é similar à anterior (onde o tipo de preço não é especificado).
    • ask(nome do símbolo) - o preço Ask do símbolo especificado será usado para calcular o preço de Licitação do instrumento sintético. O preço do lance do instrumento especificado será usado para calcular o Ask. O último preço do símbolo especificado será usado para o cálculo do último. Se Ask(EURUSD)*GBPUSD for especificado, o seguinte cálculo será usado para o cálculo:
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Último = último(EURUSD)*last(GBPUSD)
    • Last(nome do símbolo) - o último preço do símbolo especificado será usado no cálculo de todos os preços do instrumento sintético (Bid, Ask e Last). Se último(EURUSD)*GBPUSD for especificado, será utilizado o seguinte cálculo:
      • Вid = último(EURUSD)*bid(GBPUSD)
      • Ask = last(EURUSD)*ask(GBPUSD)
      • Último = último(EURUSD)*last(GBPUSD)
    • volume(nome do símbolo) - o volume do carrapato do instrumento especificado será usado na fórmula. Certifique-se de que a informação do volume seja fornecida pelo corretor para este símbolo.
    • point(nome do símbolo) - a alteração do preço mínimo do instrumento especificado será usada nos cálculos.
    • dígitos(nome do símbolo) - o número de casas decimais no preço do símbolo especificado será usado na fórmula.

    Se um símbolo tem um nome complexo (contém hífens, pontos, etc.), ele deve ser escrito entre aspas. Exemplo: "RTS-6.17".
    As seguintes operações aritméticas podem ser usadas na fórmula: adição (+), subtração (-), multiplicação (*), desenvolvimento (/) e restante da divisão (%). Por exemplo, EURUSD+GBPUSD significa que o preço é calculado como a soma dos preços EURUSD e GBPUSD. Você também pode usar o unário menos para mudar o sinal, por exemplo: -10*EURUSD.

    Tenha em mente a prioridade de cálculo das operações aritméticas:

    • As operações de multiplicação, divisão e restante são realizadas primeiro; depois, operações de adição e subtração são realizadas.
    • As operações são executadas da esquerda para a direita. Se a fórmula usar várias operações que tenham a mesma prioridade (por exemplo, multiplicação e divisão), a operação da esquerda será executada primeiro.
    • Pode-se usar parênteses ( e ) para alterar a prioridade das operações. As operações entre colchetes têm a prioridade mais alta no cálculo. O princípio da esquerda para a direita também se aplica a elas: as operações entre colchetes à esquerda são calculadas em primeiro lugar.

    Você pode usar constantes na fórmula:

    • Numérica (inteira e flutuante). Exemplo: EURUSD*2+GBPUSD*0,7.
    • Propriedades dos símbolos _Dígitos e _Ponto. Eles acrescentam à fórmula propriedades apropriadas do símbolo personalizado a partir da especificação. _Dígitos significa o número de casas decimais no preço do instrumento; _Ponto significa a menor mudança no preço do símbolo.

    Você também pode usar na fórmula todas as funções matemáticas suportadas em MQL5, exceto MathSrand, MathRand e MathIsValidNuber: Somente nomes curtos são usados para todas as funções, tais como fabs(), acos(), asin() etc.

  3. Terminal: Uma nova opção foi implementada, permitindo a adição de citações de instrumentos personalizados em tempo real. Agora, é possível desenvolver um MQL5 Expert Advisor que alimentaria as cotações do símbolo personalizado especificado. A função CustomTicksAdd é usada para isso.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    A função CustomTicksAdd permite alimentar cotações como se essas cotações fossem recebidas do servidor de um corretor. Os dados são enviados para a janela Market Watch em vez de serem escritos diretamente no banco de dados de tick. Então, o terminal salva os ticks do Market Watch para o banco de dados. Se um grande volume de dados é passado em uma chamada, o comportamento da função muda, a fim de economizar recursos. Se mais de 256 ticks são transmitidos, os dados são divididos em duas partes. Uma parte maior é registrada diretamente no banco de dados de ticks (similar ao CustomTicksReplace). A segunda parte que consiste dos últimos 128 ticks é enviada para o Market Watch, de onde o terminal salva os ticks para um banco de dados.

  4. MQL5: Novo serviço online MQL5 Cloud Protector foi adicionado para fornecer proteção adicional para os programas MQL5. A proteção é semelhante à opção utilizada na maior loja de aplicativos comerciais MetaTrader Market, onde os arquivos de produtos EX5 enviados pelos vendedores são compilados adicionalmente ao código nativo.

    Agora, este tipo de proteção está disponível para todos os usuários da plataforma. Para proteger seus arquivos, execute o seguinte comando no MetaEditor: Ferramentas-MQL5 Cloud Protector. A única diferença do MQL5 Cloud Protector em relação ao mecanismo utilizado no mercado, é que o arquivo não está vinculado ao computador do usuário. Os arquivos protegidos via MQL5 Cloud Protector podem ser executados em qualquer computador semelhante aos arquivos EX5 comuns.
    O MQL5 Cloud Protector é um serviço seguro. A proteção adicional é aplicada apenas a um arquivo compilado. O código fonte não é passado para o serviço. No primeiro passo, um programa é compilado para um arquivo EX5 no computador do usuário; depois disso, o arquivo compilado é enviado por um canal criptografado para o serviço, onde é protegido e devolvido ao usuário.



  5. Terminal: A janela de observação do mercado agora apresenta adicionalmente os preços altos e baixos. Estas colunas estão ocultas por padrão. Elas podem ser habilitadas usando o menu de contexto:




    Se uma tabela de símbolos for construída utilizando os preços de Licitação (de acordo com as configurações de especificação), os preços de Licitação Alta e Licitação Baixa são mostrados para este símbolo. Se um gráfico com símbolos for construído usando os Últimos preços, os Últimos preços altos e os Últimos preços baixos são mostrados para este símbolo.

    Se o Market Watch contém pelo menos um símbolo cujo gráfico é desenhado com base nos Últimos preços, a última coluna é automaticamente ativada, além de Alta/Baixa.

  6. Terminal: Agora é possível editar o histórico do tick dos instrumentos financeiros personalizados. Clique em 'Símbolos' no menu de contexto Market Watch, selecione um símbolo personalizado e solicite o intervalo de dados desejado na guia Ticks.

    • Duplo-tap para alterar o valor.
    • Use o menu de contexto para adicionar ou excluir entradas
    • Se você precisar excluir várias barras/pontas ao mesmo tempo, selecione-as com o mouse, segurando Shift ou Ctrl+Shift.



    Por conveniência, as entradas modificadas são destacadas como a seguir:

    • O fundo verde indica uma entrada modificada
    • Fundo cinza significa uma entrada eliminada
    • O fundo amarelo mostra uma entrada adicional

    Para salvar as mudanças, clique em "Aplicar mudanças", na parte inferior da janela.

  7. Terminal: Acrescentada exibição do tempo em milissegundos na janela de cotações.




  8. Terminal: A digitalização dos servidores disponíveis no novo diálogo de abertura de conta se tornou mais rápida.
  9. Terminal: Exibição fixa do objeto gráfico Trendline com as opções Ray Left e Ray Right habilitadas.
  10. Terminal: Operação otimizada com uma grande quantidade de e-mails internos (centenas de milhares).
  11. Terminal: Operação otimizada do terminal com uma grande quantidade de instrumentos comerciais (50.000 ou mais).
  12. MQL5: Novas funções para trabalhar com instrumentos financeiros personalizados foram adicionadas.

    Função Ação
    CustomSymbolCriar Criar um símbolo personalizado com o nome especificado no grupo especificado
    CustomSymbolDelete Eliminar um símbolo personalizado com o nome especificado
    CustomSymbolSetInteger Definir o valor inteiro do tipo de propriedade para um símbolo personalizado
    CustomSymbolSetDouble Definir o valor de propriedade do tipo real para um símbolo personalizado
    CustomSymbolSetString Defina o valor de propriedade do tipo string para um símbolo personalizado
    CustomSymbolSetMarginRate Definir as taxas de margem de acordo com o tipo e direção do pedido para um símbolo personalizado
    CustomSymbolSetSessionQuote Definir a hora de início e fim da sessão de cotação especificada para o símbolo e dia da semana especificados
    CustomSymbolSetSessionSetTrade Definir a hora de início e fim da sessão de negociação especificada para o símbolo e dia da semana especificados
    CustomRatesDelete Eliminar todas as barras do histórico de preços do símbolo personalizado no intervalo de tempo especificado
    CustomRatesReplace Substituir totalmente o histórico de preços do símbolo personalizado dentro do intervalo de tempo especificado com os dados da matriz tipo MqlRates
    CustomRatesUpdate Adicionar barras em falta ao histórico de símbolos personalizados e substituir os dados existentes pelos da matriz tipo MqlRates
    CustomTicksAdd Adiciona dados de um array do tipo MqlTick ao histórico de preços de um símbolo personalizado. O símbolo personalizado deve ser selecionado na janela Market Watch.
    CustomTicksDelete Eliminar todos os ticks do histórico de preços do símbolo personalizado no intervalo de tempo especificado
    CustomTicksReplace Substituir totalmente o histórico de preços do símbolo personalizado dentro do intervalo de tempo especificado com os dados da matriz tipo MqlTick

  13. MQL5: Adicionado suporte para modelos para o tipo de dados do sindicato.
  14. MQL5: A propriedade do instrumento comercial SYMBOL_VISIBLE foi adicionada. Call of SymbolInfoInteger(símbolo, SYMBOL_VISIBLE) retorna falso se o símbolo especificado não for visível no Market Watch.
  15. MQL5: Adicionado novo CHARTEVENT_MOUSE_WHEEL propriedade. O evento é chamado quando a roda do mouse é rolada ou pressionada sobre o gráfico (se CHART_EVENT_MOUSE_WHEEL=verdadeiro para o gráfico).
  16. MQL5: As seguintes propriedades do gráfico foram adicionadas:

    • CHART_EVENT_MOUSE_WHEEL - habilitando/desabilitando a geração de CHART_EVENT_MOUSE_WHEEL (scroll do mouse e clique no evento no gráfico). Valores possíveis: 0 e 1.
    • CHART_CROSSHAIR_TOOL - ativa/desativa a possibilidade de mudar o cursor para o modo Cronômetro com um clique do meio. Possíveis valores: 0 e 1.
    • CHART_CONTEXT_MENU - habilitar/desabilitar o uso do clique direito para exibir o menu de contexto do gráfico. Valores possíveis: 0 e 1.

  17. MQL5: Agora, os buffers de desenho com o estilo DRAW_NONE não são levados em consideração ao calcular a escala da janela indicadora.
  18. MQL5: Adicionada a geração de eventos CHARTEVENT_CHART_CHANGE ao definir a propriedade CHART_SCALEFIX (escala fixa) para o gráfico.
  19. MQL5: A função ArraySwap foi adicionada, permitindo a troca rápida do conteúdo de matrizes dinâmicas.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    A função aceita matrizes dinâmicas do mesmo tipo e das mesmas dimensões. Para arrays multidimensionais, o número de elementos em todas as dimensões, exceto o primeiro, deve coincidir.

  20. Sinais: Indicação fixa do tipo de preenchimento do pedido em caso de fechamento forçado de posições abertas de acordo com um Sinal. A opção "Stop se a conta for inferior a XXX USD" é fornecida nas opções de cópia de sinal: se o patrimônio cair abaixo de um nível especificado, a cópia dos sinais de negociação é automaticamente encerrada, todas as posições são fechadas. Anteriormente, um tipo de preenchimento incorreto poderia ser definido para ordens de fechamento de posição em caso de fechamento forçado. Agora o terminal verifica os tipos de preenchimento permitidos em configurações de símbolos e indica uma opção adequada.
  21. Testador: O comportamento da função HistoryOrderSelect no Testador de Estratégia agora corresponde à mesma função no terminal do cliente.
  22. Testador: O comportamento das funções CopyTicks e CopyTicksRange no Testador de Estratégia agora corresponde às mesmas funções no terminal do cliente.
  23. Testador: Exibição otimizada dos objetos gráficos durante os testes visuais.
  24. Testador: Exibição fixa dos resultados de testes dos instrumentos de troca (com o modelo de gerenciamento de risco de troca). Agora, o gráfico mostra apenas o patrimônio líquido, enquanto o saldo e a carga de depósito não são mostrados. O status comercial de tais contas é avaliado com base no nível do patrimônio líquido. O saldo mostra apenas a quantidade de dinheiro na conta e ignora os ativos e passivos do negociador. A carga do depósito (margem/capital) não é exibida, porque no modo de cálculo de câmbio a margem é igual ao valor atual descontado do ativo/passivo, e muda junto com o patrimônio líquido.
  25. MetaEditor: Acrescentou a capacidade de inserir facilmente propriedades e recursos para programar código. Por exemplo, você pode adicionar rapidamente um arquivo incluído ao código. Use o comando "Inserir-MQH como #incude", e selecione o arquivo include desejado. A diretiva #include com o caminho correto para o arquivo selecionado será inserida no código do programa.



    O mesmo menu permite adicionar aos arquivos de código do programa na forma de uma matriz binária ou de texto. Entre outros, você pode transferir modelos de gráficos com Expert Advisors ou indicadores: insira seu modelo no código do programa como uma matriz, e salve-o em disco, usando então a função FileSave. Depois disso, o modelo pode ser aplicado no gráfico desejado diretamente de um Expert Advisor, usando a função ChartApplyTemplate.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  26. MetaEditor: Adicionada uma opção para conversão de cordas entre os formatos ASCII, HEX e Base64. Selecione uma linha no código fonte e clique no comando desejado no menu Edit-Convert:




  27. MetaEditor: Busca fixa sem distinção de maiúsculas e minúsculas em arquivos.
  28. MetaEditor: Corrigido um erro de depuração que poderia ocorrer ao calcular expressões similares a x.y[0][1].z.
  29. MetaEditor: Navegação em código fixo usando os botões Avançar e Voltar.
  30. A interface do usuário agora também está disponível em holandês.
  31. Documentação atualizada.


A atualização estará disponível através do sistema LiveUpdate.


 

Foi publicado hoje um artigo muito interessante -

----------------

Como negociar em uma troca de moedas criptográficas externas através do MetaTrader 5

Não faz muito tempo, os desenvolvedores da linguagem MQL5 introduziram a funcionalidade atualizada com a capacidade de desenvolver símbolos e gráficos personalizados. A ampla comunidade de traders ainda não teve tempo de apreciar o poder desta inovação, mas mesmo uma brainstorming fácil e discreta mostra um enorme potencial escondido nos símbolos personalizados. Juntamente com outras ferramentas MQL, elas permitem implementar muitas das idéias mais ousadas e interessantes.

De agora em diante, o MetaTrader 5 não é apenas um terminal que interage com um CD. Ao contrário, é uma plataforma analítica auto-suficiente capaz de se conectar a várias trocas através do API, bem como visualizar movimentos de preços e fluxos comerciais. Um pequeno conjunto de novas características transforma o terminal em um sistema aberto em vez de uma caixa de ferramentas contendo um número limitado de ferramentas de negociação. Na minha opinião, as ferramentas personalizadas também podem se tornar poderosos recursos analíticos.

Vamos ilustrar as novas características da linguagem usando como exemplo o popular tema das moedas criptográficas. Acredito que isso reforçará ainda mais o interesse da comunidade por símbolos personalizados.

Quem pode se beneficiar com o artigo:

  • comerciantes de câmbio de moedas criptográficas;
  • investidores familiarizados com MetaTrader 5 e investimentos de carteira;
  • programadores freelance que agora podem executar as ordens dos clientes relacionadas à negociação de moedas criptográficas de forma mais simples (e mais barata);
  • todos que seguem os novos recursos da linguagem MetaTrader 5 e MQL5.
 

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Novo MetaTrader 5 Build 1730: Projetos em MetaEditor e instrumentos financeiros sintéticos

MetaQuotes Software Corp., 2017.12.20 13:49

Novo MetaTrader 5 Build 1730: Projetos em MetaEditor e instrumentos financeiros sintéticos

A atualização da plataforma MetaTrader 5 será lançada em 21 de dezembro de 2017.

Fim do suporte para versões de terminais mais antigos
O suporte para versões mais antigas de terminais desktop e móveis terminará com o lançamento da nova versão da plataforma:
  • Terminal do cliente: versões abaixo de 730, 23 de novembro de 2012
  • Terminal Móvel para iPhone: versões abaixo de 1171, 11 de novembro de 2015
  • Terminal Móvel para Android: versões abaixo de 1334, 5 de agosto de 2016
Os terminais sem suporte não poderão ser conectados a novas versões de servidores. Recomendamos fortemente que você atualize seus terminais com antecedência.

Mudanças no protocolo de operação de armazenamento da MQL5
Para apoiar novos projetos compartilhados, atualizamos o protocolo de operação com a MQL5 Storage. Portanto, será necessário realizar um checkout de todos os dados do armazenamento após a atualização da plataforma. Os dados armazenados no MQL5 Storage não serão perdidos ou afetados durante a atualização.

Antes de atualizar a plataforma para a nova versão, recomendamos que você realize a operação Commit para enviar todas as mudanças locais para o Armazenamento MQL5.

A atualização apresentará as seguintes mudanças:

  1. Projetos completos estão agora disponíveis no MetaEditor. O processo de desenvolvimento do programa se tornou mais conveniente.

    Agora o arquivo principal do programa MQ5 não aparece como o projeto. O projeto é um arquivo "MQPROJ" separado, que armazena as configurações do programa, parâmetros de compilação e informações sobre todos os arquivos utilizados. As configurações principais do projeto podem ser acessadas a partir de uma caixa de diálogo separada, portanto não há necessidade de especificá-las no código fonte via #property agora.

    Uma aba separada no Navegador é fornecida para conveniência de trabalho dentro do projeto. Todos os arquivos, tais como include, resource, header e outros arquivos estão organizados em categorias nesta aba. Todos os arquivos são automaticamente adicionados ao Navegador do projeto. Por exemplo, se você incluir um novo arquivo MQH, ele aparecerá automaticamente na seção "Dependências" do navegador.

    O suporte a novos projetos também foi implementado no repositório online MQL5 Storage atualizado. Agora, tornou-se muito mais conveniente desenvolver grandes projetos através da colaboração com outros membros da comunidade MQL5.community.

    A seção Novos Projetos Compartilhados é fornecida para projetos de grupo. Um projeto criado nesta seção é imediatamente enviado para o armazenamento: você pode conceder permissões a outros usuários e iniciar imediatamente a colaboração.




    Quando você compila um projeto em Projetos Compartilhados, um arquivo EX5 executável é automaticamente copiado para o diretório local de Especialistas, Indicadores ou Scripts, dependendo do tipo de programa. Você pode facilmente iniciar o programa em um gráfico sem ter que copiar arquivos manualmente.


    O que há de novo na operação de armazenamento da MQL5

    Para implementar suporte a novos projetos compartilhados, modificamos o protocolo de operação com o MQL5 Storage. Portanto, você precisará realizar um checkout de todos os dados do armazenamento após a atualização da plataforma. Os dados armazenados no armazenamento da MQL5 não serão perdidos ou afetados durante a atualização.

    Antes de atualizar a plataforma para a nova versão, recomendamos que você realize a operação Commit para enviar todas as mudanças locais para o armazenamento MQL5.

    O comando 'Checkout from Storage' não está disponível agora. Em vez disso, os comandos 'Ativar armazenamento MQL5' e 'Atualizar do armazenamento' são usados para receber os dados:

    • Se você não tiver usado o armazenamento MQL5 na instância atual do MetaEditor, clique em 'Ativar armazenamento MQL5' no menu de contexto da janela Navegador. Todos os catálogos e arquivos disponíveis em seu armazenamento serão carregados em seu computador local.
    • Se você já estiver trabalhando com o armazenamento, clique em 'Atualizar arquivos do armazenamento' no menu de contexto de um determinado projeto ou o elemento MQL5 raiz na janela Navigator para receber dados do armazenamento.

    Novos projetos: Exemplos de Detalhes de Criação e Operação

    Uma nova entidade de projeto foi adicionada no MetaEditor. Um projeto é um arquivo mqproj que armazena propriedades comuns do programa e informações sobre todos os arquivos usados. Agora, as propriedades do programa podem ser convenientemente gerenciadas a partir de um diálogo separado no MetaEditor em vez de modificação manual de propriedades no código fonte (usando as diretrizes #property).

    Se você tiver código disponível, você pode facilmente testar novos projetos usando o comando 'New Project from Source'.




    No diretório onde se encontra o arquivo selecionado, será criado um novo arquivo de projeto com o mesmo nome e a extensão mqproj. As principais propriedades do programa especificadas no código fonte via #property serão automaticamente adicionadas ao projeto, incluindo o nome, direitos autorais, versão, link para o site do desenvolvedor e descrição do programa.

    O conjunto de propriedades do programa no arquivo do projeto recebe maior prioridade do que as propriedades especificadas no código do programa. Se forem especificadas propriedades tanto no projeto quanto no arquivo fonte, serão usadas propriedades do projeto.




    Duas novas opções para a compilação de programas MQL5 foram adicionadas às propriedades do projeto:

    • Permitir otimização adicional: aplicações com a otimização desativada são compiladas mais rapidamente, mas executadas mais lentamente.
    • Verificar divisores de ponto flutuante: aplicações com a verificação desativada trabalham um pouco mais rápido, porque o erro de divisão zero não é verificado durante a execução do código.

    Para trabalhar com projetos, use uma aba separada Project na janela Navigator. Todos os arquivos usados em um projeto são exibidos nesta aba de uma forma conveniente. Quando um projeto é gerado a partir de um arquivo fonte, todos os arquivos utilizados incluem (especificados usando o diretório #include no arquivo principal MQ5 e em seus arquivos include) são automaticamente adicionados à seção Dependências.

    Quando um novo arquivo include é adicionado ao código-fonte, ele também aparece no Navegador do projeto. Os arquivos de cabeçalho usados são adicionados à seção Cabeçalhos; imagens, sons e outros programas MQL5 usados no projeto como recurso são adicionados à seção Recursos. Os arquivos MQ5 com o código fonte são exibidos na seção Fontes. Na seção 'Configurações e arquivos', você pode adicionar outros arquivos, tais como arquivos set para testes e modelos de gráficos.

    Use os comandos do menu de contexto para adicionar arquivos existentes a um projeto ou para excluir arquivos dele. Tenha cuidado ao excluir arquivos, já que você pode remover um arquivo do projeto (remover a ligação) ou apagá-lo completamente do disco rígido:




    A criação de um novo projeto é tão fácil quanto a criação de um programa MQL5 normal. Clique em 'Novo Projeto', selecione o tipo de novo programa e especifique propriedades (tais como nome, manipuladores de eventos, etc.) no MQL5 Wizard.

    Para obter um arquivo EX5 executável, você pode abrir o projeto e pressionar F7 (o comando de compilação) ou abrir o arquivo MQ5 principal do programa e compilá-lo.


    Projetos compartilhados no armazenamento da MQL5: Detalhes da operação

    Os projetos compartilhados são gerenciados a partir de uma seção separada de Projetos Compartilhados. Se você ainda não tiver conectado o armazenamento, execute o comando 'Ativar armazenamento MQL5' a partir do menu de contexto da pasta desejada. O MetaEditor verificará se o seu armazenamento contém algum dado salvo e se há algum projeto de compartilhamento disponível para você. Todos os dados disponíveis serão recuperados do armazenamento e carregados em seu computador (a operação de checkout). Os projetos de grupo disponíveis aparecem na seção de Projetos Compartilhados. Para recuperar os projetos, execute "Checkout do Armazenamento" no menu de contexto.

    Para criar um novo projeto de grupo, selecione a pasta Projetos Compartilhados e clique em "Novo Projeto":




    Em seguida, complete os passos padrão MQL5: defina o tipo, nome e propriedades do programa desejado. Para projetos em grupo, você deve usar nomes claros e compreensíveis, para que os outros participantes possam encontrá-los facilmente. Somente letras latinas e números sem espaços podem ser usados em nomes de projetos.

    Um objeto criado é imediatamente adicionado ao armazenamento MQL5. Os arquivos da biblioteca padrão usados no projeto não são adicionados ao armazenamento, e você pode adicioná-los manualmente.

    Para permitir que outros participantes possam trabalhar com o projeto, abra suas propriedades. A partir daqui, você pode conceder permissões a usuários selecionados especificando seu login MQL5.community, bem como definir parâmetros comuns para o trabalho em grupo:

    • Projeto privado
    • Livre para participar do projeto
    • Junte-se ao projeto por solicitação




    Quando você compila um projeto de grupo, o arquivo executável EX5 é automaticamente copiado para o diretório local de Especialistas, Indicadores ou Scripts, dependendo do tipo de programa. Ele permite executar instantaneamente o programa no terminal sem ter que copiá-lo manualmente para o diretório apropriado.


    Projetos Públicos em Armazenamento MQL5: Participação no Desenvolvimento

    Como mencionado acima, cada projeto de grupo na MQL5 Storage tem configuração de publicidade: o projeto pode ser privado ou aberto a outros usuários. Agora, todos os projetos aos quais você pode aderir livremente são exibidos na aba separada "Projetos Públicos".

    Todos podem encontrar um projeto excitante e participar de seu desenvolvimento. Basta clicar em Join e receber o projeto do armazenamento.




    Cada usuário associado recebe direitos somente de leitura. Entre em contato com o autor do projeto para poder submeter suas alterações. Para saber seu login, abra as propriedades do projeto através do menu de contexto.

  2. Terminal: Agora, a plataforma de negociação permite criar instrumentos financeiros sintéticos, ou seja, símbolos baseados em um ou mais instrumentos existentes. O usuário deve definir a fórmula para calcular as cotações, após o que a plataforma gerará ticks do instrumento sintético em tempo real, e também criará seu histórico minucioso.


    Como Funciona

    • Você cria um instrumento sintético e estabelece a fórmula para o cálculo do preço.
    • A plataforma calcula os ticks com uma freqüência de 10 vezes por segundo, desde que o preço de pelo menos um dos instrumentos usados na fórmula tenha mudado.
    • A plataforma também calcula o histórico de barras de um minuto (para os últimos dois meses) com base em barras minúsculas de instrumentos usados em sua fórmula. Todas as barras novas (atuais e subseqüentes) são construídas em tempo real com base nas carrapatas geradas pelo instrumento sintético.

    Por exemplo, você pode criar um instrumento mostrando o índice do dólar (USDX). Ele usa a fórmula abaixo:

    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)

    Nota: os pares USDEUR e USDGBP são usados na fórmula do índice do dólar de origem. Como somente os pares inversos estão disponíveis na plataforma, um poder negativo e Ask ao invés de Bid são usados na fórmula do símbolo sintético.

    A plataforma calculará em tempo real o preço do novo instrumento com base nas cotações dos outros seis símbolos fornecidos por seu corretor. As mudanças de preço serão visualizadas na janela Market Watch e no gráfico:




    Crie um novo símbolo personalizado, abra sua especificação e insira a fórmula:




    Por conveniência, o editor de fórmulas mostra uma lista de opções possíveis enquanto você digita os nomes dos símbolos e funções.

    O cálculo de carrapatos e barras de um minuto de um instrumento sintético começa quando este instrumento é adicionado ao Market Watch. Além disso, todos os símbolos necessários para o cálculo do preço sintético são automaticamente adicionados ao relógio do mercado. Uma entrada sobre o início do cálculo será adicionada ao diário da plataforma: Símbolo Sintético USDX: o processamento é iniciado.
    • O cálculo de um instrumento sintético pára depois que ele é retirado do Market Watch.
    • Os símbolos que são usados atualmente para calcular os preços dos símbolos sintéticos não podem ser ocultados da Market Watch.

    Cálculo de citações em tempo real
    A cada 100 ms (ou seja, dez vezes por segundo) são verificados os preços dos símbolos usados no cálculo. Se pelo menos um deles tiver mudado, o preço do símbolo sintético é calculado e um novo tick é gerado. O cálculo é feito em paralelo em três linhas para Bid, Ask e Last prices. Por exemplo, se a fórmula de cálculo for EURUSD*GBPUSD, o preço do símbolo sintético será calculado como se segue:

    • Bid = bid(EURUSD)*bid(GBPUSD)
    • Ask = ask(EURUSD)*ask(GBPUSD)
    • Último = último(EURUSD)*last(GBPUSD)

    A disponibilidade das mudanças é verificada separadamente para cada preço. Por exemplo, se apenas o preço de Licitação de um instrumento de origem tiver mudado, apenas o preço apropriado de um instrumento sintético será calculado.

    Criando um Histórico de Barras Minuciosas
    Além de coletar carrapatos em tempo real, a plataforma cria um minuto de história do instrumento sintético. Ela permite aos comerciantes visualizar gráficos de símbolos sintéticos semelhantes aos normais, bem como realizar análises técnicas utilizando objetos e indicadores.

    Quando um trader adiciona um instrumento sintético ao Market Watch, a plataforma verifica se seu histórico de minutos calculado existe. Se não existir, será criado o histórico dos últimos 60 dias, que inclui cerca de 50.000 barras. Se um valor mais baixo for especificado no parâmetro "Máx. barras no gráfico" nas configurações da plataforma, a restrição apropriada será aplicada.

    Se algumas das barras dentro deste período já tiverem sido criadas, a plataforma gerará adicionalmente novas barras. Um histórico mais profundo é criado se o usuário tentar visualizar um período de tempo mais antigo no gráfico (rolando-o de volta ou acessando-o a partir de um programa MQL5).

    O histórico de barras de um minuto de um instrumento sintético é calculado com base em uma barra de um minuto (não carrapatos) de instrumentos usados em sua fórmula. Por exemplo, para calcular o preço aberto de uma barra de 1 minuto de um símbolo sintético, a plataforma utiliza os preços abertos dos símbolos utilizados em sua fórmula. Os preços Alto, Baixo e Fechado são calculados de forma semelhante.

    Se a barra necessária não estiver disponível para nenhum dos instrumentos, a plataforma utilizará o preço Fechado da barra anterior. Por exemplo, três instrumentos são usados: EURUSD, USDJPY e GBPUSD. Se no cálculo de uma barra correspondente a 12:00 a barra requerida de USDJPY não estiver disponível, os seguintes preços serão usados para o cálculo:

    • Aberto: EURUSD Aberto 12:00, USDJPY Fechado 11:59, GBPUSD Aberto 12:00
    • Alta: EURUSD Alta 12:00, USDJPY Fechado 11:59, GBPUSD Alta 12:00
    • Baixo: EURUSD Baixo 12:00, USDJPY Fechar 11:59, GBPUSD Baixo 12:00
    • Fechar: EURUSD Fechado 12:00, USDJPY Fechado 11:59, GBPUSD Fechado 12:00

    Se a barra minuto não estiver disponível para todos os instrumentos usados na fórmula, a barra minuto apropriada do instrumento sintético não será calculada.

    Desenho de Novas Barras Minutas
    Todas as novas barras (atuais e subsequentes) do instrumento sintético são criadas com base nos carrapatos gerados. O preço utilizado para construir as barras depende do valor do parâmetro Modo Gráfico na especificação:





    Que operações podem ser usadas na Fórmula do Símbolo
    Os dados de preços e algumas propriedades dos símbolos existentes fornecidos pelo corretor podem ser usados para calcular os preços sintéticos. Especifique o seguinte:

    • Nome do símbolo - dependendo do preço sintético a ser calculado, será utilizado o Bid, Ask ou Last do instrumento especificado. Por exemplo, se EURUSD*GBPUSD for especificado, Bid é calculado como bid(EURUSD)*bid(GBPUSD), e Ask = ask(EURUSD)*ask(GBPUSD).
    • bid(nome do símbolo) - o preço de licitação do símbolo especificado será utilizado forçosamente para o cálculo do preço de licitação do instrumento sintético. Esta opção é similar à anterior (onde o tipo de preço não é especificado).
    • ask(nome do símbolo) - o preço Ask do símbolo especificado será usado para calcular o preço de Licitação do instrumento sintético. O preço do lance do instrumento especificado será usado para calcular o Ask. O último preço do símbolo especificado será usado para o cálculo do último. Se Ask(EURUSD)*GBPUSD for especificado, o seguinte cálculo será usado para o cálculo:
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • Ask = bid(EURUSD)*ask(GBPUSD)
      • Último = último(EURUSD)*last(GBPUSD)
    • Last(nome do símbolo) - o último preço do símbolo especificado será usado no cálculo de todos os preços do instrumento sintético (Bid, Ask e Last). Se último(EURUSD)*GBPUSD for especificado, será utilizado o seguinte cálculo:
      • Вid = último(EURUSD)*bid(GBPUSD)
      • Ask = last(EURUSD)*ask(GBPUSD)
      • Último = último(EURUSD)*last(GBPUSD)
    • volume(nome do símbolo) - o volume do carrapato do instrumento especificado será usado na fórmula. Certifique-se de que a informação do volume seja fornecida pelo corretor para este símbolo.
    • point(nome do símbolo) - a alteração do preço mínimo do instrumento especificado será usada nos cálculos.
    • dígitos(nome do símbolo) - o número de casas decimais no preço do símbolo especificado será usado na fórmula.

    Se um símbolo tiver um nome complexo (contém hífens, pontos, etc.), ele deverá ser escrito entre aspas. Exemplo: "RTS-6.17".
    As seguintes operações aritméticas podem ser usadas na fórmula: adição (+), subtração (-), multiplicação (*), desenvolvimento (/) e restante da divisão (%). Por exemplo, EURUSD+GBPUSD significa que o preço é calculado como a soma dos preços EURUSD e GBPUSD. Você também pode usar o unário menos para mudar o sinal, por exemplo: -10*EURUSD.

    Tenha em mente a prioridade de cálculo das operações aritméticas:

    • As operações de multiplicação, divisão e restante são realizadas primeiro; depois, operações de adição e subtração são realizadas.
    • As operações são realizadas da esquerda para a direita. Se a fórmula usar várias operações que tenham a mesma prioridade (por exemplo, multiplicação e divisão), a operação da esquerda será executada primeiro.
    • Pode-se usar parênteses ( e ) para alterar a prioridade das operações. As operações entre colchetes têm a prioridade mais alta no cálculo. O princípio da esquerda para a direita também se aplica a elas: as operações entre colchetes à esquerda são calculadas em primeiro lugar.

    Você pode usar constantes na fórmula:

    • Numérica (inteira e flutuante). Exemplo: EURUSD*2+GBPUSD*0,7.
    • Propriedades dos símbolos _Dígitos e _Ponto. Eles acrescentam à fórmula propriedades apropriadas do símbolo personalizado a partir da especificação. _Dígitos significa o número de casas decimais no preço do instrumento; _Ponto significa a menor mudança no preço do símbolo.

    Você também pode usar na fórmula todas as funções matemáticas suportadas na MQL5, exceto MathSrand, MathRand e MathIsValidNumber: Somente nomes curtos são usados para todas as funções, tais como fabs(), acos(), asin() etc.

  3. Terminal: Uma nova opção foi implementada, permitindo a adição de citações de instrumentos personalizados em tempo real. Agora, é possível desenvolver um MQL5 Expert Advisor que alimentaria as cotações do símbolo personalizado especificado. A função CustomTicksAdd é usada para isso.
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    A função CustomTicksAdd permite alimentar cotações como se essas cotações fossem recebidas do servidor de um corretor. Os dados são enviados para a janela Market Watch em vez de serem escritos diretamente no banco de dados de tick. Então, o terminal salva os ticks do Market Watch para o banco de dados. Se um grande volume de dados é passado em uma chamada, o comportamento da função muda, a fim de economizar recursos. Se mais de 256 ticks são transmitidos, os dados são divididos em duas partes. Uma parte maior é registrada diretamente no banco de dados de ticks (similar ao CustomTicksReplace). A segunda parte que consiste dos últimos 128 ticks é enviada para o Market Watch, de onde o terminal salva os ticks para um banco de dados.

  4. MQL5: Novo serviço online MQL5 Cloud Protector foi adicionado para fornecer proteção adicional para os programas MQL5. A proteção é semelhante à opção utilizada na maior loja de aplicativos comerciais MetaTrader Market, onde os arquivos de produtos EX5 enviados pelos vendedores são compilados adicionalmente ao código nativo.

    Agora, este tipo de proteção está disponível para todos os usuários da plataforma. Para proteger seus arquivos, execute o seguinte comando no MetaEditor: Ferramentas-MQL5 Cloud Protector. A única diferença do MQL5 Cloud Protector em relação ao mecanismo utilizado no mercado, é que o arquivo não está vinculado ao computador do usuário. Protegido via arquivos MQL5 Cloud Protector pode ser executado em qualquer computador semelhante aos arquivos EX5 comuns.
    O MQL5 Cloud Protector é um serviço seguro. A proteção adicional é aplicada apenas a um arquivo compilado. O código fonte não é passado para o serviço. No primeiro passo, um programa é compilado para um arquivo EX5 no computador do usuário; depois disso, o arquivo compilado é enviado por um canal criptografado para o serviço, onde é protegido e devolvido ao usuário.



  5. Terminal: A janela de observação do mercado agora apresenta adicionalmente os preços altos e baixos. Estas colunas estão ocultas por padrão. Elas podem ser habilitadas usando o menu de contexto:




    Se uma tabela de símbolos for construída utilizando os preços de Licitação (de acordo com as configurações de especificação), os preços de Licitação Alta e Licitação Baixa são mostrados para este símbolo. Se um gráfico com símbolos for construído usando os Últimos preços, os Últimos preços altos e os Últimos preços baixos são mostrados para este símbolo.

    Se o Market Watch contém pelo menos um símbolo cujo gráfico é desenhado com base nos Últimos preços, a última coluna é automaticamente ativada, além de Alta/Baixa.

  6. Terminal: Agora é possível editar o histórico do tick dos instrumentos financeiros personalizados. Clique em 'Símbolos' no menu de contexto Market Watch, selecione um símbolo personalizado e solicite o intervalo de dados desejado na guia Ticks.

    • Duplo-tap para alterar o valor.
    • Use o menu de contexto para adicionar ou excluir entradas.
    • Se você precisar excluir várias barras/pontas ao mesmo tempo, selecione-as com o mouse, segurando Shift ou Ctrl+Shift.




    Por conveniência, as entradas modificadas são destacadas como a seguir:

    • O fundo verde indica uma entrada modificada.
    • Fundo cinza significa uma entrada eliminada
    • O fundo amarelo mostra uma entrada adicional

    Para salvar as mudanças, clique em "Aplicar mudanças", na parte inferior da janela.

  7. Terminal: Adicionada a exibição das contas preliminares na árvore Navigator.

    Os comerciantes podem enviar um pedido a um corretor para abrir uma conta real diretamente dos terminais da área de trabalho. O usuário precisa preencher um simples formulário de solicitação com detalhes de contato. Uma conta preliminar especial é criada para o corretor depois disso. Em seguida, o corretor entra em contato com o comerciante para formalizar as relações e transformar a conta real a partir da conta preliminar.




  8. Terminal: Acrescentada exibição do tempo em milissegundos na janela de cotações.





  9. Terminal: A digitalização dos servidores disponíveis no novo diálogo de abertura de conta se tornou mais rápida.
  10. Terminal: Exibição fixa do objeto gráfico Trendline com as opções Ray Left e Ray Right habilitadas.
  11. Terminal: Operação otimizada com uma grande quantidade de e-mails internos (centenas de milhares).
  12. Terminal: Operação otimizada do terminal com uma grande quantidade de instrumentos comerciais (50.000 ou mais).
  13. Terminal: Otimização adicional do histórico de tick dos instrumentos financeiros personalizados executados após a edição do histórico.
  14. MQL5: Novas funções para trabalhar com instrumentos financeiros personalizados foram adicionadas.

    Função Ação
    CustomSymbolCriar Criar um símbolo personalizado com o nome especificado no grupo especificado
    CustomSymbolDelete Eliminar um símbolo personalizado com o nome especificado
    CustomSymbolSetInteger Definir o valor inteiro do tipo de propriedade para um símbolo personalizado
    CustomSymbolSetDouble Definir o valor de propriedade do tipo real para um símbolo personalizado
    CustomSymbolSetString Defina o valor de propriedade do tipo string para um símbolo personalizado
    CustomSymbolSetMarginRate Definir as taxas de margem de acordo com o tipo e direção do pedido para um símbolo personalizado
    CustomSymbolSetSessionQuote Definir a hora de início e fim da sessão de cotação especificada para o símbolo e dia da semana especificados
    CustomSymbolSetSessionSetTrade Definir a hora de início e fim da sessão de negociação especificada para o símbolo e dia da semana especificados
    CustomRatesDelete Eliminar todas as barras do histórico de preços do símbolo personalizado no intervalo de tempo especificado
    CustomRatesReplace Substituir totalmente o histórico de preços do símbolo personalizado dentro do intervalo de tempo especificado com os dados da matriz tipo MqlRates
    CustomRatesUpdate Adicionar barras em falta ao histórico de símbolos personalizados e substituir os dados existentes pelos da matriz tipo MqlRates
    CustomTicksAdd Adiciona dados de um array do tipo MqlTick ao histórico de preços de um símbolo personalizado. O símbolo personalizado deve ser selecionado na janela Market Watch.
    CustomTicksDelete Eliminar todos os ticks do histórico de preços do símbolo personalizado no intervalo de tempo especificado
    CustomTicksReplace Substituir totalmente o histórico de preços do símbolo personalizado dentro do intervalo de tempo especificado com os dados da matriz tipo MqlTick

  15. MQL5: Acrescentou Coleções de Dados Genéricos à Biblioteca Padrão. Elas contêm classes e interfaces para definir coleções baseadas em modelos. As novas coleções fortemente digitadas proporcionam uma maior conveniência no desenvolvimento de aplicações e alto desempenho no manuseio de dados.

    A biblioteca é colocada na pasta Include\Generic do diretório de trabalho do terminal.

  16. MQL5: Adicionado suporte a modelos para o tipo de dados do sindicato.
  17. MQL5: Foi adicionada a propriedade SYMBOL_VISIBLE trading instrument. Call of SymbolInfoInteger(símbolo, SYMBOL_VISIBLE) retorna falso se o símbolo especificado não for visível no Market Watch.
  18. MQL5: Adicionado novo CHARTEVENT_MOUSE_WHEEL propriedade. O evento é chamado quando a roda do mouse é rolada ou pressionada sobre o gráfico (se CHART_EVENT_MOUSE_WHEEL=verdadeiro para o gráfico).
  19. MQL5: As seguintes propriedades do gráfico foram adicionadas:

    • CHART_EVENT_MOUSE_WHEEL - habilitando/desabilitando a geração de CHARTEVENT_MOUSE_WHEEL (scroll do mouse e clique no evento no gráfico). Valores possíveis: 0 e 1.
    • CHART_CROSSHAIR_TOOL - ativar/desativar a possibilidade de mudar o cursor para o modo Cronômetro com um clique do meio. Possíveis valores: 0 e 1.
    • CHART_CONTEXT_MENU - habilitar/desabilitar o uso do clique direito para exibir o menu de contexto do gráfico. Valores possíveis: 0 e 1.

  20. MQL5: Agora, os buffers de desenho com o estilo DRAW_NONE não são levados em consideração ao calcular a escala da janela indicadora.
  21. MQL5: Adicionada a geração de eventos CHARTEVENT_CHART_CHANGE ao definir a propriedade CHART_SCALEFIX (escala fixa) para o gráfico.
  22. MQL5: A função ArraySwap foi adicionada, permitindo a troca rápida do conteúdo de matrizes dinâmicas.
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    A função aceita matrizes dinâmicas do mesmo tipo e das mesmas dimensões. Para arrays multidimensionais, o número de elementos em todas as dimensões, exceto o primeiro, deve coincidir.

  23. MQL5: Adicionada a nova propriedade TERMINAL_RETRANSMISSION - porcentagem de pacotes de rede reenviados(retransmissão) no protocolo TCP/IP para todas as aplicações e serviços em execução no computador em questão. A perda de pacotes ocorre mesmo nas redes mais rápidas e corretamente configuradas. Neste caso, não há confirmação de entrega de pacotes entre o destinatário e o remetente. Portanto, os pacotes perdidos são reenviados.

    O terminal não calcula este valor. Ele é solicitado ao sistema operacional uma vez por minuto. Não é uma indicação da qualidade da conexão entre um determinado terminal e um servidor comercial, já que a porcentagem é calculada para toda a atividade da rede, incluindo a atividade do sistema e de fundo.

    A propriedade TERMINAL_RETRANSMISSION é adicionada à enumeração ENUM_TERMINAL_INFO_DOUBLE, a função TerminalInfoDouble é usada para obtê-la.
  24. MQL5: Trabalho otimizado com histórico comercial.
  25. Sinais: Indicação fixa do tipo de preenchimento do pedido em caso de fechamento forçado de posições abertas de acordo com um Sinal. A opção "Stop se a conta for inferior a XXX USD" é fornecida nas opções de cópia de sinal: se o patrimônio cair abaixo de um nível especificado, a cópia dos sinais de negociação é automaticamente encerrada, todas as posições são fechadas. Anteriormente, um tipo de preenchimento incorreto poderia ser definido para ordens de fechamento de posição em caso de fechamento forçado. Agora o terminal verifica os tipos de preenchimento permitidos em configurações de símbolos e indica uma opção adequada.
  26. Testador: O comportamento da função HistoryOrderSelect no Testador de Estratégia agora corresponde à mesma função no terminal do cliente.
  27. Testador: O comportamento das funções CopyTicks e CopyTicksRange no Testador de Estratégia agora corresponde às mesmas funções no terminal do cliente.
  28. Testador: Exibição otimizada dos objetos gráficos durante os testes visuais.
  29. Testador: Exibição fixa dos resultados de testes dos instrumentos de troca (com o modelo de gerenciamento de risco de troca). Agora, o gráfico mostra apenas o patrimônio, enquanto o saldo e a carga de depósito não são mostrados. O status comercial de tais contas é avaliado com base no nível do patrimônio líquido. O saldo mostra apenas a quantidade de dinheiro na conta e ignora os ativos e passivos do negociador. A carga do depósito (margem/capital) não é exibida, porque no modo de cálculo de câmbio a margem é igual ao valor atual descontado do ativo/passivo, e muda junto com o patrimônio líquido.
  30. MetaEditor: Acrescentou a capacidade de inserir facilmente propriedades e recursos para programar código. Por exemplo, você pode adicionar rapidamente um arquivo incluído ao código. Use o comando "Inserir-MQH como #incude", e selecione o arquivo include desejado. A diretiva #include com o caminho correto para o arquivo selecionado será inserida no código do programa.




    O mesmo menu permite adicionar aos arquivos de código do programa na forma de uma matriz binária ou de texto. Entre outros, você pode transferir modelos de gráficos com Expert Advisors ou indicadores: insira seu modelo no código do programa como uma matriz, e salve-o em disco, usando então a função FileSave. Depois disso, o modelo pode ser aplicado no gráfico desejado diretamente de um Expert Advisor, usando a função ChartApplyTemplate.
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  31. MetaEditor: Adicionada uma opção para conversão de cordas entre os formatos ASCII, HEX e Base64. Selecione uma linha no código fonte e clique no comando desejado no menu Edit-Convert:




  32. MetaEditor: Busca fixa sem distinção de maiúsculas e minúsculas em arquivos.
  33. MetaEditor: Corrigido um erro de depuração que poderia ocorrer ao calcular expressões similares a x.y[0][1].z.
  34. MetaEditor: Navegação em código fixo usando os botões Avançar e Voltar.
  35. A interface do usuário agora também está disponível em holandês.
  36. Documentação atualizada.

A atualização estará disponível através do sistema Live Update.


 

Форум по трейдингу, автоматическим торговым системам системам и тестированию торговых стратегий

Обсудим совместные проекты в редакторе - зачем - куда они и куда движутся

Renat Fatkhullin, 2017.12.28 16:51

Esqueci completamente - estamos lançando um novo sistema de comunicação para a comunicação em janeiro.

Este é um análogo do Telegrama, incluindo canais e grupos (públicos e privados).

Será possível lançar grupos temáticos, incluindo os pagos.

Por exemplo, distribuir o conteúdo anatômico por assinatura. Grande ênfase na troca de dados a partir de terminais. Isto tornará muito mais rápida e conveniente a troca de gráficos, perfis, configurações, programas, etc.

 
Sergey Golubev:
Sr. Sergey, você não acha que isto criará muita separação e isolamento para guardar o conhecimento livre no fórum? Porque agora as pessoas terão que se inscrever para ganhar conhecimento!
 

Em relação ao MT5, agora é robusto e promissor. Estou planejando migrar para a MT5 como no próximo ano, quero rapidamente perguntar a respeito da "Fórmula sintética e símbolo personalizado", digamos que meu corretor não fornece o símbolo personalizado que eu escolho criar, posso abrir negócios com esse símbolo e obter lucros/perdas e será que ele será adicionado/deduzido ao meu saldo?

 

Criando um feed de notícias personalizado para o MetaTrader 5


O MetaTrader 5 tem muitas características úteis que um comerciante precisaria, independentemente de seu estilo de negociação, incluindo um possível acesso a uma transmissão de notícias ao vivo. Ele fornece aos negociadores um contexto inestimável que pode ter algum efeito sobre os mercados. A única limitação é o escopo das notícias fornecidas. Acredito que os comerciantes poderiam se beneficiar de ter acesso a um fluxo de notícias mais flexível que permite a capacidade de não apenas escolher o tipo de notícia, mas também sua fonte.

Razão: