MetaTrader Expert Advisor Se você estava andando e aleatoriamente começou a chover, você consideraria levar um guarda-chuva amanhã Claro que você faria. A razão pela qual eu faço uma pergunta retórica como essa é quando as pessoas observam um comportamento, elas respondem de acordo. Se eles esperam que algo possa acontecer novamente, eles mudam seu comportamento para acomodar a mudança nos resultados. Quando você pensa sobre robôs forex, todo mundo tem o sonho de desenvolver uma estratégia que funciona para sempre. Não requer alterações. As configurações iniciais sempre funcionam. Ligue-o e vá para a praia. A realidade, é claro, é mais complicada do que isso. Walk forward otimização otimiza continuamente ao longo do tempo em vez de olhar para um conjunto de configurações estáticas Isso leva a expectativas do que você precisa fazer quando sua estratégia inevitavelmente vai mal. It8217s muito possível que você chegar a uma estratégia que funciona e faz incrivelmente bem no mercado atual. No entanto, um gênio passado não significa gênio futuro. Há sempre a chance de que sua estratégia não funcione mais no futuro. Por que é que é a mesma razão que você pode levar um guarda-chuva amanhã se chove hoje. As pessoas observam o desempenho do mercado de forma consistente. Como mais e mais pessoas fazem a observação, as pessoas começam a negociar sobre ele. O mercado responde a essas mudanças, e, eventualmente, a oportunidade completamente lava-se como muitas pessoas já ouviu sobre ele. Caminhar em frente testes é o processo de determinar se ou não a sua estratégia lavou. Ao testar em um conjunto de dados e, em seguida, testá-lo em um conjunto cego, você pode dar-se uma indicação de se sua estratégia é ruim ou não. O objetivo de caminhar para frente não é provar que sua estratégia é boa. It8217s para provar que sua estratégia não é conhecida por ser ruim. O processo de teste de caminhada é muito simples. Você identifica um conjunto de informações que você deseja usar para seus testes e otimização. Usando um exemplo real, agora é o começo de 2017. Então talvez você queira olhar e testar dados de 2017 até 2017. Isso seria o seu em dados de amostra, e então seus dados de amostra podem ser todos de 2017. Para realizar um teste à frente, você testaria e analisaria sua estratégia 2017-2017. Em seguida, para determinar se 8282s 8220not conhecido para ser bad8221, você então caminhar para a frente para 2103 para ver rever o desempenho. O que você fez é um teste cego. Você didn8217t saber o que a estratégia seria executar em 2017, quando você testou-lo em 2017-2017. Ao colocá-lo em uma amostra cega, você dá-lhe a oportunidade de falhar. A razão por que muitos comerciantes colocar a sua fé em caminhar para a frente de testes é porque it8217s a melhor ferramenta absoluta para identificar as fraquezas em sua otimização. Quando você está testando uma estratégia, é muito provável que você se adapte às oportunidades passadas. Auto feedback loops no mercado atual Deixe-me dar-lhe um exemplo. Nos mercados atuais, um monte de comerciantes foram batendo ouro no mercado aberto, onde todos os dias no mercado aberto. Eles vendem o máximo de ouro possível. Às vezes, vários múltiplos da produção anual em um intervalo de poucos minutos. O que você vê é uma queda livre absoluta por cinco ou dez minutos. Esse estado persiste por dias de cada vez. Mas isso não dura para sempre. Quando os comerciantes começam a ver que as pessoas bang ouro no aberto, eles começam a fazer a mesma coisa. Efetivamente, quem quer ouro para cair no mercado aberto ensinou outros comerciantes a fazer esse comércio para eles. Como as pessoas esperam que o ouro caia nos primeiros cinco minutos do aberto, eles então mudam seu comportamento. Alguns tentam saltar em bater a abrir e ir curto. Outros começam a modificar seu comportamento. Eles percebem que o ouro cai livre por cinco minutos. Então, de repente ele pára, e mais do que como ele reverte para a média. Começarão a mudar de postura e a comprar depois de tantos minutos decorridos do aberto. Eles esperam que o volume pesado que precedeu a venda acabará por voltar ao normal. À medida que as pessoas mudam seu comportamento, outras pessoas respondem em espécie. Se bastantes pessoas começarem a vender no aberto e, em seguida, comprar no aberto cinco minutos mais tarde, você pode ver que um padrão está se formando onde uma pessoa responde às ações de outro. It8217s um loop de auto-retorno onde o estado que estava trabalhando para o primeiro par de dias já não funciona no futuro. Se você pode identificar uma estratégia que é capaz de sobreviver a essas condições e é capaz de sobreviver em condições onde você não fez nenhum teste e otimização, você se dá melhores chances de sucesso no futuro. Isso significa que não muitos comerciantes têm clued nesta oportunidade de negociação que você descobriu. A abordagem para caminhar em frente testes é o antídoto para o problema conhecido como ajuste de curva. O encaixe da curva é a última estratégia que poderia ter uma estratégia. É semelhante a abrir um gráfico de ontem e dizer que eu teria comprado aqui e eu teria vendido aqui, já sabendo o que aconteceu. É claro que você está indo para fazer dinheiro nessa situação. Você sabe com informações perfeitas o que o mercado fez. No futuro, você não sabe a informação perfeita. O objetivo de uma estratégia é lidar com essa ambigüidade. O encaixe da curva significa que você se encaixa perfeitamente com as condições do mercado passado e que quando novas situações surgem inevitavelmente, semelhante à frase, a história não se repete, mas rima, sua estratégia faz a mesma coisa. Você quer uma estratégia que faça bem no desempenho passado, mas você não está chegando com uma estratégia para ganhar dinheiro em mercados históricos. O objetivo de desenvolver uma estratégia é ganhar dinheiro em mercados futuros. Quando você está fazendo o backtesting, você está tentando encontrar o equilíbrio entre o desempenho histórico sólido e, o mais importante, certificando-se de que esse conhecimento histórico extrapola para o desempenho futuro. Seu objetivo é ganhar dinheiro. Rolling Walk Forward Otimização Rolling walk forward otimização leva a caminhada para a frente idéia e melhora continuamente a estratégia, expondo-o a novos dados. Então vamos dizer que você tem um período de amostragem de vinte e quatro meses. Uma maneira de ir sobre ele seria para otimizar sua estratégia para um período de dois meses, em seguida, para caminhar para a frente para o terceiro mês. Você observa o comportamento e reoptimize para o segundo e terceiro mês, então anda para a frente ao quarto mês. Ao fazê-lo continuamente, você elimina o tempo de decaimento da estratégia e dar-lhe uma chance de se adaptar às condições de mercado em curso. É uma espécie de enteado ruivo para aprender a máquina. A experiência e as perdas dão à estratégia a oportunidade de melhorar e ajustar-se às mudanças do mercado através da otimização para a frente. Você pode eliminar o tempo de decaimento da estratégia e dar-lhe uma chance de se adaptar às condições de mercado em curso Outra consideração importante para a análise de progresso são os graus de liberdade dentro de um sistema. Por exemplo, digamos que você está analisando uma cruz em movimento. Você está usando duas médias móveis e usar um stoploss fixo e ter lucro. Isso lhe daria quatro graus de liberdade. A média rápida é o primeiro grau. A média de movimento lento é o segundo grau. O terceiro é o stoploss eo quarto é o lucro da tomada. Os mais graus de liberdade que você permite em um sistema aumenta amplamente as chances de curva ajustando seus sistemas a dados históricos. Os melhores sistemas absolutos mantêm doze graus de liberdade ou menos. Você quer encontrar oportunidades de negociação que têm um grande número de comércios e que oferecem desempenho que você achar satisfatório. Outro elemento a considerar na sua otimização é o que você está otimizando para. A maioria das pessoas se concentra no retorno absoluto. Os retornos são grandes, mas a maioria dos comerciantes cuidar muito mais sobre como eles fazem o seu dinheiro em vez de quanto. Deixe-me dar um exemplo. Se eu tivesse um sistema que fez 25.000 no ano passado, você iria querer Quase todo mundo diz que sim. Se eu tiver um sistema que fez 25.000 no ano passado, mas você teve que perder para 15.000 antes de fazer algum dinheiro. A maioria das pessoas não quer esse sistema. O que isto significa é que você se preocupa muito mais com o desempenho no dia-a-dia em vez de resultado final. O problema com otimização e até mesmo avançar otimização é que você não está necessariamente focado no que você se importa no mundo real: a maneira que você está fazendo o seu dinheiro. A maioria dos pacotes de gráficos focada no resultado líquido e que pode causar algumas fraquezas em seu sistema. Se you8217re intervalo de negociação, o que você realmente fez é cereja escolher os resultados que são os menos afetados por notícias substanciais. Com efeito, você escolheu as configurações que ainda não foram afetadas pela cauda de gordura. Se you8217re tendência trading, you8217ve feito exatamente o oposto. Você escolheu intencionalmente as configurações que maximizam as caudas de gordura que aconteceram no passado. Com estratégias de negociação de tendência, você provavelmente vai encontrar um desempenho consistente. Em vez disso, o que você descobrirá é que a otimização freqüentemente causa longas e contínuas secas de redução incessante. Então, de repente, quase fora do nada, ele encontra um vencedor de monstros mega que retorna vários múltiplos do drawdown que você experimentou. Isso é bom para um backtests hipotético, mas no mundo real onde você sofre perdas em uma base quase diária, a maioria dos comerciantes pode tomar a dor. A fraqueza que encontro com a maioria das otimizações é que eles não olham para a consistência do desempenho. Um potencial substituto para otimizar uma estratégia seria olhar para a regressão linear da curva de equidade ao longo do tempo. A melhor curva de equidade tem o declive de regressão linear mais forte. Pacotes de gráficos populares que implementam a otimização de rolagem a pé são Amibroker, TradeStation, Multicharts e NinjaTrader. Walk forward otimização em NinjaTrader Abra o Strategy Analyzer do Centro de Controle. Clique em File / New / Strategy Analyzer. Abra o analisador de estratégia no NinjaTrader Clique com o botão esquerdo do mouse em uma lista de instrumento ou instrumento e clique com o botão direito do mouse para abrir o menu direito do mouse. Selecione o item de menu Walk Forward. Você também pode clicar no ícone 8220w8221 na barra de ferramentas do Strategy Analyzer. Se você preferir as teclas de atalho, também pode usar a tecla CTRL W. Por fim, você também pode pressionar o ícone 8220W8221 no canto superior esquerdo do Strategy Analyzer. Selecione uma estratégia no menu Estrutura slide out Definir as propriedades Walk Forward (Consulte a propriedade 8220Understanding Walk Forward properties8221 abaixo para obter as definições de propriedade) e pressione o botão OK. Há muitas maneiras de selecionar a otimização para a frente no NinjaTrader O progresso do Walk Forward será mostrado na barra de status do Centro de Controle. Análise Walk-Forward Análise Walk-Forward (WFA) Através de backtesting básico pode-se chegar a declarações baseadas em evidências sobre Quais regras de negociação teriam sido rentáveis se estivessem operando durante o passado, conforme ocorreu. No entanto, questões significativas com backtesting básico incluem: as respostas que fornece não estão disponíveis até que o passado já é história curva-montagem do passado é muitas vezes um mau preditor do futuro não há previsão de re-otimização periódica para atender às mudanças das condições de mercado. Em contraste, o processo de Walk-Forward Analysis (WFA) é uma forma de modelar a repetição periódica de parâmetros de regra de negociação com base em dados históricos existentes, com a subseqüente aplicação dessas regras a dados posteriores não vistos e não utilizados pelo sistema No ponto em que os parâmetros foram gerados. Em outras palavras, a WFA testa se colocar um determinado modelo de negociação através do processo de otimização durante algum período de dados históricos (um período passado definido) resulta em previsibilidade negociável em algum período de dados subseqüentes (um período futuro definido). O período passado é comumente chamado de período in-sample (IS), eo período futuro é comumente chamado de período fora da amostra (OOS). O WFO responde à pergunta: Se eu tivesse reoptimizado isso com freqüência, re-escolhendo os parâmetros da minha estratégia (por uma função de regra / fitness), então troquei este avanço cada vez usando aqueles Configurações, como o saldo da minha conta mudou ao longo de todo o período. Famosamente escrito por Robert Pardo em seu livro Design, Testing and Optimization of Trading Systems. A Otimização Walk-Forward (WFO) já é considerada, há muitos anos, o padrão-ouro de testes para dar confiança a um comerciante para negociar um sistema em andamento. CodeForTraders tem o prazer de disponibilizar poderoso independente walk-forward software de análise para comerciantes sérios. Software WFA integrado à plataforma: Software WFA autônomo para TradeStation. MultiCharts. E AmiBroker usuários: DATFRA - Mt4 EA Builder amp Walk Forward Analyzer Hoje eu posso finalmente liberar minha estrutura de negociação algorítmica. Eu tenho trabalhado nisso por muitos meses, e agora é hora de compartilhá-lo. É um framework algotrading, que se baseia em Metatrader4 e MQL Expert Advisors, e é destinado a analisar, otimizar e gerenciar nossos EAs. Análise de parâmetros. Um método de análise 10.000 vezes mais poderoso do que Walk Forward Analysis - com base em milhões de backtests Trader Paper: Reproduzir os dados de mercado, tão rápido e quantas vezes você quiser, e praticar o seu comércio manual no Metatrader4 e com Full DATFRA Integração (HowTo : Darwins-fx-tools / manual. phpppt) Indicador - gt EA Wizard: gere um Expert Advisor fora de qualquer Metatrader Indicator automaticamente. Use-o para backtest indicadores (mesmo se você é um comerciante manual sem habilidades de codificação) ou para acelerar o desenvolvimento EA (tutorial: forexfactory / showthread. phpt494895) EA Builder. Um simples usar o construtor de EA permite que você deixe seu computador procurarar por sistemas negociando novos - sem interação humana. Usando Backtests normal - ou Walk Walk Analyzer Walk Forward completo. Analise seus sistemas de negociação com o Walk Forward Analysis - rápido, eficaz, multithreaded. Metatrader4 Integração. DATFRA funciona em cima de Metatrader4, você não tem que mudar seu ambiente de negociação preferido para usá-lo MQL Library. Muitas funções de MQL e modelos de EA vêm com DATFRA, tudo o que você precisa para iniciar imediatamente a programação EA System Management. O banco de dados interno permite que você gerencie seus EAs, parâmetros e vários tipos de relatórios de análise - puro e central Data Manager. O DATFRA pode importar dados de histórico de arquivos Metatrader4, Metatrader5 ou CSV. AI-Adivsor. Experimente centenas de filtros de entrada e saia regras para qualquer sistema (papel-negociado ou WFAnalysed ou backtested) sobre a mosca Professional amp Flexible Builder. Isto permitirá que você use qualquer Função MQL, qualquer indicador Metatrader e qualquer Expert Advisor para a construção de sistemas - liberdade total para traders profissionais Criação de portfólio. Analisar a correlação de sistemas de negociação - e construir o portfólio ideal Live Optimization. Permita que a DATFRA re-otimize seus EAs para as atuais condições de mercado - com base em suas descobertas durante a análise de espaço para frente ou para o espaço de parâmetros. Simulações Monte Carlo. Determinar as características estatísticas reais de uma distribuição de comércio Esta é uma versão alfa. Por favor, seja tão gentil e relate todos os bugs para mim via skype, pm ou e-mail: darwins-fx-tools / contact Contanto que este é um projeto minúsculo, todo mundo também está convidado a entrar em contato comigo para obter ajuda geral ou perguntas sobre o estrutura. O software é livre - e eu quero mantê-lo dessa maneira. No entanto, eu não estou apenas compartilhando isso porque eu sou uma pessoa tão agradável, mas também porque eu quero fazer alguns contatos valiosos e reputação através deste projeto. Assim, se você gosta dele, pague para trás com compartilhar deste com tantos como comerciantes como possíveis Como este é sob o desenvolvimento pesado, eu atualizarei este segmento freqüentemente, sempre que eu mudar algo ou adicionar características novas - assim subscreva se você não quer faltar It Download amp Instruções: LISTEN Eu lucro com a depuração deste projeto, tanto quanto você lucrar com a minha ajuda para configurar tudo isso e coisas de solução de problemas. Então, se você leu o manual, mas ainda tem QUALQUER problema, por favor, faça-nos o favor e entre em contato comigo ou através de skype ou e-mail. Eu mesmo fornecer assistência gratuita teamviewer. Como eu lucro com a ajuda na depuração. ATENÇÃO: Há um manual ligado no meu site, READ IT ALL Você não vai mesmo ser capaz de instalar este software se você não seguir cuidadosamente as instruções (isso não é apenas um clique em Next tipo de rotina de instalação) O manual é construído De slideshows com um pouco de texto, por isso não vai demorar muito. Mas você DEVE ler cada texto abaixo de cada imagem, às vezes há instruções muito importantes escritas lá. Aqui está uma coleção do manual e todos os meus artigos sobre a análise do sistema de negociação, graças ao x26s: darwins-fx-tools / dl / DATFR. Quando eu digo a otimização em todos os dados não pode ser rentável, eu estava mais se referindo a sistemas construídos algoritmicamente, como eles têm um tempo difícil sobre overfitting e tais problemas (sistemas de som que mostram backtests agradável quotby chance) ). Eu deveria fazer isso um pouco mais claro, eu acho, e não generalizar. O que você está vendo atualmente é o Walk Forward Analyzer, e sim, ele usa MT4 para otimização e, portanto, tem as mesmas limitações. MAS a análise de espaço de parâmetros, que é o núcleo real desse quadro, usa seus próprios algoritmos para fazer seu trabalho. Sim, ele usa MT4 para simular os comércios, mas depois leva as saídas de comércio bruto e tudo o resto é feito internamente, o que significa que as limitações que você mencionou não se aplicam. Espero liberar essa parte em poucas semanas. O construtor que você vê agora é uma coisa muito alfa, e é a versão simples. Isso significa, ele só constrói com base em modelos e é mais útil para pessoas muito novas para a negociação. (Também, ele precisa veeery muito tempo para encontrar sistemas realmente promissores) O construtor real, por outro lado, é muito mais poderoso, como ele pode ter qualquer função mql para gerar suas regras e qualquer conselheiro perito para colocá-los em. Isso significa, liberdade total para um desenvolvedor EA deixar o construtor testar idéias para uma EA em desenvolvimento, que é a parte realmente útil. Como o construtor atual sofre com as mesmas coisas que eu mencionei acima: aleatoriedade em resultados, sistemas insondáveis que são nice quotby chance. É por isso que leva algum tempo para encontrar realmente bons. Mas com um especialista em gerenciamento e supervisão de todo o processo de construção, em termos de insumos e verificação da solidez dos resultados, este é um jogo diferente Editar: Você deve, no entanto, melhor usar etapas mais elevadas na otimização, como parameterspaces crescer exponencialmente, nenhum algoritmo pode otimizar Bem em espaços que são muito largos Jun, 2010 Status: Member 789 Posts Excelente trabalho Darwin, thats tudo o que posso dizer e eu muito ansioso para as novas funcionalidades, soa muito promissor. Como para as etapas de otimização, eu mantê-los tão alto quanto possível, mas tão baixo quanto necessário. Embora o tamanho da etapa fosse um pouco um problema para o algos velho da optimização genética. Hoje em dia existem muito bons aqueles em que step-size doesnt importa muito em tudo. Você pode querer olhar para quotCovariance Matrix Adaptação Evolutionary Strategyquot. Para o fundo científico ver: De acordo com benchmarks científicos outperforms nove outros, as mais populares estratégias evolutivas (como PSO, Genetic e evolução diferencial). Deve-se notar, como é o caso de muitos algoritmos de busca de espaço contínuo, que a diminuição do parâmetro quotstepquot nas chamadas de função Optimize () não afeta significativamente os tempos de otimização. A única coisa que importa é o quotdimension do problema, ou seja, o número de diferentes parâmetros (número de otimizar chamadas de função). O número de quotstepsquot por parâmetro pode ser definido sem afetar o tempo de otimização, então use a melhor resolução que você deseja. Em teoria, o algoritmo deve ser capaz de encontrar solução em no máximo 900 (N3) (N3) backtests onde quotNquot é a dimensão. Na prática, converge um LOT mais rápido. Por exemplo, a solução em espaço de parâmetros dimensionais 3 (N3) (digamos 100100100 1 milhão de passos exaustivos) pode ser encontrada em apenas 500-900 passos CMA-ES. Este é de longe o melhor otimização algo que eu já usei. Pode ser interessante para o seu programa também Registrado em jul 2010 Status: Member 789 Posts Btw, só para apontar isso para os usuários aqui: você não pode executar mais de 32 instâncias MT4 SISTEMA WIDE (um novo quotprotectionquot stupid Metaquotes adicionado a todas as compilações gt 600 ), Por isso tenha cuidado ao construir o cluster para não usar para muitas instâncias, como de outra forma não vai lançar (exceto Ive perdeu o fato de que Darwin-FX usa um patch de execução com seu carregador para remover essa limitação. Id também realmente gostaria de ver é que o construtor EA pode evitar o uso de indicadores para a saída. Os meus melhores sistemas são aqueles com um ATR baseado arrastar início gatilho que, uma vez alcançado, começa a rastrear a partir de lá. Portanto, seria possível Apenas use ATR Trailing Stop (e ATR ou SL fixo, é claro) para a saída em vez de indicadores Junte-se May 2017 Status: Membro 192 Posts Este é backtracking algoritmo de otimização de pesquisa (BSA), um novo algoritmo evolutivo melhor do que CMA-ES pinarcivicioglu / ds. Html Juntou-se em Jul 2010 Status: Member 789 Posts Desculpe por muitos posts, mas estou recebendo montes de erros no log: HTMLREPORT NÃO EXISTEM mt4instance :: backtest ERRO XYZDATFRA4504777418606 não pôde executar mt4, err 11 PARTLOG HTMLREPORT NÃO EXISTA ERRO ATENÇÃO RELATÓRIO BACKTEST NÃO EXISTE MT4 IDLES, DAMN cpuusage 4 mem 210928 caches 0. Sua ok quando isso acontece de vez em quando. Quando isso acontece com freqüência, por favor, inicie o MT4 do qual você cria os clusters, deixe-o atualizar, feche e reconstrua o mt4-cluster O mesmo acontece quando o User Account Control aparece às vezes. MT4 ERROR NUM 11 O HTMLREPORT NÃO EXISTA mt4instance :: backtest ERRO XYZDATFRA4504662870626 não foi possível executar mt4, err 11 PARTLOG HTMLREPORT NÃO EXISTA ERRO ATENÇÃO O RELATÓRIO BACKTEST NÃO EXISTA Estou usando 10 instâncias MT4 no cluster em uma máquina de 32 núcleos de CPU Hyperthreaded) e 16GB de RAM, então a máquina é poderosa o suficiente. MT4 é atualizado para a compilação mais recente e nenhum UAC está executando tudo tem privilégios de administrador (sua execução no Win 2k12 Server), mas ainda dá aqueles quotMt4 ociosos errorsquot que seria aceitável se houvesse werent aqueles quotHTMLREPORT não existe problemas que obviamente levar Para que seu programa doesnt receber os resultados de backtest que quer da instância relacionada MT4, certo O que está errado aqui Eu uso esta máquina para otimização MT4 dia após dia sem problemas. Atualização: o problema acima com os relatórios HTML em falta / quotidlingquot MT4 parece que só acontecem se o uso mais de 1080 dias max para o intervalo de tempo de otimização (eu tentei de 365 a 4000 dias em vez de 1080 dias máximo desde que eu tenho 14 anos de Dados e queria usar mais para o teste inicial). De qualquer forma, se definir para 1080 dias máximo, o erro acontece muito menos e não em todos os casos.
No comments:
Post a Comment