Truncamento de valor constante mt4 forex


Metatrader 4: Colocar uma ordem Para fazer um pedido (vender ou comprar), você tem que abrir a janela Order (Fig. 22). Fig.22 - Janela Order Existem várias maneiras de abrir a janela Order: Você pode pressionar a tecla de atalho F9. Você pode clicar com o botão direito do mouse no gráfico da moeda que deseja comprar / vender e escolher Novo pedido no menu contextual. Você pode clicar com o botão direito do mouse na janela Market Watch na moeda que deseja comprar / vender e, em seguida, selecionar Novo pedido no menu de contexto (Figura 23). Você pode clicar duas vezes na moeda. Foto. 23 Ordem Depois de ter pressionado New Order, você verá a janela Order (Fig. 24): Fig.24 Janela Order Há algumas opções que a janela New Order permite que você configure: Symbol. Isso fornece uma lista suspensa de todos os par de moedas que você pode usar para abrir o Novo Pedido. Volume Isso fornece uma lista suspensa de tamanhos de lotes predefinidos que você pode escolher para o Novo pedido. Nota . Volume refere-se ao valor de Lotes. Parar a perda de . Esta é uma caixa com setas para cima e para baixo que permite definir o nível de Stop Loss para o Novo Pedido. Use as setas para cima e para baixo ou escreva o valor do Stop Loss na caixa de texto. Definir o nível de Stop Loss é opcional. Obter lucros . Esta é uma caixa com setas para cima e para baixo que permite definir o nível Take Profit para o novo pedido. Use as setas para cima e para baixo ou escreva o valor do Take Profit na caixa de texto. Definir o nível de Take Profit é opcional. Campo de comentários. Digite o texto do comentário que você deseja atribuir ao novo pedido. A inserção de texto no campo Comentário é opcional para o Novo pedido. Digite a lista. Você pode escolher entre uma destas duas opções: Ordem Pendente de Execução Instantânea Você precisa escolher a Execução Instantânea porque deseja fazer uma Compra / Venda instantaneamente. Botão vender. Clique neste botão se você deseja abrir uma ordem de venda. Clicar no botão Sell fechará a janela New Order e enviará as instruções para o broker. Botão Comprar. Clique neste botão se você deseja abrir uma ordem de compra. Clicar no botão Comprar fechará a janela Nova Ordem e enviará as instruções para o corretor. Ative o desvio máximo da opção de preço cotado. Ativar esta opção ativará a lista de Pips onde você pode selecionar um valor para o desvio máximo. Essa opção ajudará você a evitar as cotações em um mercado em rápido movimento. Se o desvio entre um preço recalculado e um preço solicitado for igual ou inferior ao parâmetro especificado, a ordem será executada automaticamente ao preço reclassificado. Se o desvio entre um preço recodificado e o preço solicitado for maior que o parâmetro especificado, o cliente precisará confirmar o novo preço ou recusá-lo. Pode ser possível que, após a confirmação, o preço de mercado tenha mudado e o cliente possa ter outra reaquisição. Lista de desvio máximo. Selecione o valor máximo de pips de desvio. Depois de decidir comprar ou vender pelo preço atual, pressione os botões Comprar ou Vender para abrir uma posição longa ou curta (Figura 25). Pic.25 Escolha Sell ou Buy Clicando em OK, o pedido será enviado ao corretor (foto 26). Pág.26 Enviar Pedido Você pode assistir seus lucros ou perdas na janela do terminal como mostrado em (Fig. 27): Foto. 27 Janela do terminal Número de registro do Grupo Laino 21973 IBC 2014. Aviso de risco: Observe que a negociação de produtos alavancados pode envolver um nível significativo de risco e não é adequada para todos os investidores. Você não deve arriscar mais do que você está preparado para perder. Antes de decidir negociar, certifique-se de compreender os riscos envolvidos e leve em consideração seu nível de experiência. Procure aconselhamento independente, se necessário. PaxForex hoje a nossa avaliação de 9.3 de 10. Contando com 107 votos e 55 avaliações qualificadas. Por favor, como o site da PaxForex em sua rede favorita e tenha acesso à página de registro de conta de bônus gratuitaMetaTrader 5 - Testador Guia para Testes e Otimização de Expert Advisors em MQL5 Introdução Na maioria das vezes quando um desenvolvedor escreveu um Expert Advisor, certificando-se de que o Expert Advisor Alcança o seu objectivo de boa rentabilidade é sempre um processo muito tasking. Neste artigo, veremos algumas das principais etapas necessárias para testar e otimizar um Expert Advisor, para que possamos atingir o objetivo desejado de escrever o Expert Advisor. 1. Identificando e Corrigindo Erros de Código Começaremos este artigo observando alguns erros de código comuns normalmente encontrados no processo de escrever um código do Expert Advisor. Na maioria das vezes, os iniciantes enfrentam dificuldades para identificar e corrigir erros de código ao escrever seus códigos ou ao modificar um código escrito por outro desenvolvedor. Nesta seção, veremos como é fácil usar o editor MQL5 para identificar e corrigir alguns desses erros. Você acabou de concluir a gravação do código e parece que tudo deve funcionar, porque você está quase certo de que o código está livre de erros. Ou, foi um código que foi escrito por outra pessoa e você fez algumas alterações e, infelizmente, quando você clicou no botão Compile (ou pressione F7), você foi apresentado por uma série de erros no código, conforme mostrado na guia Erro do a janela MetaEditor Toolbox. Figura 1. Erros de compilação em um código do Expert Advisor Uau 38 erros e 1 aviso. seu código pode não ter tantos erros como mostrado aqui, tudo o que queremos analisar são os vários tipos de erros que provavelmente aparecerão ao compilar nosso código e como podemos resolvê-los. Vamos descrever o diagrama acima. A seção marcada 1 mostra a descrição do erro no código. É isso que nos dá a ideia de como é o erro. A seção marcada 2 nos mostra em qual arquivo temos o erro. Isso é muito importante se incluirmos arquivos com erros. Com isso, poderemos saber qual arquivo devemos verificar para o erro descrito. A seção marcada 3 nos mostra qual linha e coluna (na linha) em nosso código o erro está localizado. Isso nos permite saber qual linha específica para verificar o erro descrito. A seção marcada 4 mostra o resumo dos erros e avisos de compilação. Vamos agora começar a resolver os erros um após o outro. Vamos rolar até a primeira linha na guia Erro para que possamos começar do começo. Figura 2. Identificando e resolvendo erros de código O primeiro problema é descrito como. truncamento de valor constante e é descoberto na linha 16 da coluna 20. Para localizar a linha exata em nosso código, no menu Editar do MetaEditor, selecione Ir para linha ou pressione CTRL G no teclado. Figura 3. Localizando o Número da Linha do Código de Erro Uma caixa de diálogo será exibida. Figura 4. Localizando o diálogo de número de linha de erro O intervalo de número, conforme mostrado na caixa de diálogo, é o número total de linhas no código. Neste caso (1-354) mostra que o nosso código contém 354 linhas de código. Digite o número da linha que você deseja verificar na caixa e clique no botão OK. Você será levado diretamente para o número da linha no código. Você verá o cursor do mouse piscando nessa linha em particular. Figura 5. Cursor mostrando o número da linha de erro O problema aqui é que declaramos Lot como uma variável inteira (int), mas a inicializamos com um valor duplo (0.1). Para corrigir este erro, vamos alterar o int para o dobro. salve o arquivo e, em seguida, clique no botão COMPILAR novamente para ver se isso foi corrigido. Figura 6. Compile e salve o código após a correção Na compilação novamente, o primeiro problema foi resolvido, mas ainda temos mais problemas, conforme mostrado abaixo: Figura 7. Mais erros aparecem no código após a compilação Vamos agora seguir o mesmo procedimento como acima e vá para a linha 31. No entanto, desta vez vamos clicar com o botão direito do mouse no erro na guia Erros e selecionar Ir para a linha Figura 8. Outra maneira de localizar a linha de erro do código Ou simplesmente selecione o erro e pressione o botão Enter no teclado. Imediatamente, você será levado para o número da linha de código 31. Você verá o cursor do mouse piscando e também um pequeno botão vermelho redondo (ícone de erro) nessa linha de código particular 31. Figura 9a. Localizando a linha de erro de código No entanto, se for uma mensagem de aviso como a primeira na linha 16 que corrigimos anteriormente, ela mostrará um botão amarelo triangular (ícone de aviso): Figura 9b. Localizando a linha de erro de código É muito óbvio que não temos nenhum problema na linha 31. mas a descrição do erro diz: STP - token inesperado. Em seguida, devemos verificar a linha de código anterior (que é a linha 30) para ver o que pode estar errado. Em um exame atento, o ponto-e-vírgula está ausente após ccminb duplo - 95.0000 na linha 30, é por isso que temos esse erro na linha 31. Vamos agora corrigir esse erro digitando o ponto e vírgula após - 95.0000 e compilar o código novamente. Agora os erros da linha 31 desapareceram. A próxima linha é 100, como mostrado abaixo: Figura 10. Mais erros ainda existem no código Hey Olowsam, devemos estar compilando após cada correção, por que não vamos apenas através de todas as linhas ao mesmo tempo e depois de termos feito todas as correções então nós compilamos o código uma vez em vez de compilar após cada correção Você acabou de fazer essa pergunta Você pode estar certo de uma forma, mas eu não vou aconselhar isso. Os problemas são sempre resolvidos um após o outro passo a passo. Qualquer tentativa de juntar o problema e resolvê-lo de uma só vez pode levar a muitas dores de cabeça. Você logo entenderá porque é paciente comigo. Voltando ao nosso problema, devemos verificar a linha 100 para o próximo erro. O erro indica. if - expressões não são permitidas em um escopo global E eu tenho certeza que a expressão if na linha 100 não está em um escopo global, mas por que estamos tendo este erro. Por favor, vamos para a linha 100. Figura 11. Localizando o erro no código Não encontramos nenhum problema na linha 100 e, como acabamos de concluir a linha de correção 31, temos certeza de que o problema agora é entre a linha 32 e a linha 99. vamos subir para a linha 99 (temos um comentário, então não pode ser o erro). Se também olharmos para as declarações (MqlTick. MqlTradeRequest e MqlTradeResult), elas serão corretamente declaradas e pontuadas. Em seguida, vamos ver o código da expressão if antes dessas linhas de código de declaração e ver se a expressão está correta. Em um estudo muito detalhado, descobrimos que a expressão if tem uma chave de fechamento, mas não tem chave de abertura. Figura 12. Visualizando acima do número da linha de erro para identificar o erro Adicione a chave de abertura e compile o código novamente. Uma vez que o código foi compilado, os erros na linha 100, 107, 121, 126, 129, etc foram completamente apagados e novos aparecem. Veja por que é bom seguir passo a passo Figura 13. Mais erros ainda existem no código Em seguida, vamos para a linha 56 com dois erros. cciVal1 - a conversão de parâmetros não é permitida e cciVal1 - array é necessário. Observe de perto a linha 56. cciVal1 deve ter sido declarado como um array. Será que nós não o declaramos como um array, mas agora tentamos usá-lo como um array? Vamos verificar a seção de declaração para confirmar isso antes que possamos saber o que fazer em seguida. De, aqui, podemos ver que erroneamente declaramos cciVal1 como um array duplo em vez de dinâmico porque omitimos os colchetes (). Vamos adicionar os colchetes (assim como temos para cciVal2) e depois compilar o código. Figura 14. Erros no código foram reduzidos consideravelmente O que tantos erros desapareceram. Nós apenas corrigimos o erro relatado na linha 56 e alguns outros erros foram resolvidos automaticamente. Isso porque, o erro relatado na linha 56 foi responsável por esses outros erros. É por isso que é bom seguir um processo passo a passo na resolução de erros no seu código. Vamos agora passar para o próximo erro reportado na linha 103. GetLastError - identificador não declarado Espere um minuto, GetLastError deve ser uma função Vamos para a linha 103 para ver qual é o problema. O problema está na linha 103. GetLastError é uma função e cada função precisa de um par de parênteses para os parâmetros de entrada. Vamos digitar um par de parênteses vazio e depois compilar o código. O par de parênteses vazio indica que a função não aceita argumentos ou parâmetros. Em seguida, vamos para a linha 159. - valor l necessário e um aviso. expressão não é booleana Vamos para a linha 159 e ver o que esse erro significa. Pode ser visto aqui que atribuímos o valor de POSITIONTYPESELL a PositionGetInteger (POSITIONTYPE) na instrução if e isso não é o que pretendemos fazer. Nós queríamos fazer uma comparação. Vamos agora mudar a expressão para usar o operador igual em vez de usar um operador de atribuição. (isso é em vez de). Faça a correção e compile o código. Bom Agora temos mais um para ir. Vamos para a linha 292 para ver porque diz PositionsTotal - identificador não declarado. Espere um minuto, você pode lembrar que vimos um erro como este antes da linha 103 do GetlastError. Possivelmente, nos esquecemos de adicionar o par de parênteses para PositionsTotal também, já que é uma função. Vamos para a linha 292 para confirmar. Assim como suspeitamos, é porque nos esquecemos de adicionar o par de parênteses para a função PositionsTotal. Agora adicione o par de parênteses (PositionsTotal ()) e compile o código. Deixe-me também afirmar que, é possível obter esse erro se realmente usarmos uma variável que não declaramos em nenhum lugar do código. Figura 15. Todos os erros de compilação foram completamente resolvidos Maravilhosamente agora, conseguimos corrigir todos os erros de compilação. Agora é hora de depurar nosso código e ver se há erros de tempo de execução. Aqui, não entraremos nos detalhes de como depurar nosso código, como já foi explicado neste artigo. Quando a sessão de depuração começa, notamos outro erro: Figura 16. Erro de tempo de execução observado durante a depuração do código Clique no botão OK e você será levado à linha de código que gera o erro. Figura 17. Identificando a Linha de Código que Gera o Erro de Tempo de Execução O erro é gerado por este código na linha 172, como você pode ver na figura acima. Como o erro é um erro de Array fora do intervalo, isso significa que o valor que pretendemos obter do array está fora do intervalo dos valores de array disponíveis. Então, vamos agora para a linha onde copiamos os buffers de indicador em arrays para ver qual é o problema. Podemos observar, a partir das funções do CopyBuffer, que apenas copiamos três valores (Bar 0, 1 e 2), o que significa que só podemos acessar valores de matriz de maVal0. maVal1. e maVal2 e também cciVal10. cciVal11 e cciVal12. Mas no nosso código na linha 172. estávamos tentando obter o valor da matriz para cciVal13. É por isso que o erro foi gerado. Agora, pare o depurador para que possamos consertar o erro: Figura 18. Parar o depurador para corrigir o erro no código Para corrigir isso, precisamos aumentar o número de registros a serem copiados dos buffers do indicador para 5, para que possamos obter valores de matriz de cciVal10, cciVal11, cciVal12, cciVal13 e cciVal14, se necessário. Corrija o código conforme mostrado e inicie o depurador novamente. Desta vez, não há mais erros quando notamos nosso Expert Advisor realizando ações comerciais Figura 19. Todos os erros foram corrigidos, o Expert Advisor realiza negociações durante a depuração 2. Testando o Expert Advisor Quando tivermos certeza de que nosso código está livre de erros, agora é hora de Teste o Expert Advisor para obter as melhores configurações que nos proporcionarão os melhores resultados. Para realizar o teste, usaremos o Strategy Tester, um programa que é incorporado ao terminal MetaTrader. Para iniciar o Strategy Tester, vá para o menu View no Terminal e selecione Strategy Tester. Figura 20. Lançamento do Testador de Estratégia 2.1. Testes preliminares de nosso Expert Advisor Neste ponto, queremos testar nosso especialista usando os símbolos disponíveis na janela de mercado. Com esse resultado, poderemos adivinhar com quais pares de moedas podemos otimizar melhor nosso Expert. Certifique-se de que a janela de mercado contém a maioria das moedas que você está direcionando para o especialista. Selecione o Especialista na guia Configurações do Testador de Estratégia, selecione o período / período de tempo que você tem em mente (e, claro, também pode testá-lo para diferentes períodos) e, em seguida, Selecionar Todos os Símbolos Selecionados no MARKET Watch no campo de otimização. Diretamente na frente é o parâmetro Resultados da otimização, selecione Equilíbrio do fator de lucro máximo. Figura 21. Teste preliminar do Expert Advisor com todos os símbolos na janela Market Watch 1. Selecione o modo de geração de ticks (Every Tick) 2. Selecione o tipo de otimização (Todos os símbolos selecionados no MARKET Watch) 3. Selecione o tipo de resultado esperado da otimização Você pode obter os detalhes dos vários tipos de otimização da documentação de ajuda do terminal. Nós não estamos testando para a frente, então deixe o Forward como Não. Para este teste, os valores / parâmetros principais (destacados em verde) na aba Inputs serão usados. Figura 22. Parâmetros preliminares de entrada de teste Quando terminar, passe para a guia Configurações e clique no botão Iniciar. Ao concluir o teste, você verá uma mensagem na Guia Diário semelhante à seguinte: Figura 23. Teste preliminar concluído Assim que o teste for concluído, acesse a guia Resultados da otimização para ver os resultados. Figura 24. Resultados preliminares da otimização de testes Nosso interesse está no símbolo que fornece o Resultado mais alto com base em nossa configuração (saldo máximo do fator de lucro). Para obter isso, vamos classificar o resultado clicando no título do Resultado para que o símbolo com o maior resultado seja listado na parte superior. Figura 25. Análise preliminar de resultados de otimização A partir deste resultado, podemos ver que nosso Expert Advisor pode ser lucrativo para os seguintes símbolos (EURUSD, EURJPY, AUDUSD) no período de tempo que selecionamos. Você ainda pode realizar esse teste por outro período de tempo, digamos, 30 minutos e ver o que você tem. Isso deve ser tomado como uma tarefa e, por favor, compartilhe o resultado para que todos possamos aprender também. A partir do resultado do nosso teste preliminar, decidiremos agora qual símbolo (s) e cronograma (s) vamos otimizar nosso Expert Advisor. Neste exemplo, otimizaremos nosso Expert Advisor para o EURUSD e o período de 1 hora. Quais são as coisas que motivam a escolha que acabamos de fazer: O fator Lucro é a relação entre o lucro total e a perda total desse teste. Quanto maior o fator Lucro, mais lucrativa será sua estratégia de negociação. Isso se refere ao rebaixamento relativo do patrimônio ou à maior perda (em porcentagem) do valor máximo do patrimônio líquido. Quanto menor o rebaixamento (em porcentagem), melhor a estratégia. Esta é a razão entre o lucro e o rebaixamento máximo. Reflete o risco da estratégia de negociação. Tendo decidido sobre o símbolo e o prazo de uso, agora é hora de otimizar nosso Expert Advisor. 2.2. A otimização do Expert Advisor Optimization é simplesmente um processo de ajuste fino do desempenho do nosso EA, testando com vários fatores (parâmetros) que determinam a eficácia ou a lucratividade de nossa estratégia codificada no EA. É um procedimento semelhante ao teste, mas em vez de testar o EA apenas uma vez, ele será testado várias vezes, dependendo dos parâmetros selecionados na guia Entrada. Para começar, vamos para a guia de configurações e ativamos a otimização e, em seguida, selecionamos o tipo de resultado que queremos da nossa otimização. Figura 26. Configurações de otimização para Expert Advisor 1. Selecione o modo de geração de ticks (Every Tick) 2. Selecione o tipo de otimização (algoritmo rápido baseado na genética) 3. Selecione o tipo de resultado esperado da otimização (aqui selecionamos Balance Max Profit Factor) obtenha os detalhes dos vários tipos de otimização na documentação de ajuda do terminal. Não estamos encaminhando testes, portanto, deixe em Avançar como Não. Tendo definido as propriedades de otimização, vamos definir os parâmetros a serem usados ​​para a otimização na guia Entradas. Figura 27. Parâmetros de entrada de otimização Como estamos otimizando, concentraremos apenas nas áreas destacadas em amarelo. Primeiro de tudo, qualquer parâmetro que não queremos usar na otimização deve ser desmarcado. Em outras palavras, apenas verificaremos os parâmetros que queremos usar na otimização do EA. Aqui, eu verifiquei cinco parâmetros, mas você pode decidir verificar apenas um ou dois, dependendo dos parâmetros que a eficácia da sua estratégia é baseada. Por exemplo, você pode verificar apenas os períodos de Média móvel e CCI, de modo que o resultado da otimização mostre o melhor valor para cada um dos indicadores que dão ao seu EA o melhor desempenho. Essa é a essência principal da otimização. Além disso, o número de parâmetros verificados determinará o número total de testes que seu EA passará. Você logo verá o que estou falando. Definindo os valores Este é o valor inicial a ser usado para a variável selecionada para otimização. Vamos usar a variável Stop Loss para explicar como definir os valores. Para o Stop Loss, pedimos ao testador que inicie com um valor de 30. Este será o valor mínimo que será usado para Stop Loss durante a otimização. Este é o valor incremental para o Stop Loss. Se definirmos um incremento de 2, isso significa que, se no primeiro teste, ele usar 30 para Stop Loss, ele usará 32, 36, 34 etc. no segundo. Isso não significa que ele usará 30. então seguido por 32. 34 etc. Não, ele seleciona os valores aleatoriamente, mas sempre serão múltiplos de dois (2) entre o valor inicial e o valor Stop. Este é o valor máximo ou máximo que será usado para a otimização. Aqui nós especificamos 38. Isso significa que os valores que serão usados ​​para o teste serão entre 30 e 38, mas serão valores que são múltiplos de 2. Não usará 40 ou qualquer valor maior. O número total de testes que serão realizados depende das configurações dessas três seções. Em nosso exemplo, o testador combinará um total de cinco possibilidades sozinho para o Stop Loss, conforme mostrado na coluna Steps na guia Inputs, ele combinará um total de 8 possibilidades para o Take Profit, etc. No momento em que você considerar todas as outras variáveis, estará chegando a centenas ou milhares de possibilidades (testes / passes). Se você não quiser esperar por anos para otimizar um único EA, certifique-se de não incluir ou verificar muitas variáveis, talvez apenas dois ou três que o desempenho do seu EA realmente dependa (mais especialmente, os períodos do indicador, se você use-os em seu próprio código). Além disso, você deve certificar-se de que seu valor de etapa não resultará em muitas possibilidades (testes). Por exemplo, se usarmos 1 como o valor do passo, aumentamos o número de tentativas para o Stop Loss sozinho para 10. Bem, como dito anteriormente, o tempo total necessário para concluir uma sessão de otimização depende do número total de agentes disponíveis configurados no seu sistema. Eu acredito que a explicação é suficiente. Quando terminarmos de configurar as entradas, voltamos agora para a guia Configurações e clique no botão Iniciar. Quando a otimização estiver concluída, poderemos ver os detalhes na guia do diário. Figura 28. Otimização concluída conforme mostrado na guia Journal Para visualizar os resultados à medida que cada teste é passado ou concluído, vamos para a guia Resultados da otimização. E é sempre bom classificar a saída pelos Resultados para que possamos identificar facilmente as configurações que nos proporcionam o melhor resultado com base em nossa configuração de otimização. Clicar no cabeçalho Resultado na guia Resultados da otimização organizará os resultados em ordem crescente ou decrescente Figura 29. Relatório de otimização Alterne para a guia Gráfico de Otimização para ver como o gráfico se parece. Figura 30. Gráfico de otimização Não entenda o que você vê Não se preocupe, os pontos que você vê são um gráfico do número de testes que seu EA transmitiu em relação ao resultado de otimização com base no tipo de resultado de otimização selecionado. No nosso caso, selecionamos o fator de lucro do saldo máximo. 2.3. Interpretando o resultado Para interpretar com sucesso o relatório de otimização, vá para a guia Resultados da otimização. Você descobrirá que não pode ver alguns campos como Fator de Lucro, Pagamento Esperado, Desembolso, etc. Para vê-los, clique com o botão direito do mouse em qualquer lugar na guia Resultados da Otimização e selecione as informações adicionais que você deseja ver como mostrado abaixo: Selecionando o Drawdown no resultado da otimização Figura 32. Selecionando o Fator de Lucro no resultado da otimização Adicionando esses registros adicionais, agora analisaremos o resultado da Otimização para decidir as melhores configurações para o nosso Expert Advisor. Figura 33. Analisando o resultado da otimização Na figura acima, as seções destacadas identificadas como A e B indicam os melhores resultados para o nosso Expert Advisor. Agora a escolha que você faz é completamente sua, tudo depende do que você está procurando. No entanto, aqui estamos interessados ​​não apenas nas configurações que dão o maior lucro, mas também têm um rebaixamento menor. Como você pode ver, a seção A (destacada em amarelo) tem o melhor resultado (Balance max Profit Factor) de 22381.71 com um lucro de 924.10 enquanto a seção B (destacada em verde) tem o segundo melhor resultado de 22159.25 mas com um maior lucro de 936,55. A Seção A teve um rebaixamento menor de 1,78 enquanto B teve um rebaixamento maior de 1,95. O Strategy Tester salva os resultados da otimização na pasta foldergtTestercache dos dados do terminal theltClient. No seu caso, todos os dados de otimização serão salvos no arquivo ccimaea. EURUSD. H1.0.xml, O nome do arquivo tem o seguinte formato: ExpertName. SYMBOL. PERIOD. GenerationMode. xml, onde: ExpertName - Símbolo do Nome do Expert Advisor - símbolo Período - período de tempo (M1, H1.) GenerationMode - modo de geração de ticks (0 a cada tick, 1 - um minuto OHLC, 2 - somente preços abertos). Os arquivos XML podem ser abertos pelo MS Excel. 2.4. Escolhendo o melhor resultado Para finalmente obter o melhor resultado, precisamos olhar novamente para o gráfico de otimização. Volte para o gráfico de otimização. Clique com o botão direito do mouse em qualquer lugar dentro do gráfico e selecione 1D Graph. Figura 34. Selecione o gráfico unidimensional (1 D) para análise de resultados Com isso, podemos ver facilmente os valores de cada um dos parâmetros de entrada que fornecem o melhor resultado. Agora você pode começar a escolher cada parâmetro para poder ver o melhor valor. Clique com o botão direito do mouse no gráfico, selecione X-Axis e selecione o parâmetro que deseja verificar. Ele será parecido com abaixo (para Stop loss) Figura 35. Obtendo o melhor valor StopLoss do resultado da otimização Na verdade, a partir do resultado da otimização, é muito claro que o melhor Stoploss é 34, o melhor TakeProfit é 78 e o melhor CCIPeriod1 é 62. Para obter os melhores valores para o MAPeriod e CCIPeriod2, selecione cada um deles como acima. Figura 36. Obtendo o melhor valor do Período Médio Móvel do resultado da otimização Este gráfico mostra um valor de 26 como o MAPeriod com o melhor resultado. Figura 37. Obtendo o melhor valor CCIPeriod1 do resultado da otimização Este gráfico mostra um valor de 62 como o CCIPeriod1 com o melhor resultado. Figura 38. Obtendo o melhor valor CCIPeriod2 do resultado da otimização Este gráfico mostra valores de 28 ou 30 como o CCIPeriod2 com os melhores resultados. Tendo obtido os melhores valores para cada parâmetro, agora é hora do teste final do nosso Expert Advisor. 2.5. O Teste Final O teste final envolve a montagem dos melhores parâmetros para o teste do Expert Advisor. Nesse caso, usaremos os melhores valores que descobrimos na seção INPUT do Strategy Tester, conforme mostrado abaixo. Figura 39. Os parâmetros finais de entrada de teste Na aba SETTINGS do Strategy Tester, desabilitaremos a Otimização como mostrado abaixo. Figura 40. As configurações finais do teste Agora vamos clicar no botão START para começar o teste. Quando o teste estiver concluído, temos os resultados na guia RESULTADOS conforme mostrado abaixo. Figura 41. Os resultados finais do teste E também temos o gráfico para o teste na guia GRAPH Figura 42. O resultado final do gráfico de teste Conclusão Neste artigo , discutimos as maneiras de identificar e corrigir erros de código e também discutimos como testar e otimizar um Expert Advisor para obter o melhor símbolo da observação do mercado. Com este artigo, acredito que verificar código para erros usando o editor e otimizar e testar Expert Advisors usando o Strategy Tester torna possível escrever um Expert Advisor melhor e mais lucrativo. FF Indicador de calendário para MT Outras coisas dignas de nota: - Você pode querer definir o OffsetHours para 0. Eu tinha configurado para -1 no lançamento da versão acima. - Uma correção que esqueci de mencionar: A fonte original usou os comandos Year (), Month (), etc. para datar seus arquivos baixados. Eu mudei para TimeYear (), TimeMonth (), porque os outros comandos não são atualizados durante o tempo de execução. Em outras palavras, se você deixasse o FFCalendar original passar o final de semana sem reiniciar o indicador ou o seu terminal MT4, você não receberia as notícias da nova semana. O ajuste que fiz. Esta atualização é um ótimo recurso para testar o calendário do DailyFx, mas enquanto temos sucesso no Mt4 Build 840 no Win7, Win 8 etc, continuamos a ver falhas de arquivos inconsistentes com o DailyFX aparentemente não suportando o. csv consistentemente. Com os recursos de depuração ativados, a biblioteca LibNEWSB6v2a relata que a convenção de nome de arquivo está correta, mas o conteúdo do. csv DailyFX Apache retorna agora também. O servidor encontrou um erro interno ou uma configuração incorreta e não pôde concluir sua solicitação. ou Error 503 backend read error Pior, porque esses arquivos são carregados como arquivos. csv válidos, parece que é necessário excluir o arquivo específico no diretório de arquivos para quotre-grabquot o arquivo, presumindo que o downloader já tenha encontrado um arquivo válido esse nome em arquivos. Eu pensei que a biblioteca carregou o novo csv todas as vezes, independentemente, mas meus carimbos de tempo não estão mudando aqui no arquivo de notícias para sugerir que isso está acontecendo a cada execução, possivelmente porque o arquivo nunca se torna totalmente válido. Curiosamente, quando se converte o pedido de arquivo para um tipo. xls no navegador, os dados válidos retornam do DailyFX em um navegador, de modo que pode ser simplesmente uma alteração no DailyFX ou um problema na codificação html que o causa. dailyfx / files / Calendar-08-02-2015.xls Ao compilar a biblioteca LibNEWSB6v2a. ex4. Um aviso retorna que uma constante não é codificada como um inteiro sem sinal reportando truncamento de valor constante, mas duvido que essa seja a causa imediata que significa que o compilador está convertendo a constante em unsigned automatically, o que não parece causar o problema acima. 1) Alguém sabe se o formato ForexFactory pode ser lido com esta biblioteca ainda, ao invés de DailyFX 2) Alguém mais ainda está usando esta versão atualizada por ngfast 3) Se assim são os mesmos erros acontecendo com outros usando 4) Alguém já resolveu se assim for e você postar atualização por favor, se houver uma solução 5) Quaisquer leitores de notícias alternativas conhecidos codificados para trabalhar em testes de volta Mt4 atual Parece que não tem sido em torno de algumas semanas. Não consegui localizar ninguém atualizando essa biblioteca ou abordando os problemas de formato FF ou as respostas de erro de leitura de arquivo DailyFX. Qualquer ajuda seria muito apreciada. Eu modifiquei uma versão do FFCal para fazê-lo funcionar em 600 compilações. Eu não vi a versão FFCalMod aqui, mas o meu funciona no MT4 de dezembro de 2014 e estou feliz com os resultados. Aqui está uma lista detalhada dos problemas na fonte FFCal original que eu corrigi. Correções - A função TimeGMT () agora é uma função nativa e está em conflito com a implementação personalizada dela. Nada demais, apenas renomeou. - A origem original não pode mais buscar as páginas da web. Isso foi um problema. Obrigado por compartilhar. você é um ótimo codificador. Preciso de ajuda sobre este indicador. Você poderia me dizer por favor como ler o Título do Evento (Notícias) neste indicador para a EA, talvez seus problemas sejam. 1. Updated to MT4 build 920, it does not allow to attach your external indicator, EA, and etc. there are a couple of threads discussing how to fix the issues that 920 is causing. ( There is a build 940 coming this Friday which might solve the latest issues ) Sorry I cannot help you, personally I am having no problems with build 920 2. Sometimes when an internet connection is not good enough, can interfere your Indi, Scripts and EAs performance. ( delete unnecessary indi. script, EA that youre not using for ) theres no problem with my MT4 4 digits broker Attached Image (click to enlarge)

Комментарии