MetaTrader 4 Trading Terminal constrói 600 com o MQL4 Atualizado e o Market of Applications lançou o MetaQuotes Software Corp. 3 de fevereiro de 2017 Ao longo dos últimos 7 meses desde o lançamento da compilação pública 509, colocamos muito esforço para melhorar o terminal do cliente MetaTrader 4. A linguagem de programação MQL4 para o desenvolvimento de estratégias comerciais sofreu as mudanças mais significativas - a velocidade de execução do programa foi aumentada, enquanto a própria linguagem foi aproximada do MQL5 no máximo possível. Isto significa que os desenvolvedores de robôs de negociação MQL4 agora também podem desfrutar de todas as vantagens de OOP: classes e estruturas, herança, Biblioteca Padrão. Recursos e muito mais. O novo MetaEditor fornece recursos como depuração, criação de perfil, armazenamento pessoal. Substituição automática de nomes de funções, trechos, inserção de recursos e gerenciamento de código inteligente. O novo terminal do MetaTrader 4 possui o Market - store de aplicativos protegidos para o terminal MetaTrader 4. Agora, qualquer desenvolvedor pode colocar seus próprios programas de negociação para venda na loja de aplicativos unificados, enquanto os comerciantes podem comprar qualquer direito de produto a partir do terminal. Todos os arquivos de aplicativos EX4 baixados do mercado possuem o alto nível de proteção semelhante ao do MQL5. Os desenvolvedores de aplicativos MQL4 podem definir o número de ativações e preços de seus produtos sem se preocupar com as questões técnicas relacionadas ao processo de vendas - o MetaTrader 4 Market cuidará sobre isso. Devido às mudanças na estrutura do arquivo e localização do diretório para armazenamento de arquivos personalizados (indicadores, consultores especializados, scripts, modelos, logs, etc.), todos esses dados serão movidos automaticamente para o novo local durante a atualização. Nenhum arquivo personalizado será excluído durante o processo e todos os arquivos originais permanecerão em seus locais apropriados tornando-se cópias de backup. Todos os arquivos EX4 executáveis personalizados criados pelo compilador MQL4 antigo serão automaticamente movidos para o novo diretório Navigator e funcionarão no novo terminal da mesma maneira que antes. Trading Terminal MQL4 linguagem para a programação de estratégias de negociação foi substancialmente revista e sua funcionalidade tem sido trazido para perto do MQL5. Classes e estruturas foram adicionadas ea sintaxe da linguagem foi estendida até o nível permitindo aos desenvolvedores implementar todas as vantagens da programação orientada a objetos. Isso significa que os robôs comerciais e os indicadores técnicos podem ser criados muito mais fácil e rapidamente agora, enquanto os desenvolvedores do Expert Advisor ganharam novas oportunidades em um único ambiente de desenvolvimento MetaEditor - depuração, criação de perfil, conclusão de código, etc. Saiba mais detalhes sobre os novos recursos em Uma seção separada do artigo MetaEditor sobre MQL5. Velocidade de operação aumentada de aplicativos MQL4, desde suporte interno de DLL e Visual Studio, implementado acesso a MQL5 Armazenamento e muito mais. Adicionado guia do mercado para a compra e download pago e gratuito Expert Advisors, sinais e scripts do MetaTrader 4 Market. Agora, qualquer desenvolvedor MQL4 pode se tornar um Vendedor e oferecer produtos a milhões de comerciantes usando o MetaTrader 4. Você pode baixar uma versão demo ou comprar um aplicativo completo MQL4 pago no MetaTrader 4 Market diretamente do terminal. Cada compra é completamente segura permitindo um usuário até 5 ativações em diferentes PCs e não tem limitações no tempo de trabalho, tipo de conta ou um corretor. Cada indicador pago ou um Expert Advisor pode ser lançado no testador de estratégia MetaTrader 4 em modo visual antes da compra para avaliar o produto. MetaTarder 4 build 600 apresenta a nova estrutura e localização dos arquivos de terminal do cliente. Agora, as aplicações MQL4 são colocadas em diretórios separados de acordo com o tipo de programa (Expert Advisors, indicadores ou scripts). Na maioria dos casos, os dados do terminal são armazenados em uma pasta de dados especial separada do local de instalação do terminal. Neste artigo, vamos descrever em detalhes como os dados são transferidos, bem como as razões para a introdução do novo sistema de armazenamento. Por que o novo sistema de armazenamento de dados foi implementado Microsoft Windows XP lançado há 13 anos permite que as aplicações para escrever seus próprios dados em O local de sua instalação, mesmo se o último ocorreu na pasta do sistema arquivos de programa. Um usuário deve ter apenas uma permissão de administrador para gravar dados em qualquer pasta. Ao trabalhar em sistemas de 64 bits, diretórios de instalação separados são fornecidos para programas de 32 e 64 bits: Arquivos de Programas e Arquivos de Programas (x86). Os recursos de operação descritos no artigo se aplicam a ambos os diretórios. A partir do Windows Vista, a Microsoft introduziu uma restrição ao escrever no diretório de Arquivos de Programas. Se o sistema de Controle de Conta de Usuário (UAC) estiver ativado, os programas não poderão armazenar seus dados na pasta Arquivos de Programas. Todos os dados devem estar localizados em um diretório de usuário separado. Essa limitação foi introduzida para proteger os usuários contra programas mal-intencionados e impedir que os aplicativos em uma conta de usuário alterem ou danifiquem os mesmos dados de programas necessários para outra conta de usuário. Desde essa época, os requisitos de segurança nos sistemas operacionais da Microsoft vêm se apertando ainda mais. Em particular, a partir do Windows 8, o sistema UAC não pode ser desativado mesmo se a opção Nunca notificar estiver selecionada em suas configurações. A Microsoft implementou o processo de virtualização para fornecer compatibilidade com aplicativos mais antigos ao usar o UAC. Se um programa tentar salvar seus dados para o diretório Arquivos de Programas, os dados serão salvos (fisicamente) em uma pasta separada com o seguinte aspecto - C: Usersltuser-namegtAppDataLocalVirtualStoreProgram Files, enquanto o Windows File Explorer mostra os arquivos como se estivessem salvos em O diretório de instalação. A Microsoft afirma que este modo foi fornecido apenas para compatibilidade e pode ser removido posteriormente. Para cumprir as recomendações da Microsoft, a estrutura de armazenamento de dados foi alterada no terminal do cliente MetaTrader 4 a partir da compilação 600. Agora, o terminal também salvará seus dados em um diretório de usuário. Diretório de dados do usuário Na nova versão, todos os dados de um determinado usuário trabalhando com uma determinada cópia do terminal do MetaTrader 4 são armazenados em um local especial chamado pasta de dados do terminal. Esta pasta pode ser encontrada em um disco do sistema (um disco com o sistema operacional Windows instalado) ao longo do seguinte caminho onde:: - nome de um disco do sistema Useraccountname - conta de usuários para trabalhar no Windows Instanceid - nome exclusivo da pasta onde todos os usuários Dados para trabalhar com uma determinada cópia do MetaTrader 4 terminal é armazenado. Um nome exclusivo é composto por 16 caracteres. O nome é gerado com base no caminho para o diretório de instalação do terminal, uma vez que o caminho para o diretório de instalação do terminal não pode ser explicitamente usado como um nome de pasta. O comprimento significativo do nome exclusivo é explicado pelo fato de que várias cópias do terminal podem ser instaladas em um único PC. O comando Abrir pasta de dados foi adicionado ao menu Arquivo do terminal para pesquisar e abrir a pasta de dados. A raiz de cada pasta de dados do terminal também contém o arquivo origem. txt onde você pode encontrar o caminho para a pasta de instalação do terminal a que se refere este dado. Isso permite que os usuários combinem cada pasta de dados do terminal com um determinado diretório de instalação do terminal, por exemplo, no caso de várias cópias do terminal do MetaTrader 4 serem instaladas por um usuário. Este tipo de trabalho com o terminal quando a pasta de dados é separado da instalação é o modo principal. Para mais comodidade, uma entrada contendo o caminho para a pasta de dados é feita no diário de terminais cada vez que o terminal é iniciado. Por exemplo: 2017.02.10 12: 48: 28.477 Pasta de dados: C: UsersJohnSmithAppDataRoamingMetaQuotesTerminal9F86138A4E27C7218E9EC98A5F8D8CA1 Copiar arquivos de aplicativo MQL4 ao atualizar para MetaTrader 4 Build 600 e superior Quando o terminal recém-atualizado é iniciado, ele verifica se a pasta de dados está presente. Se a pasta de dados ainda não estiver presente, ela será criada. Se essa pasta for diferente da instalação, os dados regulares dos terminais (programas MQL4 padrão, dados históricos, arquivos de configuração, modelos, etc.) serão copiados nela. Os arquivos que não são alterados durante a operação do terminal (arquivos executáveis, compilador mql. dll, arquivos de som, etc.) são deixados no diretório de instalação. A pasta de dados do terminal é diferente da instalação nos seguintes casos: O sistema UAC está ativado. A exceção é quando o terminal é instalado em um dispositivo portátil (disco rígido externo, unidade flash USB, etc.). O usuário atual do PC tem direitos limitados para gravar dados no diretório de instalação. Um usuário está trabalhando via conexão remota (RDP). Se nenhuma das condições acima for satisfeita, os dados do terminal são armazenados no diretório de instalação. Em seguida, os arquivos de usuário são movidos para a pasta de dados. Nesta fase, é determinado o diretório onde os dados do usuário dos terminais foram armazenados. Se os dados foram armazenados na pasta de instalação do terminal, eles são copiados da seguinte maneira: Pasta de origem no diretório de instalação Pasta de destino no diretório de dados do terminal Em seguida, verifica se o terminal do cliente armazenou dados no diretório de virtualização Sistemas de armazenamento virtual descritos acima). Se o terminal tiver sido instalado no diretório Arquivos de Programas eo sistema operacional for Windows Vista ou superior, os dados do terminal provavelmente serão armazenados nesse diretório. Se os dados forem encontrados, serão copiados de acordo com a tabela acima. Os arquivos são copiados e não movidos durante a migração. Os arquivos copiados não são excluídos das pastas de origem. Durante a migração, as entradas que contêm caminhos de origem e destino dos arquivos copiados são feitas no diário de terminais. Para exibir todos os logs, abra a guia Diário da janela Terminal e execute o comando Abrir no menu de contexto. A pasta que contém os arquivos de log do terminal será aberta. Se a migração for concluída com êxito para a cópia do terminal atual, ela não será mais repetida durante as atualizações subsequentes do terminal do MetaTrader 4. Se a pasta de dados for diferente da instalação e os aplicativos MQL4 personalizados forem copiados juntamente com os arquivos padrão durante a migração, a seguinte janela de diálogo será exibida: O modo de inicialização portátil é fornecido para a operação do terminal em dispositivos portáteis e diretórios não pertencentes ao sistema , Bem como para trabalhar no Windows XP. Quando iniciado neste modo, o terminal tenta salvar seus dados na pasta de instalação. No entanto, o uso do modo portátil não garante que um sistema operacional permita armazenar dados na pasta de instalação (por exemplo, se o terminal estiver instalado no diretório de Arquivos de Programas eo sistema UAC estiver habilitado). As seguintes condições devem ser atendidas para trabalhar no modo portátil: O terminal será sempre lançado no modo portátil. Não é recomendável usar o modo portátil no caso de você usar o Windows Vista ou superior, eo terminal é instalado em arquivos de programa. Este modo é fornecido para a operação do terminal em dispositivos portáteis e Windows XP. Se você atualizou o terminal e todos os dados tiverem sido copiados para uma pasta de dados de usuário separada, também não é recomendável mudar para o modo Portátil. Você deve copiar manualmente os dados para a pasta de instalação para usar o modo portátil depois de copiar os dados na pasta de dados do usuário. Lançar o terminal no modo portátil não copia os dados da pasta de dados para a instalação. Para iniciar o terminal no modo portátil, use a chave portátil. Para mais conveniência, você pode criar um atalho de início de terminal adicional com o nome apropriado em sua área de trabalho e adicionar a chave diretamente ao atalho: Alterou o algoritmo de colocar pedidos comerciais. Em compilações anteriores, uma conexão de rede adicional foi criada ao colocar solicitações de comércio. Esta ligação manteve-se ativa por algum tempo depois que uma última solicitação comercial foi enviada, a fim de fornecer o envio rápido de um grande número de pedidos de comércio. Agora, ao colocar pedidos de comércio, todos eles são passados através da conexão principal com o servidor de comércio. Assim, o tempo de processamento das solicitações comerciais (especialmente o primeiro) foi consideravelmente reduzido, pois não há necessidade de aguardar mais conexão com o servidor comercial. Para que o novo algoritmo de envio de pedidos seja operável, o servidor comercial também deve ser atualizado - os pedidos ainda são definidos em uma conexão separada em servidores comerciais mais antigos. Devido à transição para o novo modelo de processamento de pedidos, a capacidade de cancelar as solicitações comerciais ainda não aceitas pelo servidor (botão Cancelar na caixa de diálogo de status da solicitação comercial) foi desativada. Formato de armazenamento de dados do histórico RateInfo alterado. A estrutura RateInfo foi apresentada da seguinte forma na versão antiga: No novo formato, a estrutura RateInfo possui campos para armazenar o volume de propagação e negociação: Assim, se os programas MQL4 contêm DLLs para passar os dados de preços aceitos, as funções correspondentes nos códigos-fonte devem ser reescritas e Recompilado considerando alterações de formato para garantir o funcionamento correto. As antigas aplicações EX4 e as DLL baseadas no formato RateInfo antigo não funcionarão no novo terminal. A conversão para o novo formato é necessária. Adicionada a pesquisa global no terminal do cliente MetaTrader 4 e no MQL4. A busca no terminal permite que você encontre rapidamente informações em todas as seções do terminal do cliente, Código Base. Bem como em sites MQL4 e MQL5. Pesquisa de palavra a palavra em relação à morfologia russa e inglesa é usada. A pesquisa é realizada nas seções especificadas por um usuário nas configurações: O menu de contexto da guia resultados de pesquisa contém comandos adicionais dependendo do tipo de resultados: Adicionado o comando de colocar uma ordem instantânea para o desenvolvimento de aplicativos MQL4 na seção de Empregos . Agora, cada comerciante não pode apenas baixar qualquer código da biblioteca gratuita, mas também encontrar um programador capaz de desenvolver um indicador necessário ou um robô comercial de acordo com o algoritmo do usuário. O processo de execução de uma ordem é descrito no artigo Como encomendar um consultor especialista e Obter o resultado desejado e fornece proteção para terceiros - um desenvolvedor e um cliente. Adicionada a capacidade de enviar notificações push de transações que ocorrem na conta do cliente: colocando, alterando e removendo ordens, ativação de pedidos pendentes e SL-TP, Margin Call e Stop Out. As notificações de envio são enviadas para os terminais móveis instalados nos dispositivos com iOS e Android, não dependem do número de telefone e podem ser entregues se a conexão com a Internet estiver disponível. Descubra os detalhes no artigo MetaQuotes ID no MetaTrader Mobile Terminal. Adicionado exibição de alertas no gráfico. Os alertas podem ser gerenciados via dragndrop. Além disso, a capacidade de definir um tempo de expiração de alerta foi implementada. Quando o gerenciamento de níveis de negociação do gráfico é permitido, o valor de preço de alertas pode ser alterado pelo seu arrastar para um novo nível de preço. Os alertas podem ser desativados ou removidos usando um menu de contexto no nível de gráfico apropriado. Adicionada pesquisa para um servidor por um nome de empresa na janela de demonstração abertura janela. Basta digitar um nome de empresa (ou um fragmento de um nome de servidor) eo terminal adicionará automaticamente todos os servidores da empresa (os servidores que contêm a linha especificada em seus nomes) à lista: Exibição adicionada de subpastas ea estrutura de Expert Advisors , Os certificados e os indicadores na janela do navegador. Melhoram a precisão do tempo de abertura e de fechamento das ordens de comércio e das posições indicadas nas listas de ordens e de posições abertas, do history de troca e dos relatórios de comércio - segundos foram adicionados. Market Watch e Popup Prices janelas - o último tempo de cotações é mostrado até segundos (em vez de minutos). Foi adicionada a solicitação automática de reinicialização do terminal depois de alterar o idioma da interface. O terminal do cliente deve ser reiniciado para que a alteração entre em vigor. Anteriormente, os usuários tinham para fechar e lançar o terminal para si. Agora, depois de alterar o idioma da interface, os usuários são imediatamente solicitados a reiniciar o terminal - ele pode ser fechado e reiniciado com um único clique. Corrigido tooltips de níveis de negociação no caso de os indicadores usando uma sub-janela separada estão presentes no gráfico. Ao passar o cursor do mouse sobre o nível Stop Loss ou Take Profit no gráfico, é exibida uma dica que contém o lucro (em pontos e moeda) a ser recebido no caso da ativação dos níveis. Anteriormente, se um indicador trabalhando em uma sub-janela separada (por exemplo, MACD padrão) estava presente no gráfico, essa dica de ferramenta não foi exibida às vezes. Added atualização automática do terminal do cliente built-in user guide arquivos semelhantes ao implementado no MetaTrader 5. Agora, os arquivos de ajuda não estão incluídos na instalação dos terminais e os pacotes do LiveUpdate reduzem o volume de tráfego. O guia do usuário é baixado na primeira vez que um usuário o abre. Em todos os casos subseqüentes, o sistema verifica se as novas versões estão presentes. Se houver uma nova versão disponível, o usuário será solicitado a atualizar: O novo sistema de trabalho com arquivos de ajuda também reduz o consumo de tráfego devido ao fato de que a versão de idioma do guia do usuário baixado corresponde apenas ao idioma especificado para o cliente Terminais (não são descarregadas versões excessivas de idiomas). Este sistema também fornece atualização regular do guia do usuário, independentemente da atualização do terminal do cliente. Adicionado MQL5munity diálogo de registro rápido no caso de um usuário não tem conta. Agora, uma conta MQL5munity pode ser criada sem a necessidade de deixar o terminal. Specify login e endereço de e-mail na janela de registro. Depois de clicar em Registrar, um e-mail para a ativação da conta MQL5munity é enviado para o endereço especificado. MQL5munity conta permite que os comerciantes usem poderosos serviços adicionais: MetaTrader 4 AppStore - os usuários podem comprar MetaTrader 4 aplicativos ou baixá-los gratuitamente a partir do terminal. O MetaStrader 4 AppStore oferece centenas de várias aplicações e seu número está aumentando constantemente. Serviço de sinais - os utilizadores podem subscrever sinais de negociação fornecidos por comerciantes profissionais e obter lucros. Operações de negociação são automaticamente copiadas da conta de provedores para assinantes um. O serviço também permite vender seus próprios sinais comerciais. Uma conta comercial pode ser conectada ao sistema de monitoramento em poucos cliques. As contas de negociação agora são exibidas muito mais claras na janela do Navigator: as contas são agrupadas por seus servidores comerciais apropriados. Se uma conta estiver inscrita em sinais de negociação, o ícone com um nome de sinal é exibido nas proximidades. Ao passar o cursor do mouse sobre o sinal, é exibida a data de validade da assinatura. Se a conta de negociação atual estiver inscrita em um sinal, o ícone apropriado será exibido na guia Comercial da janela Símbolos. Ao passar o cursor do mouse sobre o ícone, os dados do sinal são mostrados. Houve casos em que os comerciantes esqueceram que sua conta foi assinada a um sinal. Isso pode acontecer, por exemplo, quando a assinatura foi feita para verificar a operação de serviços. O ícone de assinatura torna o trabalho com sinais mais conveniente. Adicionado novos objetos gráficos: botão, mapa de bits, rótulo de mapa de bits, rótulo. Esses objetos não podem ser instalados manualmente nos gráficos e são projetados para organizar uma interface de usuário para aplicativos MQL5: Expert Advisors, scripts e indicadores. Trabalho otimizado com MQL5munity em caso de conexão lenta à Internet. Agora, você pode trabalhar com sinais de negociação. Biblioteca de Código Base e a versão MQL5 Armazenamento convenientemente mesmo em baixa velocidade de conexão. Maior precisão do tempo exibido nos terminais do cliente. Jornal - milissegundos foram adicionados. Fixed One Clique no fechamento de posições na lista de ordens e posições abertas (clicando no botão Cruzar) - agora o valor do desvio de preço aceitável nas configurações de negociação é usado no modo de Execução Instantânea. Adicionado a capacidade de copiar para a área de transferência na guia Empresa. Arranjo fixo de janelas de gráfico por comandos. Corrigido os perfis de economia ao alternar entre gráficos em tela cheia. Exibição fixa de vários diálogos ao usar a interface japonesa. Todos os componentes de terminais de cliente requerem suporte para instrução SSE2 definida pelo processador de PCs para operação eficiente e alto desempenho. Digitalização otimizada para o melhor ponto de acesso. Corrigido os erros de loop que ocorreram durante a atualização em caso de recusa de elevar os direitos ao usar o UAC. Exibição fixa do cabeçalho e conteúdo das notícias, bem como de e-mails internos usando a codificação UTF-8. Corrigido um erro que, em alguns casos, poderia levar a exibição incorreta dos campos Margem e Margem grátis na lista de pedidos e posições abertas. Esse erro pode ocorrer quando um usuário recusou aceitar acordo One-Click Trading. Atualizado a lista de países no diálogo apropriado ao abrir uma conta de demonstração. Tradução atualizada e aprimorada da interface em sueco, húngaro, japonês, italiano e búlgaro. Tempo fixo na barra de diálogo das citações Arquivo. Anteriormente, o tempo de barra foi exibido incorretamente ao reabrir a caixa de diálogo da barra. O arquivo de citações permite gerenciar os dados dos preços dos terminais - baixar, editar e excluir barras de vários prazos. Corrigido o download de dados do histórico através do arquivo de cotações. O erro pode ocorrer se o número de caracteres na conta corrente for diferente do de cotações baixadas (por exemplo, se os preços de contas correntes tiverem quatro casas decimais, enquanto os preços baixados do arquivo tiverem cinco). Corrigido exibindo margem hedged na caixa de diálogo de especificação de símbolo. Anteriormente, os valores sempre foram arredondados para a parte inteira: Sinais Trading Informação expandida sobre um sinal de negociação: informações adicionais sobre a data da última negociação eo número de comércios para a última semana. Adicionado gráfico de Equity da conta de fonte de sinais de negociação. Adicionado Diagrama de distribuição mostrando a atividade comercial por símbolos. Adicionada a opção para sincronização incondicional de posições entre uma fonte de sinal e uma conta de assinantes. Se activada, a sincronização de assinantes e contas de fontes de sinal (incluindo fechar posições abertas não relacionadas com o sinal) é efectuada sem confirmação adicional de assinantes. Esta opção é necessária quando se utilizam sinais em VPS (Virtual Private Server). Também pode ser usado para aumentar a confiabilidade de sincronização quando se trabalha com o sinal já selecionado. Legenda adicionada para gráficos de equidade, crescimento, equilíbrio e distribuição. Além disso, as marcas apresentando depósito de fundos e retirada foram adicionadas ao gráfico de equidade. Ao deslizar o cursor do mouse sobre o triângulo de operação do balanço, é exibida uma dica de ferramenta com a soma da operação: Exibição adicionada do número de novos sinais comerciais enviados nos últimos 3 dias na guia de sinais. Adicionado consideração do volume mínimo permitido e do passo de volume mínimo durante a sincronização inicial das posições de negociação. Se o tamanho da posição local for inferior ao volume estimado no lado dos sinais, o aumento na posição local não será executado, pois seria necessário reabrir a posição. Isso pode levar à perda da propagação. Corrigido abrir e fechar posições comerciais por símbolos, sendo o tipo de execução mudado de Execução Instantânea para Execução de Solicitação quando o valor do volume da ordem do limite é excedido. Quando os símbolos de uma fonte de sinal e um assinante são comparados e um número de símbolos apropriados no lado dos assinantes são encontrados, a permissão de troca deles agora é considerada. Adicionado histórico e comentários tabs para as informações sobre um sinal de negociação. Adicionado sinais de classificação da coluna para a lista de sinais. Removido exibição de bilhetes de ordens de sinais e posições a partir da informação sobre um sinal de negociação. Corrigido um erro de sincronização de sinais de negociação que ocasionalmente ocorreu no caso de um grande número de posições unidirecionais com o mesmo volume. Adicionado conversão automática de símbolos comerciais GOLD ltgt XAUUSD e SILVER ltgt XAGUSD. Adicionou proibição de subscrever sinais de negociação para contas compatíveis com os regulamentos FIFO da NFA. Assinatura fixa para sinais ao trabalhar em Wine (Linux e Mac). Removido Exibe a lista completa de sinais da guia Sinais da janela Símbolos. Se esta opção estiver desactivada, apenas os sinais fornecidos a partir das contas do mesmo corretor são apresentados no mostrador de sinal dos terminais. Agora, todos os sinais são exibidos na vitrine, independentemente de um corretor. Como resultado, os comerciantes sempre têm uma grande variedade de sinais disponíveis para assinatura, permitindo-lhes escolher as melhores ofertas. Tester Estratégico Corrigido a consideração de um conjunto de propagação de carrapatos nos parâmetros de teste ao otimizar usando um cache de carrapatos. Corrigido erro de teste que ocasionalmente poderia levar a um cálculo incorreto de uma comissão de negociação. Durante os testes, as configurações de comissões cobradas são retiradas dos parâmetros de símbolo de negociação apropriados. Anteriormente, se o valor da comissão foi cobrado como uma porcentagem ao ano, foi calculado incorretamente no testador de estratégia. MQL4 Language Corrigido um erro que ocasionalmente impediu fechar e abrir posições de negociação de aplicativos MQL4. Esse erro pode ocorrer ao lidar com símbolos de negociação do tipo de Execução do Mercado ao enviar ordens de grande volume. Corrigido erros relatados no fórum e em logs de falha. O que há de novo na linguagem de programação MQL4 MQL4 foi completamente revisto atingindo o nível de MQL5 - agora você pode desenvolver robôs de negociação em MQL45 usando o ambiente de desenvolvimento do MetaEditor unificado, estilo único, bibliotecas e ferramentas de depuração. O MQL4 é popular entre os desenvolvedores de sistemas automáticos devido à facilidade de aprendizado e uma enorme quantidade de código gerado por muitos anos usando o terminal MetaTrader 4. No entanto, o idioma também apresenta algumas desvantagens decorrentes de sua principal vantagem - uma linguagem de programação simples não permite o desenvolvimento de sistemas complexos e dificulta a transferência de bibliotecas depuradas a partir de linguagens de alto nível. Portanto, decidimos implementar nela a quantidade máxima possível de funções e recursos de linguagem MQL5, que preserva completamente a funcionalidade MQL4. Em outras palavras, todas as poderosas funções MQL5, incluindo P e o compilador de código nativo, estarão disponíveis no MQL4. Para isso, desenvolvemos um compilador unificado que suporta automaticamente as linguagens MQL4 e MQL5. O MetaEditor também se tornará um aplicativo unificado para plataformas MetaTrader 4 e MetaTrader 5. Assim, será possível compilar MQL4 e MQL5 a partir de qualquer versão. O armazenamento MQL5 também fica disponível para o trabalho. A proteção de aplicativos MQL4 aumenta para o nível MQL5. Novos arquivos EX4EX5 são fornecidos com uma proteção séria e completamente revisada. Isso significa que o Mercado de aplicativos EX4 seguros também está disponível para o MetaTrader 4. Além disso, o MQL4 agora possui novos objetos gráficos e novas funções para trabalhar com gráficos. MQL5 Standard Library deve ser portado para MQL4, proporcionando aos desenvolvedores novas possibilidades na criação de suas próprias interfaces gráficas e bibliotecas comerciais. Agora, você pode criar aplicativos completos no MetaTrader 4 usando os recursos. Alterações na linguagem MQL4 Adicionado novo caractere, curto, longo, uchar, ushort, uint, ulong e tipos de dados duplos. Isso permitirá a transferência de códigos de outros C como idiomas. Dados de vários tipos são processados a taxas diferentes. Os dados inteiros são os mais rápidos a serem processados. Um co-processador especial é usado para manipular os dados de dupla precisão. No entanto, devido à complexidade da representação interna de dados de ponto flutuante, ele é processado mais lento do que um inteiro. Typecasting também foi implementado. As strings agora são apresentadas no formato Unicode, embora elas estivessem no formato ANSI (um byte) antes. Isso deve ser considerado se o programa usa DLLs e passa variáveis de seqüência de caracteres para eles. A variável Predefined Volume é agora de tipo ulong. A série de tempo para acessar os volumes também consistem em matrizes de tipo ulong. Recomenda-se usar a conversão explícita de dados com esse tipo para o tipo de destino em programas MQL4 antigos para evitar o erro de estouro de tipo. Foram adicionadas estruturas e classes, ponteiros de objeto, tipo vazio e esta palavra-chave permitindo que um objeto receba uma referência a si próprio. Todos os padrões de programação orientados a objetos são suportados: Encapsulamento e Extensibilidade de Tipos Herança Polimorfismo Sobrecarga Funções virtuais P permite desenvolver programas usando classes. Isso facilita a depuração eo desenvolvimento de grandes aplicativos, bem como fornece a capacidade de reutilizar código gerado anteriormente várias vezes devido à herança. No entanto, isso não significa que você não pode gerar o código MQL4 no estilo orientado a procedimento como antes. Você pode desenvolver seus programas como você fez no passado, se você não precisa dos novos recursos. As funções predefinidas init (), deinit () e start () permaneceram para compatibilidade, no entanto, OnInit (), OnDeinit (), OnStart (), OnCalculate () e OnTick () podem ser usados em vez disso. Além disso, foram adicionadas novas funções de manipulador predefinidas OnTimer (), OnChartEvent () e OnTester (). Nas versões MQL4 anteriores, as funções predefinidas poderiam ter quaisquer parâmetros e qualquer tipo de retorno. Essas funções eram chamadas por seus nomes, não por assinaturas. No novo MQL4, todas as funções predefinidas devem corresponder exatamente às suas assinaturas. Em outras palavras, eles devem ter um conjunto de parâmetros claramente definido e um tipo de retorno. Agora, os nomes de variáveis não podem conter caracteres e pontos especiais e as novas palavras-chave de idioma MQL4 não podem ser usadas como nomes. Antigos programas MQL4 podem ser recompilados com o novo compilador, a fim de corrigir facilmente todos esses erros, seguindo as mensagens dos compiladores. A regra de precedência agora corresponde aos padrões de linguagem C. Se você não tiver certeza, você pode inserir parênteses em aplicativos MQL4 antigos para indicar claramente a prioridade para aumentar a confiabilidade. A verificação de condições reduzidas agora é usada em operações lógicas, ao contrário da versão MQL4 antiga onde todas as expressões foram calculadas e a verificação foi realizada posteriormente. Suponha que haja uma verificação de duas condições com o uso de AND lógico Se a expressão condition1 for falsa. O cálculo da expressão condicional2 não é executado, pois o resultado verdadeiro ampamp verdadeiro ainda é igual a falso. ArrayCopyRates () também mudou seu comportamento. Em vez de copiar virtual para a matriz double6, ele agora executa cópia virtual para matriz MqlRates. Copiar para o array double6 permaneceu intacto por razões de compatibilidade, no entanto, que a cópia é real, não virtual. Nas operações de arquivos, o número de arquivos abertos simultaneamente agora pode atingir 64, enquanto não pode haver mais de 32 no MQL4 antigo. Até recentemente, os arquivos sempre foram abertos no modo FILESHAREREAD ou FILESHAREWRITE. Agora, o modo de abertura necessário deve ser especificado explicitamente. Trabalhar com funções, escopo de variáveis e liberação de memória em matrizes locais também foi alterado. Since the number of changes is large enough, the new property strict property has been introduced to provide maximum compatibility with the previous approach to developing MQL4 programs. When creating new MQL4 application using MQL wizard, this property is always added to the template. The table below contains the differences between MQL4, new MQL4 without using strict and new MQL4 with specified strict compilation mode The table of differences between compilers Old MQL4 compiler New MQL4 compiler New MQL4 with property strictMetaTrader 4 - Examples Secrets of the MetaTrader 4 Client Terminal: Indicators One cannot imagine the analysis of financial markets without technical indicators at the present time. You can create your own indicators or use the embedded ones. The embedded indicators work faster than the custom ones and have a number of features that cannot be implemented in custom indicators. For example, there are indicators that can be attached to a chart both in the main window and in a subwindow. Besides, indicator can be calculated not on price andor volume values, but on the values of another indicator. Clever use of the embedded indicators will help to go far without diving into programming the own ones. There are thirty embedded indicators in the MetaTrader 4 Client Terminal. Conditionally, all indicators can be divided into four groups: oscillators trend indicators Bill Williams indicators volumes. Trend indicators help to allocate price movement in one direction and detect, synchroniously or delayed, the moments when trends turn. Oscillators allow to detect such turns synchroniously or in advance. Bill Williams indicators have properties of both oscillators and trend indicators. Volumes analyze not the price movements as they are, but the amount of ticks that have income during the bar. Summary Table of Embedded Indicators Characteristics Using the links in the table, you can view the code source of a custom indicator that correponds with the embedded one. Table field descriptions o oscillator t trend indicator b Bill Williams indicator v volume. s indicator is attached in a subwindow by default m indicator is attached in the main window by default. Association with sm . Whether the indicator can or not be associated with the indicator already attached in a subwindow (s) or in the main window (m). Additional lines . Additional lines, Previous Indicators Data and First Indicators Data, appear in the Apply to field in the indicators properties window when the indicator is being dragged. Previous Indicators Data - data of the latest indicator attached to the main window or to a subwindow. If there are no attached indicators, the Previous Indicators Data are the chart data. And the indicator to be attached will be built based on the Close price of the chart. First Indicators Data - data of the indicator that was attached as the first to the main window or to a subwindow. If there are no attached indicators, the First Indicators Data are the chart data. And the indicator to be attached will be built based on the Close price of the chart. Periodshift . Availability of fields with corresponding names in the Parameters tab of the indicators properties window. Apply to . Availability of the Apply to field in the Parameters tab of the indicators properties window. Método. Availability of the field of the same name in the Parameters tab (choice of moving average building method). Levels . Availability of the Levels tab. How to Attach Indicators to a Chart An indicator can be attached to a chart in six ways: using the main menu command: double-clicking on the indicator name in the Navigator window selecting the Navigator window context menu command:using the preset hot keys dragging the indicator with the mouse into the main window or into the other indicators subwindow (drag-and-drop).The first five ways do not differ from each other fundamentally. Let us call them default modes of indicator attaching. At this, the indicator will be drawn either in the chart or in a separate subwindow, as by default. The fifth method, the dragging, is more interesting. Some indicators, when dragged into the chart, can be calculated from values of another indicator already attached to the chart. There are seven special indicators: Bollinger Bands Commodity Channel Index Envelopes Momentum Moving Average Relative Strength Index Standard Deviation. Embedded indicators can be combined with other indicators or calculated on values of other indicators. At combining, the indicator to be attached is just displayed over the indicator already attached, but has its own scale and borders. In this case, the values of the indicator to be attached are calculated from the chart price values. An embedded indicator that is displayed in a subwindow by default can be combined with the indicator already attached in the subwindow. An embedded indicator that is displayed in the main window by default can be combined with the indicator already attached in the main window. Most embedded indicators can only be attached as in the default mode. Those seven special indicators can be attached both to the main window and to a subwindow. How to Attach to the Main Window Indicators that Are Opened in a Subwindow by Default Indicators below are opened in a subwindow by default: Commodity Channel Index Momentum Relative Strength Index Standard Deviation Let us study properties of these indicators by the example of Commodity Channel Index. As it was already mentioned above, this indicator will be opened in a separate window by default: To attach CCI to the main window, one has to drag it to the chart. The indicators properties will look as given below: Actually, the chart is at the same time the indicator. So, if no other indicators are available, First Indicators Data and Previous Indicators Data - are data of the chart itself, and the drawing method on the previous indicators values does not differ from that on the first indicators values in any way. Thus, to attach indicator into the chart window, one has to drag-and-drop it to the chart and select First Indicators Data or Previous Indicators Data. The obtained result: Indicators Momentum, Relative Strength Index and Standard Deviation are attached to the chart window in the same way. How to Attach to a Subwindow Indicators that Are Opened in the Main Window by Default Indicators of this group are listed below: Let us consider Moving Average as an example. By default, this indicator looks as follows: Attachment of the MA to a separate subwindow, it is necessary to make some more actions than for the previous example. First of all, a separate window must be created. For this, let us attach to the chart any indicator that can be opened in a subwindow. For example, MACD. Now, we can drag the Moving Average into the MACD window and select Previous Indicators Data or First Indicators Data in the properties window (since there is only one indicator in the subwindow, the MACD, it will be both the first and the last indicator). When a number of indicators are attached to one subwindow, it is always possible to detect, which of them on which is built. Selection of Previous Indicators Data is displayed as - gt, that of First Indicators Data - as gt. We have obtained MACD with Moving Average superimposed on it. We can stop at this, but we can also do so that only Moving Average will remain in the window. To do so, it is necessary to remove MACD. But, if we just remove it, the Moving Average, as indicator built on the MACD values, will be removed, as well. So, let us detach Moving Average from MACD first. Let us calculate on, for example, Close values. Now, the MACD can be removed, the Moving Average will remain in the separate window. Thus, combining properties of different indicators, one can build a rather complicated system. Some Common Properties of Indicators Attaching If the indicator to be attached is calculated on values of the indicator that has several lines (more than one), it will be calculated on values of zero line or the main line. In the code, this line is detected using values of the first parameter of the SetIndexStyle function. So, for example, if the indicator to be attached is calculated on the MACD, the histogram values will be taken as the values for calculations since it is determined in the MACD code: SetIndexStyle(0, DRAWHISTOGRAM). Many indicators have, by default, fixed maximum and minimum, for example, RSI has. In this case, after it has been attached to another indicator, for example, MACD, their borders can misalign, i. e. RSI just will not match the MACD window. To correct this, it is necessary to uncheck the fields of maximum and minimum, and the indicators scales will be independent on each other. When a number of indicators are attached to one subwindow, it is always possible to detect, which of them on which is built. Selection of Previous Indicators Data is displayed as - gt, that of First Indicators Data - as gt. In the above example, the indicators are built in the following way: attached MACD calculated MA on the First Indicators Data, i. e. on values of the MACD calculated RSI on the First Indicators Data, i. e. again on values of the MACD combined CCI with MACD calculated Momentum on the Previous Indicators Data, i. e. on values of the CCI. Embedded indicators can be superposed onto not only other embedded indicators, but also onto custom indicators. The attaching principles are the same. For example:How to Build Levels Some indicators allow building of levels. For MA, one can build a channel using levels. To do so, it is necessary to go to the Levels tab and set some values using the Add button. Now, if we make the MA line colored the same as the background, we will obtain channel built on the moving average. Visualization Tab In the end, let us consider one more property of indicators in the MetaTrader 4 Client Terminal. All indicators, both embedded and custom ones, have this property. Moreover, it can apply to objects, as well, i. e. to graphical and technical analytical tools. There is no secret that data analyzed on different timeframes of the same symbol can differ. Different technical tools can be used, including different indicators with different settings. The following can be done in order not to re-adjust indicators again and again when switching between timeframes: Specify in the indicator properties window that timeframe, to which the selected indicator will be anchored. And so on for all indicators and on all timeframes. In future, when switching between them, we will be able to see different indicators on different timeframes. It remains just to save the template to be used in future for other symbols. Example . On timeframes of H1 and M15, the same indicators, MACD and MA, are attached, but with different periods. On H1: MACD with values of 12, 26, 9 MA with the period of 7 is calculated on the MACD MA with the period of 5 is calculated on the MA(7). On M15: MACD with values of 24, 52, 18 MA with the period of 28 is calculated on the MACD MA with the period of 20 is calculated on the MA(28).
No comments:
Post a Comment