Sunday 26 November 2017

Truncamento Do Valor Constante Mt4 Forex


Codificação de ajuda que eu estava tentando usar i cumtom NonLag ma nrp 2 nmc para a minha EA. Eu estava escrevendo o código como duplo MASignal iCustom (Symbol (), 0, NonLag ma nrp 2 nmc, NlmPeriod, NlmPrice, PctFilter, Shift, 0) Ele pode abrir o comércio, mas não posso alterar o valor do PctFilter como 2.5. Só pode inserir 2 ou 3 (número redondo). Por que eu tento mudá-lo diretamente no código e o aviso de compilação é truncamento de valor constante E a função de mudança também não está funcionando. Você pode me dar um conselho que eu estava tentando usar? Eu não posso fazer o que você quer? Eu estava escrevendo o código como duplo MASignal iCustom (Symbol (), 0, NonLag ma nrp 2 nmc, NlmPeriod, NlmPrice, PctFilter, Shift, 0) Ele pode abrir o comércio, mas não posso alterar o valor do PctFilter como 2.5. Só pode inserir 2 ou 3 (número redondo). Por que eu tento mudá-lo diretamente no código e o aviso de compilação é truncamento de valor constante E a função de mudança também não está funcionando. Você pode me dar algum conselho? Tudo parece estar funcionando bem para mim Veja o exemplo em anexo. Test1.mq4 A partir do turno. Todo deslocamento faz é mudar a exibição do indicador no gráfico. O valor da barra atual ainda é O-ésimo elemento do buffer e, portanto, independentemente de onde ele é exibido. A mudança não muda isso. Isso apenas parece que é um valor de outro bar robbob1970: oi, esperando que alguém possa ajudar com isso. Encontrou este código no cAlgo e espero que alguém possa convertê-lo para mq4 Muito obrigado de antemão Então, com minhas habilidades limitadas, consegui bloquear este indicador personalizado. É um canal PA simples. No entanto, eu sei que há um erro em algum lugar, porque quando você o carrega pela primeira vez, o gráfico se parece com isso. Se alguém pudesse olhar para o código e me dizer onde eu corri, ele seria muito apreciado. Também seria muito legal se uma função de retângulo de sorteio pudesse ser adicionada para identificar períodos prolongados em que o preço está trendingChanneling para que pareça um pouco assim. Como você pode ver as caixas, destacar uma área de demanda com a teoria de que quando o preço Afasta-se dessas zonas, continuará a mover-se até chegar uma nova zona de abastecimento. Na sequência da publicação anterior, também bati uma variação. O mesmo problema quando é carregado pela primeira vez parece ser assim. Uma vez que ele foi carregado, ele funciona bem e dá um canal que se parece com isso. O que seria bom se alguém pudesse suavizar os canais e livrar-se dos picos V e vales. Porque quando você aplica ambos os indicadores Você tem um sistema muito bomMetaTrader 5 - Guia do testador de testes e otimização de consultores especializados no MQL5 Introdução A maior parte do tempo, quando um desenvolvedor escreveu um consultor especialista, certificando-se de que o consultor perito atinge o objetivo de uma boa rentabilidade é sempre uma tarefa muito precisa processo. Neste artigo, analisaremos algumas das principais etapas necessárias para testar e otimizar um Consultor Especial para que possamos atingir o objetivo desejado de escrever o Consultor Especialista. 1. Identificando e corrigindo erros de código Vamos começar este artigo examinando alguns erros comuns de código normalmente encontrados no processo de redação de um código de Advisor Especializado. Na maioria das vezes, os iniciantes enfrentam dificuldade em 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 o quão fácil é usar o editor MQL5 para identificar e corrigir alguns desses erros. Você acabou de escrever o 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 mudanças e, infelizmente, quando você bateu no botão Compilar (ou pressione F7), você foi apresentado por uma série de erros no código como mostrado na guia Erro de Janela MetaEditor Toolbox. Figura 1. Erros de compilação em um código de Conselheiro Especial Wow 38 erros e 1 aviso. Seu código pode não ter tantos erros como mostrado aqui, tudo o que queremos ver são os vários tipos de erros que provavelmente aparecerão ao compilar o nosso código e como podemos resolvê-los. Vamos descrever o diagrama acima. A Seção marcada com 1 mostra a descrição do erro no código. Isto é o que nos dá a idéia de como o erro parece. A seção marcada com 2 nos mostra em qual arquivo temos o erro. Isso é muito importante se incluímos arquivos que tenham erros. Com isso, poderemos saber qual arquivo devemos verificar para o erro descrito. A seção marcada com 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 com 4 mostra o resumo dos erros de compilação e avisos. Vamos agora começar a resolver os erros um após o outro. Deixe-nos percorrer a primeira linha na guia Erro para que possamos começar desde o início. Figura 2. Identificar e resolver erros de código A primeira questão é descrita como. Truncamento de valor constante e é descoberto na linha 16, 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 seu teclado. Figura 3. Localizando o número da linha do código de erro Uma caixa de diálogo será exibida. Figura 4. Localizando a caixa de diálogo do número da linha de erro O intervalo do número como mostrado na caixa de diálogo é o número total de linhas no código. Nesse caso (1-354) mostra que nosso código contém 354 linhas de código. Digite o número da linha que 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 piscar naquela 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 inicializei com um valor duplo (0.1). Para corrigir este erro, mudaremos o int para dobrar. Salve o arquivo e clique no botão COMPILAR novamente para ver se isso foi corrigido. Figura 6. Compilar e salvar o código após a correção ser feita Na compilação novamente, o primeiro problema foi resolvido, mas ainda temos mais problemas, como 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, clicaremos com o botão direito do mouse no erro na guia Erros e selecione 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 seu teclado. Imediatamente, você será levado para a linha de código número 31. Você verá o cursor do mouse piscar e também um pequeno botão redondo vermelho (ícone de erro) na linha de código particular 31. Figura 9a. Localizando a linha de erro do código No entanto, se for uma mensagem de aviso como a primeira na linha 16 que corrigimos anteriormente, 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. Após um exame atento, o ponto-e-vírgula está faltando após o duplo ccminb - 95.0000 na linha 30, é por isso que temos esse erro na linha 31. Agora vamos corrigir esse erro digitando o ponto-e-vírgula depois - 95.0000 e compilar o código novamente. Agora, os erros da linha 31 desapareceram. A seguir é a linha 100 como mostrado abaixo: Figura 10. Mais erros ainda existem no código Hey Olowsam, devemos compilar depois de cada correção, por que não passamos por todas as linhas ao mesmo tempo e depois de ter feito todas as correções Então compilamos o código uma vez em vez de compilação após cada correção Você apenas fez essa pergunta. Você pode estar certo de certa forma, mas não vou avisar isso. Os problemas são sempre resolvidos um após o outro, passo a passo. Qualquer tentativa de agrupar o problema e resolvê-los imediatamente pode levar a muitas dores de cabeça. Em breve você entenderá por que seja paciente comigo. De volta ao nosso problema, devemos verificar a linha 100 para o próximo erro. O erro indica. Se - as expressões não são permitidas em um escopo global E estou certo de que a expressão if na linha 100 não está em um escopo global, mas por que estamos tendo esse erro. Por favor, deixe-nos ir para a linha 100. Figura 11. Localizando o erro no código Não conseguimos encontrar nenhum problema na linha 100 e porque acabamos de terminar a correção da linha 31, temos certeza de que o problema agora está entre a linha 32 ea linha 99. Então Deixe-nos avançar para a linha 99 (temos um comentário, então não pode ser o erro). Se também buscarmos as declarações (MqlTick. MqlTradeRequest e MqlTradeResult), elas são corretamente declaradas e pontuadas. Em seguida, vejamos o código para a expressão if antes destas linhas de código de declaração e veja se a expressão está bem. Em um estudo muito próximo, descobrimos que a expressão if tem uma armadura de fechamento, mas sem abertura. Figura 12. Olhando acima do número da linha de erro para identificar o erro Adicione o suporte de abertura e compile o código novamente. Uma vez que o código foi compilado erros na linha 100, 107, 121, 126, 129, etc foram completamente eliminados e novos aparecem. Veja por que é bom seguir passo a passo Figura 13. Mais erros ainda existem no código Em seguida, nos movemos para a linha 56 com dois erros. CciVal1 - conversão de parâmetros não é permitida e cciVal1 - array é necessário Ao olhar mais de perto na linha 56. CciVal1 é suposto ter sido declarado como uma matriz. Poderia ser que não o declaramos como uma matriz, mas agora tentamos usá-lo como uma matriz. Deixe-nos verificar a seção de declaração para confirmar isso antes que possamos saber o que fazer ao lado. A partir de aqui, podemos ver que declaramos erroneamente cciVal1 como uma matriz dupla em vez de como dinâmica porque omitimos os colchetes (). Vamos adicionar os colchetes (assim como temos para cciVal2) e depois compilar o código. Figura 14. Os erros no código foram reduzidos consideravelmente O que tantos erros desapareceram. Apenas corrigimos o erro informado na linha 56 e alguns outros erros foram resolvidos automaticamente. Isso ocorre 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. Agora vamos mudar para o próximo erro relatado na linha 103. GetLastError - identificador não declarado Aguarde um minuto, GetLastError é suposto ser uma função Deixe ir 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 parênteses para parâmetros de entrada. Digite um par de parênteses vazio e, em seguida, compile o código. O par par de parênteses vazio indica que a função não possui argumentos ou parâmetros. Em seguida, passamos para a linha 159. - valor l exigido e aviso. A expressão não é booleana. Vamos para a linha 159 e veja o que significa esse erro. Pode-se ver 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 em vez disso. Agora vamos mudar a expressão para usar o operador igual ao invés de usar um operador de atribuição. (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 por que diz PositionsTotal - identificador não declarado. Aguarde um minuto, você pode lembrar que vimos um erro como este antes da linha 103 do GetlastError. Possivelmente, nós esquecemos de adicionar o par de parênteses para PositionsTotal também, uma vez que é uma função. Vamos para a linha 292 para confirmar. Assim como nós suspeitamos, é porque esquecemos de adicionar o par de parênteses para a função PositionsTotal. Agora, adicione o parêntese (PositionsTotal ()) e compile o código. Deixe-me também afirmar que, é possível obter esse erro se realmente usamos uma variável que não declaramos em qualquer lugar no código. Figura 15. Todos os erros de compilação foram completamente resolvidos Maravilhoso Agora, conseguimos corrigir todos os erros de compilação. Agora é hora de depurar nosso código e ver se existem erros de tempo de execução. Aqui, não iremos nos detalhes de como depurar nosso código como já foi explicado neste artigo. À medida que 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 para a linha de código que gera o erro. Figura 17. Identificando a linha de código que gera erro de tempo de execução O erro é gerado por este código na linha 172, como você pode ver a partir da figura acima. Uma vez que o erro é um erro fora do intervalo da matriz, isso significa que o valor que pretendemos obter da matriz está fora do alcance dos valores da matriz disponíveis. Então, vamos agora para a linha onde copiamos os buffers de indicadores em arrays para ver qual é o problema. Podemos observar as funções CopyBuffer que copiamos apenas três valores (Barra 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. Etc. Mas no nosso código na linha 172. Estávamos tentando obter o valor da matriz para o cciVal13. É por isso que o erro foi gerado. Agora, pare o depurador para que possamos corrigir o erro: Figura 18. Pare 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 cciVal10, cciVal11, cciVal12, cciVal13 e cciVal14 se necessário. Corrija o código como mostrado e, em seguida, comece o depurador novamente. Desta vez, não há mais erros à medida que observamos o nosso Consultor Especialista executando ações comerciais Figura 19. Todos os erros corrigidos, o Consultor Especial realiza o comércio durante a depuração. 2. Testando o Consultor Especialista Uma vez que tenhamos certeza de que nosso código está livre de erros, agora é hora de Teste o Expert Advisor para poder obter as melhores configurações que nos darão os melhores resultados. Para realizar o teste, usaremos o Strategy Tester, um programa integrado no terminal MetaTrader. Para iniciar o Strategy Tester, vá para o menu Exibir no Terminal e selecione Testador de Estratégia. Figura 20. Lançamento do Strategy Tester 2.1. Testes preliminares do nosso consultor especialista Neste ponto, queremos testar nosso especialista usando os símbolos disponíveis na janela de mercado. Com este resultado, poderemos adivinhar quais pares de moedas podamos optimizar melhor o nosso Especialista. Certifique-se de que a Janela de Mercado contém a maioria das moedas que você está segmentando para o Especialista. Selecione o Expert no separador Configurações do testador de estratégia, selecione o período de duração que você tem em mente (e, claro, você também pode testá-lo para diferentes cronogramas) e, em seguida, selecione Todos os símbolos selecionados no MARKETING Watch no campo de otimização. Diretamente em frente é o parâmetro de resultados de otimização, selecione Equilíbrio do fator de lucro máximo. Figura 21. Teste preliminar de Expert Advisor com todos os símbolos na janela do Market Watch 1. Selecione o modo de geração de tiques (Every Tick) 2. Selecione o tipo de otimização (Todos os símbolos selecionados no relógio MARKET) 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ão somos testes para frente, então deixe Forward como Não. Para este teste, os principais parâmetros de valores (destacados em verde) na guia Entradas serão usados. Figura 22. Parâmetros de entrada de teste preliminares Depois de terminar, mude para a guia Configurações e clique no botão Iniciar. Após a conclusão do teste, você verá uma mensagem na Guia do Diário semelhante à seguinte: Figura 23. Teste preliminar concluído Após a conclusão do teste, vá para a guia Resultados da Otimização para ver os resultados. Figura 24. Resultados preliminares da otimização do teste Nosso interesse é o símbolo que dá o resultado mais alto com base em nossa configuração (Equilíbrio do Fator de Lucro máximo). Para obter isso, vamos ordenar o resultado clicando no título do resultado, de modo que o símbolo com o resultado mais alto esteja listado no topo. Figura 25. Análise de resultado de otimização preliminar A partir deste resultado, podemos ver que nosso Consultor Especialista pode ser lucrativo para os seguintes símbolos (EURUSD, EURJPY, AUDUSD) no período selecionado. Você pode continuar a executar este teste para outro período de tempo, digamos, 30 minutos e veja o que você tem. Isso deve ser tomado como uma tarefa e compartilhe o resultado para que todos possamos aprender também. A partir do resultado do nosso teste preliminar, agora decidiremos quais símbolos (s) e cronograma (s) para o qual otimizamos o nosso Consultor Especialista. Neste exemplo, otimizaremos o nosso Consultor Especial para o prazo de EURUSD e 1 Hora. Quais são as coisas que motivam a escolha que acabamos de fazer: o fator de lucro é a proporção do lucro total para a perda total desse teste. Quanto maior o fator de lucro, mais rentável é sua estratégia de negociação. Isso refere-se à redução relativa do capital próprio ou da maior perda (em percentagem) do valor máximo do patrimônio líquido. Quanto menor for o Drawdown (em percentagem), melhor será a estratégia. Esta é a proporção do lucro para a redução máxima. Isso reflete o risco da estratégia de negociação. Tendo decidido o símbolo e o prazo para usar, agora é hora de otimizar o nosso Consultor Especialista. 2.2. Otimizar a Otimização do Expert Advisor é simplesmente um processo de afinação do desempenho de nossa EA testando com vários fatores (parâmetros) que determinam a eficácia ou rentabilidade da nossa Estratégia codificada na EA. É um procedimento semelhante ao teste, mas em vez de testar o EA apenas uma vez, ele será testado muitas vezes dependendo dos parâmetros selecionados na guia Entrada. Para começar, vamos para a guia de configurações e ativamos otimização e, em seguida, selecione o tipo de resultado que queremos de nossa otimização. Figura 26. Configurações de otimização para Expert Advisor 1. Selecione o modo de geração de tiques (Every Tick) 2. Selecione o tipo de otimização (Algoritmo baseado em genética rápida) 3. Selecione o tipo de resultado esperado da otimização (aqui selecionamos Balanço do fator de lucro máximo) Você pode Obtenha os detalhes dos vários tipos de otimização da documentação de ajuda do terminal. Não somos testes para frente, então deixe Forward como Não. Definindo as propriedades de otimização, vamos definir os parâmetros a serem usados ​​para a otimização na guia Entradas. Figura 27. Otimização dos parâmetros de entrada Uma vez que estamos otimizando, nos concentraremos apenas nas áreas destacadas em amarelo. Em primeiro lugar, qualquer parâmetro que não queremos usar na otimização deve ser desmarcado. Em palavras de ordem, só verificaremos os parâmetros que queremos usar na otimização da EA. Aqui, verifiquei cinco parâmetros, mas você pode decidir verificar apenas um ou dois, dependendo dos parâmetros em que a eficácia da sua estratégia se baseia. Por exemplo, você pode verificar apenas os períodos de média móvel e CCI, de modo que o resultado de otimização permita que você conheça o melhor valor para cada um dos indicadores que dão ao seu EA o melhor desempenho. Esta é a principal essência da otimização. Além disso, o número de parâmetros verificados determinará o número total de testes que sua EA passará. Você verá em breve o que estou falando. Configurando 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 comece 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 a Stop Loss. Se configuramos um incremento de 2, isso significa que, se no primeiro teste, ele usa 30 para Stop Loss, ele usará 32, 36, 34 etc. no segundo. Isso não significa que ele usará 30. Então seguido de 32. 34 etc. Não, ele seleciona os valores aleatoriamente, mas eles sempre serão múltiplos de dois (2) entre o valor de partida eo valor de parada. Este é o valor máximo ou superior que será usado para a otimização. Aqui especificamos 38. Isso significa que os valores que serão utilizados para o teste serão entre 30 e 38, mas serão valores múltiplos de 2. Não usará 40 ou nenhum valor maior. O número total de testes que serão realizados depende das configurações dessas três seções. No nosso exemplo, o testador combinará um total de 5 possibilidades sozinho para o Stop Loss como mostrado na coluna Etapas na guia Entradas, combinará um total de 8 possibilidades para o Take Profit, etc. No momento em que você considerar todos As outras variáveis, estarão chegando a centenas ou milhares de possibilidades (testes). Se você não quiser aguardar as idades para otimizar uma única EA, certifique-se de não incluir ou verificar muitas variáveis, talvez apenas duas ou três, de que o desempenho de sua EA realmente depende (principalmente, os períodos dos indicadores, 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 ter muitas possibilidades (testes). Por exemplo, se usarmos 1 como valor de passo, então aumentamos o número de tentativas de Stop Loss sozinho para 10. Bem, como disse anteriormente, o tempo total necessário para completar uma sessão de otimização depende do número total de agentes disponíveis que você configurou em seu sistema. Eu acredito que a explicação é suficiente. Uma vez que terminamos de configurar as entradas, agora vamos voltar para a guia Configurações e clique no botão Iniciar. Assim que a otimização for concluída, podemos ver os detalhes na guia do diário. Figura 28. Otimização completada conforme mostrado na guia Diário Para visualizar os resultados à medida que cada teste é passado ou concluído, vamos para a guia Resultados da Otimização. E é sempre bom ordenar a saída dos resultados para que possamos identificar facilmente as configurações que nos proporcionam o melhor resultado com base em nossa configuração de otimização. Ao clicar no cabeçalho Resultado na guia Resultados de otimização, irá organizar os resultados em ordem ascendente ou decrescente Figura 29. Relatório de otimização Mude para a guia Gráfico de otimização para ver como o gráfico parece. Figura 30. Gráfico de otimização Não entenda o que vê Não se preocupe, os pontos que você vê são um gráfico da quantidade de testes que sua EA passou contra o resultado de otimização com base no tipo de resultado de otimização que você selecionou. 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 você não pode ver alguns campos como, Fator de lucro, Pagamento esperado, Drawdown, 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 deseja ver, conforme mostrado abaixo: Figura 31. Selecionando Drawdown no resultado de otimização Figura 32. Selecionando Fator de lucro no resultado de otimização Depois de ter adicionado esses registros adicionais, agora analisaremos o resultado da Otimização para decidir as melhores configurações para o nosso Consultor Especialista. Figura 33. Analisando o resultado de otimização A partir da figura acima, as seções destacadas rotuladas A e B indicam os melhores resultados para o nosso Consultor Especialista. 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 uma redução menor. Como você pode ver, a seção A (destacada em amarelo) tem o melhor resultado (Equilíbrio do Fator de Lucro máximo) 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 maior Lucro de 936,55. A Seção A apresentou um Drawdown menor de 1,78 enquanto B apresentou uma redução maior de 1,95. O Strategy Tester salva os resultados de otimização para a pasta de dados de terminal do terminal do clienteCltTestercache. No seu caso, todos os dados de otimização serão salvos no arquivo ccimaea. EURUSD. H1.0.xml. O nome do arquivo possui o seguinte formulário: ExpertName. SYMBOL. PERIOD. GenerationMode. xml, onde: ExpertName - Expert Advisor Name Symbol - Símbolo Período - período de tempo (M1, H1.) GenerationMode - modo de geração de marca (0-every tick, 1 - one minute OHLC, 2 - apenas 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 o gráfico de otimização novamente. 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 1-dimensional (1 D) para a análise de resultados Com isso, podemos ver facilmente os valores de cada um dos parâmetros de entrada que dão 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 e selecione X-Axis e, em seguida, selecione o parâmetro que deseja verificar. Parece abaixo (para Stop loss) Figura 35. Obtendo o melhor valor StopLoss do resultado de otimização Na verdade, a partir do resultado de 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-os como acima Figura 36. Obtendo o melhor valor do Período Médico em Movimento a partir do resultado de 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 de 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 de 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 é tempo para o teste final do nosso Consultor Especialista. 2.5. O teste final O teste final envolve reunir os melhores parâmetros para o teste do consultor especialista. Nesse caso, usaremos os melhores valores que descobrimos na seção INPUT do Strategy Tester como mostrado abaixo. Figura 39. Os parâmetros de entrada de teste final Na guia SETTINGS do Strategy Tester, desativaremos a Otimização como mostrado abaixo Figura 40. As configurações de teste final Vamos agora clicar no botão START para iniciar o teste. Uma vez concluído o teste, temos os resultados na guia RESULTADOS, como mostrado abaixo Figura 41. Os resultados do teste final E, da mesma forma, temos o gráfico para o teste na guia GRÁFICO Figura 42. O resultado final do teste de teste Conclusão Neste artigo , Discutimos as formas de identificar e corrigir erros de código e também discutimos como testar e otimizar um consultor especialista para obter o melhor símbolo do monitor de mercado. Com este artigo, acredito que verificar o código de erros usando o editor e otimizar e testar os Expert Advisors usando o Strategy Tester torna possível criar um melhor e mais provável consultor de especialistas.

No comments:

Post a Comment