Nova versão da plataforma MetaTrader 5 build 1525: apresentação do histórico na forma de posições e melhorias no testador

 

Nova versão da plataforma MetaTrader 5 build 1525: apresentação do histórico na forma de posições e melhorias no testador

Na sexta-feira, 27 de janeiro de 2017, será publicada uma atualização da plataforma MetaTrader 5. Ela contém as seguintes alterações:

  1. Terminal: foi adicionada a apresentação do histórico na forma de posições. O terminal de recolhe dados sobre transações relacionadas com a posição (abertura, aumento, fechamento parcial e total) e agrupa este dados numa única conta, onde é possível ver imediatamente:

    • Momento - de abertura e fechamento de posição - a ser determinado pela primeira e a última transação, respectivamente
    • Volume da posição; se a posição é fechada parcialmente, são exibidos o volume fechado e o volume original
    • Preço de abertura médio ponderado e preço de fechamento de posição
    • Resultado financeiro total das transações relacionadas com a posição




    Para contas de cobertura, esse tipo de apresentação de posições, na verdade, é semelhante ao histórico da conta na plataforma MetaTrader 4.




  2. Terminal: foi adicionado um comando para processar o histórico de transações no gráfico de um determinado símbolo.

    • Para exibir todas as transações somente no símbolo da posição/transação selecionada, clique em "Adicionar transação por [nome do símbolo]." Transações serão adicionadas a todos os gráficos abertos atualmente de acordo com este símbolo. Se não houver gráficos abertos, será aberto um novo.
    • Para exibir as transações para todos os símbolos a partir do histórico da conta, clique em "Adicionar todas as transações." Em todos os gráficos abertos, serão adicionadas todas as operações de acordo com o símbolo correspondente.




  3. Terminal: foram adicionadas tanto a exibição do nome internacional do instrumento de negociação nas especificações do contrato, como a possibilidade de procurar segundo ele na caixa de diálogo de controle de instrumentos.




  4. Terminal: foi adicionada a possibilidade de definir rapidamente a resolução para a janela do terminal. A função será útil para aqueles que fazem vídeos. No menu, estão disponíveis as mais populares resoluções para a publicação em serviços de vídeo, como YouTube.



  5. Terminal: escalas e perfis de gráficos migrados a partir de [diretório de dados do terminal\Profiles] para [diretório de dados do terminal\MQL5\Profiles]. Agora é possível adicionar facilmente escalas no repositório MQL5 Storage e utilizá-las com qualquer um dos seus computadores.
  6. MQL5: foi adicionado o suporte para variáveis de recurso. Sua utilização pode facilitar muito a escrita de alguns programas. Por exemplo, você pode escrever um código em OpenCL num arquivo CL separado e, em seguida, incluir esse arquivo - como uma cadeia de caracteres - nos recursos de seu programa MQL5. Anteriormente, em vez disso, era necessário descrever esse código como uma variável de cadeia grande.

    Declaração da variável de recurso
    #resource caminho_para_o_arquivo_do_recurso as tipo_de_variável_de_recurso nome_de_variável_de_recurso

    Características
    • Para arquivos de sequência de caracteres, a codificação de BOM (cabeçalho) é detectada automaticamente. Se não houver nenhum BOM, a codificação será determinada pelo conteúdo. São suportadas codificações ANSI, UTF-8 e UTF-16. Todas as cadeias de caracteres são convertidas para Unicode.
    • Os dados deste recurso podem ser tratados por intermédio de uma variável. O endereçamento automático via "::<resource name>" não funciona.
    • O tipo especial de variável de recurso bitmap informa ao compilador que o recurso é uma representação gráfica. A variável de recurso, neste caso, obtém o tipo uint.
    • Ao usar uma imagem de 24 bits, para todos seu pixels de componente de canal-alfa, define-se como 255.
    • Ao usar uma imagem de 32 bits, sem canal-alfa, para todos seu pixels de componente de canal-alfa, também é definido como 255.
    • Após carregar uma imagem de 32 bits com canal-alfa não acontece nenhuma manipulação de pixels.
    • A matriz-variável de recurso de tipo bitmap pode ter duas dimensões. Neste caso, o tamanho da matriz será definido como [altura_de_imagem][largura_de_imagem].
    • No caso de uma matriz unidimensional, o número de elementos será definido como altura_de_imagem*largura_de_imagem.
    • Se o tamanho do arquivo de recurso não é um múltiplo do tamanho do elemento da matriz, em seguida, o resto dos dados é cortado. Por exemplo, quando o tamanho do arquivo é 14 bytes, para a matriz int o número de elementos será 3, e os restantes 2 bytes (14 - sizeof(int)*3) serão descartados.

    Exemplos de utilização
    #resource "data.bin" as int ExtData[]             // declaração de matriz de tipo numérico, que contém dados a partir do arquivo data.bin
    #resource "data.bin" as MqlRates ExtData[]        // declaração de matriz de estrutura simples, que contém dados a partir do arquivo data.bin
    
    #resource "data.txt" as string ExtCode            // declaração de cadeias de caracteres, que contém dados a partir do arquivo data.txt
    #resource "data.txt" as string ExtCode[]          // declaração de matriz de sequência de caracteres, que contém dados a partir do arquivo data.txt
    
    #resource "image.bmp" as bitmap ExtBitmap[]       // declaração de matriz unidimensional, que contém em si a varredura a partir do arquivo BMP, tamanho da matriz = height * width
    #resource "image.bmp" as bitmap ExtBitmap2[][]    // declaração de matriz bidimensional, que contém em si a varredura a partir do arquivo BMP, tamanho da matriz [height][width]

  7. MQL5: foi adicionada a propriedade CHART_SHOW para desativa a exibição do gráfico. Para obter e instalar a propriedade, são utilizadas as funções ChartGetInteger e ChartSetInteger.

    Se for definido como false, será desativada a plotagem de todos os atributos do gráfico de colunas de preços e serão removidas todos os recuos nas bordas do gráfico de colunas: escala do tempo e preço, barra de navegação rápida, marcas de eventos de calendário, ícones de transação, dicas de indicadores e barras, painéis indicadores, histogramas de volume, etc.

    A desativação da plotagem é uma solução ideal para criar sua própria interface de programa usando recursos gráficos.

    Os objetos gráficos sempre são plotados independentemente do valor da propriedade CHART_SHOW.

  8. MQL5: foi adicionada a propriedade CHART_KEYBOARD_CONTROL para ativar/desativar o controle de gráficos usando os teclas ("Home", "End", "PageUp", "+", "-", "Seta para cima", etc.). Ao definir CHART_KEYBOARD_CONTROL=false, é possível desativar a rolagem e dimensionamento do gráfico, no entanto, ao fazer isto, mantem-se a possibilidade de obter eventos - usando essa teclas - em OnChartEvent.

    Para obter e definir propriedades, são utilizadas as funções ChartGetInteger e ChartSetInteger.

  9. MQL5: foram adicionadas novas funçóes e propriedade para trabalhar com OpenCL.

    Novas propriedades para trabalhar com a memória
    Usando CLGetInfoIntegrer agora é possível quatro novas propriedades:
    • CL_DEVICE_MAX_WORK_GROUP_SIZE — número total de grupos locais de trabalho para o dispositivo OpenCL.
    • CL_KERNEL_WORK_GROUP_SIZE — número total de grupos locais de trabalho para o programa OpenCL.
    • CL_KERNEL_LOCAL_MEM_SIZE — tamanho da memória local em bytes, que é usada pelo programa OpenCL para todas as tarefas simultâneas no grupo. Utilize CL_DEVICE_LOCAL_MEM_SIZE para obter o máximo disponível.
    • CL_KERNEL_PRIVATE_MEM_SIZE — tamanho mínimo de memória privada em bytes a ser usado por cada tarefa na kernel do programa OpenCL.

    bool CLExecutionStatus(int kernel)
    Retornar o estado de execução do programa OpenCL. Como parâmero é enviado o identificador para a kernel do programa OpenCL.

    bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
    Ele define o buffer local como argumento da função kernel. Como parâmero são enviados: o identificador para a kernel do programa OpenCL, o número do argumento de função OpenCL e tamanho de buffer.

  10. Foi adicionada a função TranslateKey, que retorna o caractere Unicode para o código de tecla virtual, tendo em conta o idioma de entrada atual e o estado das teclas modificadoras. A função utiliza a função ToUnicodeEx para converter as teclas digitadas pelo usuário para caracteres Unicode.
    void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
      {
       if(id==CHARTEVENT_KEYDOWN)
         {
          short sym=TranslateKey((int)lparam);
          //--- se o caractere digitado for convertido com sucesso para Unicode
          if(sym>0)
             Print(sym,"'",ShortToString(sym),"'");
          else
             Print("Error in TranslateKey for key=",lparam);
         }
      }
  11. MQL5: foi adicionado o código de resposta TRADE_RETCODE_LIMIT_POSITIONS. O número de posições abertas que você pode ter em sua conta pode ser restrito pelas configurações do servidor. Após atingir o limite, em resposta à colocação de uma ordem, o servidor retorna o erro TRADE_RETCODE_LIMIT_POSITIONS. A restrição opera de forma diferente dependendo do tipo de registro de posições na conta:

    • Sistema de compensação — leva em conta o número de posições abertas. Ao atingir o limite, a plataforma não permite colocar ordens novas, cuja execução poderia levar a aumentar o número de posições abertas. Na verdade, a plataforma colocará ordens apenas nos símbolos, nos quais já existem posições abertas. No sistema de compensação, ao verificar o limite, não são tidas em conta as ordens pendentes atuais, uma vez que sua execução pode levar a uma alteração nas posições atuais, em vez de um aumento de seu número.
    • No sistema de cobertura, além das posições abertas, são tidas em conta as ordens pendentes colocadas, uma vez que sua execução sempre leva a abertura de uma nova posição. Ao atingir o limite, a plataforma não permite colocar ordens de mercado nem ordens pendentes para abrir posições.

  12. MQL5: foi corrigido o erro que em alguns casos causava que ticks fossem ignorados no histórico de negociação.
  13. MQL5: foram corrigidos os erros de digitação indireta de escalas.
  14. MQL5: foi atualizada a biblioteca para trabalhar com estatísticas matemáticas.
  15. Market: foi corrigida a abertura da página do produto ao baixar a versão demo.
  16. Tester: após completar a otimização, os resultados são classificados automaticamente na coluna "Resultados."
  17. Tester: no menu de contexto da guia de resultados de otimização e diário, foi adicionada uma opção a fim de alternar automaticamente para resultados, após concluir a otimização.
  18. Tester: o testador de estratégias agora permanece no modo de otimização, após iniciar um único teste. Anteriormente, ao iniciar um teste único, a partir da guia de resultados de optimização, o testador de estratégias mudava automaticamente para o modo de teste único. Para realizar a re-otimização, foi necessário incluí-lo novamente nas configurações.
  19. Tester: agora os conjuntos de parâmetros de entrada podem ser armazenados não só sob a forma de arquivos set, mas também como configurações do testador local de estratégias, com fácil acesso a eles através do menu de contexto.




  20. Tester: foi adicionada tradução da interface para o mongol, húngaro, romeno e urdu.
  21. MetaEditor: foi adicionada a possibilidade de alterar a ordem das expressões a serem observadas na janela de depuração. Basta arrastar a expressão para a posição desejada com o mouse.




  22. MetaEditor: foi corrigido o erro na determinação da codificação nos arquivos de origem.
  23. MetaEditor: foi corrigida a busca por arquivos em UTF-8.
  24. MetaEditor: for corrigido o erro na seleção de texto com o mouse ao haver nele caracteres de tabulação.
  25. MetaEditor: foi adicionada tradução da interface para húngaro e romeno.
  26. Documentação atualizada.

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

 
bom seria  se o meta tivesse grafico renko
 
Melhor ainda se não fosse limitado a 1min e pudesse trabalhar com gráficos de ticks.
 
murphybr:
Melhor ainda se não fosse limitado a 1min e pudesse trabalhar com gráficos de ticks.
Eu ja fiz isso, o problema é o backtest. Fazer isso no mercado real-time é facil, difícil é otimizar com robos.