Thursday 28 December 2017

Fxt file metatrader forex


MetaTrader 4 - Tester Tester no terminal MetaTrader 4: deve ser conhecido Introdução O trabalho nos mercados financeiros é impossível sem um sistema comercial. Os comerciantes gastam muito tempo e esforço para desenvolver regras de abertura e fechamento de posições, métodos empíricamente selecionados para modificar essas posições por Trailing Stop. Aqui é utilizado o conhecimento de diferentes campos da ciência. E quando a estratégia é criada, a primeira coisa a fazer é testar o sistema de negociação mecânica (MTS) em dados históricos. Isso significa que o testador se torna o componente mais importante de qualquer programa. Dois tipos de modelagem: nem todos os programas para análise técnica (TA) têm a opção de testar, tanto nem todos os terminais. Mesmo que um programa tenha um testador e tenha a opção de testar, pode ter erros ou restrições arquitetônicas e Proibições. É por isso que, durante o desenvolvimento do testador para o terminal MetaTrader 4, era muito importante incluir antecipadamente as soluções arquitetônicas, o que dificultaria a existência de uma classe inteira de estratégias, com base no conhecimento do futuro. Existem duas formas de teste de programa de qualquer estratégia: com base nas barras já compostas, prepare antecipadamente um arquivo de dados, que contenha todos os valores necessários de preços, indicadores e outros parâmetros e, em seguida, envie este arquivo para o testador (ele gera A seqüência necessária com possibilidade teórica de mergulhar no futuro). A informação é recebida na forma de barras já compostas sem modelar a formação de barras de preços, prepara um arquivo contendo apenas o preço modelado e envia para a entrada do testador as mudanças de preço (ticks de preço), como na vida real. Aqui, o testador não tem futuro inerentemente. O tempo atual do triângulo indica um local, onde o testador está localizado no momento atual. No primeiro caso, vemos a última vez (Última), onde o testador processou os dados e o futuro (Futuro), onde o testador irá operar. Ambos, passados ​​e futuros, já são calculados (indicadores, preço de fechamento, preço aberto, alto e baixo), o testador apenas segue essa seqüência. E se existe a possibilidade de ver o futuro (real ou erro), os resultados do teste precisam de uma verificação completa. E fechar as possibilidades já conhecidas não garante que não haja outras possibilidades. Este é eventualmente um problema constante para um desenvolvedor de testadores ou usuários de testadores. No segundo caso, temos apenas a última vez (Última), não há futuro inerentemente (um quadrado escuro). Nesta abordagem, sempre temos a informação apenas sobre o passado, e nenhuma informação sobre o futuro, como na negociação real. Com cada novo tiquetaque (mudança de preço) no testador, nos movemos no presente, o triângulo atual passa para a direita para o novo tempo conhecido e recebe novos preços. Cada nova marca cria o Presente, aumenta a informação sobre o Passado e ainda está escuro, desconhecido Futuro antes dele. Neste caso, o testador não tem a possibilidade de ver um futuro inerentemente, independentemente de erros, um comerciante pode se comprometer ao escrever uma estratégia. Exatamente, esta é a diferença entre duas abordagens. A primeira abordagem de criação do testador fornece a simplicidade ilusória e a rapidez do teste, a segunda dá a garantia de que todas as estratégias escritas se comportarão da mesma forma que na negociação em tempo real com mudanças de preço iguais. É por isso que as seqüências, modeladas para o testador, são armazenadas como arquivos, contendo instantâneos do estado da barra (arquivo fxt), que podem ser abertos como um gráfico usual usando o menu File - gtgt Open Offline. Os arquivos do testador são marcados por um ícone com a letra G (gerado) e fornecem informações sobre o tipo de modelagem, o intervalo de mudanças de preços modeladas, o número de barras e o cronograma: Por exemplo, se abrimos o arquivo EURUSD M15, nós Verá o caminho, um bar de 15 minutos foi modelado para o testador: a imagem mostra o progresso de uma barra no prazo de 15 minutos. Ao testar um Consultor Especializado, o testador viu este castiçal de 15 minutos (2006.04.21 10:00) exatamente em tal seqüência. O número de mudanças de preços em uma barra de minutos é igual ao número de mudanças de candelabros durante o teste. Assim, em cada ponto do tempo, o testador vê um preço correto aberto (que é fixo e é igual a Open0), corrija os preços máximos e mínimos (que podem mudar durante o período de progresso da barra), igual ao atual Alto 0 e Baixo0 , E o último lance de preço conhecido. Igual ao preço atual Close0. Que muda antes do fechamento da barra. Os volumes também são modelados no máximo, o que é óbvio a partir do histograma verde crescente de volumes, como em um gráfico simples. A linha vermelha quebrada representa o indicador de média móvel (média móvel simples) com o período 1. Esta média móvel mostra a posição de Fechar em cada momento de tempo durante o teste. Importante O testador no MetaTrader 4 processa cada mudança de preço e não deixa forma de mergulhar no futuro. Modelagem em diferentes prazos de um símbolo testado O testador no MetaTrader 4 permite ver não só o prazo testado, mas também outros - tempos mais altos e mais baixos. Assim, se testarmos um Expert Advisor no prazo EURUSD M15, podemos ver os valores dos indicadores para EURUSD H1 ou EURUSD M5. Também podemos ver os preços máximos e mínimos da barra zero atual em qualquer cronograma disponível EURUSD. Se precisarmos obter o preço máximo do dia atual, simplesmente visualizamos o valor iHigh (NULL, PERIODD1,0). É como na negociação on-line. E não faz diferença, em que período nós testamos o Expert Advisor ou no gráfico cujo time-frame está anexado no modo em tempo real. Assim, a tarefa do testador é modelar corretamente não apenas o cronograma atual, mas também todos os outros cronogramas necessários. Esta tarefa é resolvida no testador da seguinte maneira: não apenas o progresso da barra na barra de zero atual é modelado, mas também todos os outros quadros de tempo são modelados da mesma maneira. O recibo de cada nova marca altera as informações sobre a condição da barra zero em cada período de tempo, tudo é feito de forma síncrona. Aqui está uma imagem: A cor azul aqui indica barras concluídas, a cor verde - a atual barra zero zero. Os números 1 indicam o recebimento de um novo tiquetaque. Cada marca é imediatamente recebida por todos os cronogramas modelados necessários. Para se certificar, você pode começar a testar um simples Expert Advisor CheckModelling. mq4, que mostra os preços disponíveis para o testador em cada ponto do tempo. Todos os prazos solicitados (e não apenas os preços, mas também os volumes) são modelados corretamente. O testador vê o progresso do preço síncrono em cada período de tempo, como na vida real: é claro que o preço baixo para o período de 15 minutos diferiu do preço menor dos prazos mais altos. O mesmo é com o preço Alto. No entanto, o preço de Licitação em todos os prazos é o mesmo no recebimento de um novo tiquetaque. Importante: todos os cronogramas dos símbolos testados também são modelados corretamente - os preços Abrindo, Alto, Baixo e Fechar são modelados 100 corretamente. Os volumes de quadros de tempo mais altos também são modelados 100 corretamente. Modelando preços em outros símbolos A quantidade de dados modelados para um teste exato no histórico às vezes é grande e pode exigir mais recursos de memória e processador. O testador no MetaTrader 4 não permite realizar testes de portfólio, mas as tecnologias de computador são desenvolvidas tão rápido que, provavelmente, em breve, poderemos realizar testes precisos de estratégias complexas, que abrem posições em vários símbolos. No entanto, o testador no MetaTrader 4 permite receber informações sobre preços de outros símbolos, diferentes do testado. Mas, neste caso, a modelagem não é realizada, os dados são extraídos como está. A barra zero é simplificada para apresentar no início do processo o seguinte: High0Low0Close0Open0, Volume01 que permite conhecer o preço no início da barra, mas nenhum preço no final. Para se certificar, basta testar um simples Consultor Especial em EURUSD no modo Cada marca. Cálculo de indicadores durante a modelagem Há dez anos, o desempenho insuficiente dos computadores domésticos e das estações de trabalho impõe restrições aos desenvolvedores de software. Memória operacional limitada, freqüência do processador abaixo de 100 MHz - tudo isso permitiu usar apenas os tipos de cálculo e testes de estratégias de negociação mais eficientes em termos de espaço. Os testes intrabarros não existiram, todos os indicadores necessários foram previamente calculados e foram testados de forma pronta e imutável. Naquela época, essa era uma solução única, que definia suas limitações nos testes. Nesta abordagem, recebemos valores de indicador corretos apenas para o momento do fechamento da barra, usando esses dados na barra zero realmente significa mergulhar no futuro. O testador no MetaTrader 4 não recebe dados calculados, obtém apenas o progresso do preço modelado e, com base nos novos preços recebidos, todos os indicadores necessários são calculados no decorrer dos testes. Isto é, Todos os indicadores são calculados da mesma maneira que durante a operação on-line. Esta é uma vantagem suficiente do testador, mas se o algoritmo do indicador não for ótimo, um teste de EA pode diminuir substancialmente. O cálculo do indicador no testador é tão rápido, como no terminal, e um algoritmo não optimizado pode ser invisível. Mas no testador MetaTrader 4 durante o cálculo em milhões de barras (um histórico de minutos de EURUSD de 1999 contém quase três milhões de barras), qualquer não-otimização se torna óbvia. Não se esqueça, que cada modelagem de tiques de uma barra de minutos não dá um, mas vários carrapatos, cada um deles calculado pelo testador. Atualmente, os processadores possuem gigabytes de memória operacional e freqüência de vários gigahertz, a arquitetura de 32 bits é substituída por sistemas de 62 bits, até mesmo o multiprocessamento apareceu. Mas ainda há muitas pessoas, que operam com as categorias do século passado e referem todas as desvantagens dos programas e desenvolvedores de T da geração anterior para o MetaTrader 4 Tester. Tais pessoas temem a modelagem intrabar, eles consideram que é uma operação de teste incorreta. O testador no MetaTrader 4 prova não apenas a possibilidade de uma modelagem de preços correta em qualquer período de tempo, mas também a necessidade de exatamente essa abordagem em testes de estratégia baseados no histórico. Você pode assistir o vídeo e estimar o progresso do preço e o cálculo do indicador no testador: Importante. O testador executa um modelo real de testes que requer certos recursos. Perguntas freqüentes, resultantes da ignorância da modelagem de preços corretos no testador O MetaTrader 4 foi lançado oficialmente no dia 1 de julho de 2005 e, desde então, as mesmas perguntas aparecem em fóruns diferentes e as questões estão conectadas com a operação incorreta do testador. Aqui estão as perguntas mais frequentes, resultantes de mitos sobre testadores dos últimos anos. Por que meu consultor especialista, usando um indicador, abre negociações em um local errado Depois que o teste terminar, você pode usar o botão Abrir Gráfico para abrir um gráfico, refletindo todos os pontos de entrada e saída, bem como os indicadores que foram chamados Do consultor especialista. Mas muitas vezes é ignorado, que os valores dos indicadores, no momento determinado calculado sobre o histórico, podem diferir significativamente dos valores que estavam no momento do teste (na verdade, on-line). Um exemplo vívido é o indicador ZigZag. Abrindo o quadro de testes da EA, onde este indicador foi usado, podemos ver claramente todas as quebras do ZigZag. Pode-se esperar um bom lucro de uma estratégia, com base no rastreamento de tais quebras na barra zero. Aqueles que não entendem o princípio da operação do testador MT4 pensam erroneamente que essa estratégia deve mostrar o lucro absoluto no testador, porque em outros programas de AT é visto o futuro dessas estratégias. Mas não vemos nenhum lucro, além disso, os negócios são abertos em um local errado. Comece a testar no modo visual, anexe ao gráfico todos os indicadores usados ​​pela EA - e as ilusões se dissolverão. Isso não requer conhecimento especial - o testador irá exibir Tudo no modo visual. Aqui está o exemplo de um EA-ExpertZigzag: Importante. Se você não tem certeza sobre a correção da operação do testador, use o teste visual. Você verá o processo de teste como realmente é, e não como você pensa ser. Por que os valores dos indicadores no teste e os valores dos indicadores no gráfico on-line não são iguais Um dos erros durante a escrita do indicador é um cálculo incorreto dos valores dos indicadores e do paralogismo. Como resultado, o indicador começa a mentir e coletar erros. Em outras palavras, ontem o indicador mostrou valores, diferentes dos atuais no mesmo período. O erro de tais indicadores também pode ser visto na operação on-line do indicador. Por exemplo, anexamos o indicador a um gráfico de 15 minutos, aguarde a aparência de 3-4 novas barras e, em seguida, anexe mais um indicador desse tipo, mas use outras cores. A diferença é muitas vezes vista visualmente. Aqui está um exemplo de um indicador incorreto: Importante: os indicadores são calculados no decorrer dos testes. Como durante a operação on-line, é por isso que todos os erros na lógica dos indicadores se tornam evidentes no processo de teste. Por que minha EA vê preços errados de um prazo maior, embora eu tenha importado minha própria história profunda. Para modelar o testador usa dados de fxt - Arquivo. Normalmente, este arquivo fxt é gerado pelo testador com base no histórico disponível em hst-files. Mas se o arquivo FXT preparado foi gerado em outro fuso horário, ou nas outras cotações de corretores (ou preparado por você mesmo - o formato dos arquivos fxt está aberto) e os dados neste arquivo fxt não correspondem ao Dados nos arquivos hst existentes - podem ocorrer diferentes erros. Geralmente, isso pode acontecer após uma importação e reconversão manual de citações de fontes laterais. Por exemplo, o EA chama a função iOpen (NULL, PERIODD1,1) ou iHighest (NULL, PERIODD1, MODEHIGH, 20,1). IOpen (NULL, PERIODD1,1) solicita o preço aberto ontem no mesmo símbolo, no qual o teste é realizado. IHighest (NULL, PERIODD1, MODEHIGH, 20,1) fornece o índice da barra diária com o maior valor de High dentro de 20 barras a partir do primeiro (de ontem). Ambas as funções no testador são calculadas com base nos dados dos arquivos hst. E se o arquivo fxt não corresponder com o histórico em hst-files (neste exemplo, dados em EURUSD1440.hst), os preços no testador serão absolutamente diferentes. Nós temos duas histórias diferentes - a única está no testador, a outra está no arquivo EURUSDhst. Importante. Um teste correto requer correspondência entre dados nos arquivos fxt e hst. Não é desejável usar a importação de parches de fontes laterais. Use um Centro de Histórico padrão com histórico minimo de citações de 1999. As cotações de minutos do Centro de Histórico são recalculadas automaticamente em todos os cronogramas e são convertidas no fuso horário da conta atual, o que elimina a mudança de horário. Por que, após a importação das minhas cotações, os indicadores de prazos maiores estão no testador. Apenas os preços de barras zero são modelados, os valores de indicadores padrão e personalizados em outras barras são calculados com base em dados de arquivos hst. Isto é, Os valores de indicador corretos não podem ser calculados sem dados de preço de fonte corretos de outros prazos. Importante. Antes de iniciar o teste, certifique-se de que todos os dados de preços necessários de outros prazos são bombeados e que esses dados estão corretos. O Centro de Histórico Padrão fornece a correção de todos os cronogramas, porque ele recalcula automaticamente a partir dos dados de minutos todos os outros períodos. Conclusão O testador no MetaTrader 4 é o resultado de uma experiência a longo prazo de escrever várias gerações de terminal comercial desde o ano 2000. Tudo foi feito para fornecer um comerciante com a oportunidade de testar estratégias com a máxima correção possível. Isso elimina a necessidade de um teste de vários meses de idéias comerciais no modo em tempo real. Mas conhecer todas as opções dos testadores ajuda você a economizar tempo e perceber melhor a importância de um indicador correto e desenvolvimento de EAs. Arquivos da história no formato FXT Na sua operação, o testador usa um arquivo. FXT com sucessão gerada de barras. Cada registro da sucessão gerada representa o status da barra em cada momento dentro de uma barra. Ao modelar barras, o testador tira outras barras deste arquivo e atualiza a barra atual ou adiciona outra se ela apenas começou a ser formada. Uma breve descrição do formato é dada abaixo. Ele começa com o cabeçalho: -------------------------------------------- ---------------------- ---------------------------- -------------------------------------- struct TestHistoryHeader int versão 405 char copyright64 copyright char symbol12 int período Modelo int para o tipo de modelagem foi a seqüência de tiques gerada int barras quantidade de barras na história timet fromdate ticks gerados a partir desta data tempo t tiros novos gerando parado nesta data qualidade de modelagem de dupla qualidade de modelo ---- parâmetros gerais char currency12 base de moeda int spread Int digits ponto duplo int lotmin tamanho mínimo do lote int lotmax tamanho máximo do lote int lotstep int stopslevel pára o valor do nível int gtcpendings instrução para fechar pedidos pendentes no final do dia ---- parâmetros de cálculo do lucro duplo contratoize tamanho do contrato valor do tickvalue duplo de um tick Tamanho de ticksize duplo de um tick int modo de cálculo de lucro de lucro ---- cálculo de swap int swapenable habilitar swap int sw Tipo de permuta tipo swap duplo swaplong swapshort duplo swap overnight value int swaprollover3days rolamentos de troca de três dias ---- cálculo de margem int alavancagem alavancagem int freemarginmode margem livre margem marcha modo margem de margem marcha margem de marcha margem de marcha margem de marcha margem inicial Margem de margem de margem requisitos margem de margem margem manutenção requisitos de manutenção requisitos de margem de compensação dupla para posições cobertas dupla margindivider margem divisor char margem de margem12 margem moeda ---- cálculo de comissão duplo comboio comissão básica int compeito comissão básica tipo int comlote comissão por lote ou por contrato ---- Para uso interno int frombar fromdate número de barra int tobar número de barra de manutenção int startperiod6 número de barra em que a modelagem de período menor começou int setfrom data de início das configurações do testador set set data de término das configurações do testador ---- int freezelevel order3 Nível de congelamento de 9s em pontos int geradores de energia ---- int reserved60 Então, a matriz de barras modeladas segue: pacote de pragma (push, 1) struct TestHistory timet otm barra de tempo duplo aberto OHLCV valores duplo baixo duplo alto duplo fechar volume duplo timet ctm o Hora atual dentro de um sinalizador de bandeira de barra int para iniciar um especialista (0 barra será modificada, mas o especialista não será iniciado) pacote pragma (pop)

No comments:

Post a Comment