Backtesting estratégias de forex recurso
O backtesting é basicamente a aplicação de um conjunto de regras técnicas (isto é, uma estratégia de negociação) a um conjunto de dados de preços históricos e a análise subseqüente dos retornos resultantes que a estratégia teria gerado ao longo de um período de tempo especificado. Os comerciantes podem assim determinar como uma determinada estratégia ou sinal provavelmente teria realizado durante um período especificado. Enquanto backtesting sua estratégia é essencial para uma boa disciplina de negociação e deve ser parte de qualquer rotina de comerciantes forex, existem lacunas e armadilhas que se deve estar ciente. A teoria subjacente - ou propósito - de backtesting, é que qualquer estratégia que teria se comportado bem no passado é provável que também fazê-lo no futuro. No entanto, como todos sabemos, o desempenho passado não é necessariamente uma indicação válida do que o futuro detém e, portanto, há limitações quanto a quão fortemente deve se apoiar em resultados backtesting. Apesar das incertezas acima, o backtesting certamente não deve ser descartado. Este artigo procura dar aos comerciantes uma boa compreensão básica do que backtesting é, o que impulsiona o processo de backtesting eo que se deve estar ciente de, a fim de obter resultados de backtesting confiáveis e utilizáveis. Como funciona um Backtester Backtesting funciona aplicando dados históricos a uma determinada estratégia de negociação e, assim, reconstruindo os negócios que resultariam da estratégia dada durante um período de tempo especificado. Com base numa análise das transacções resultantes, as métricas de desempenho chave sobre o desempenho global da estratégia podem ser estimadas. Um comerciante pode usar esses dados para garantir que ele / ela não tem quaisquer falhas imprevistas na estratégia ou simplesmente para ajustar e otimizar suas estratégias, a fim de se tornar suficientemente confiantes para ativá-los em um ambiente ao vivo. Quais os resultados que eu posso esperar quando executar um backtest Como mencionado acima, backtesting idealmente deve fornecer um comerciante com informações utilizáveis que ele / ela pode usar para avaliar uma estratégia de negociação ou sistema. Dependendo do motor de backtesting que você está usando, é provável que você obtenha uma ampla gama de resultados estatísticos, sendo os mais comuns: Total PnL (lucro e perda) dos negócios iniciados pela estratégia (isso pode ser expresso em USD nominal ou Como uma porcentagem do seu capital inicial investido na estratégia) retorno total sobre o patrimônio (ROE) seu retorno expresso em porcentagem do capital investido volatilidade a porcentagem máxima de up / downside sua estratégia tem experimentado Win / loose rácios a relação de ganhar vs perder negócios A estratégia gerou Retorno Anualizado sobre Patrimônio Líquido o que seu retorno provavelmente retornaria ao longo de um ano civil completo Retorno ajustado ao risco quantificando seu retorno em relação ao risco implícito da estratégia Cada métrica fornece uma visão valiosa de como sua estratégia é provável de executar. É sempre uma boa idéia para comparar estes com o nível de risco / volatilidade que você está confortável. Consulte a ilustração abaixo para obter um exemplo dos índices estatísticos que você pode esperar ao fazer backtesting com o Tradeworks. Dependendo do motor de backtesting que você usa, as configurações podem permitir um certo grau de personalização, incluindo a equidade inicial, data-intervalo, nível de comissão, periodicidade, tamanho de lote padrão etc. Na Tradeworks, preferimos manter as coisas simples. Assim, as únicas configurações que você precisa para iniciar um backtest são a data-intervalo do período que você deseja analisar a equidade que deseja comprometer com a estratégia eo spread que você deseja aplicar. Que fatores são susceptíveis de influenciar o resultado do meu Backtesting Você pode achar que uma determinada estratégia de negociação irá produzir resultados diferentes, dependendo de qual backtester é usado. Existem vários fatores que influenciam o resultado do backtesting de uma estratégia que você deve estar ciente de que os principais são: Dados (Qualidade, Fonte e Tipo) - é os dados subjacentes precisos, a partir de uma fonte confiável e correta em relação à sua estratégia Execução Comercial A lógica - é a lógica comercial embutida no som backtest e determinismo realista - será a mesma estratégia aplicada sobre os mesmos dados produzir os mesmos resultados em todos os momentos Outros fatores que afetam o resultado de Backtesting incluem deslizamento, latência, rejeições e re-aspas. (Se necessário, consulte a seção Glossário para obter as definições desses termos). Para uma descrição detalhada dos três fatores acima, veja o artigo sobre o backtesting na base de conhecimento da Tradeworks. Conclusão Backtesting é uma das disciplinas mais importantes ao automatizar estratégias de negociação forex. Quando executado corretamente, com um conjunto de dados de alta qualidade, backtesting é um recurso extremamente valioso que permite que os comerciantes para testar e otimizar estratégias de negociação e, assim, ganhar a confiança necessária antes de executá-los em um ambiente ao vivo. Por que automatizar sua estratégia com Tradeworks Tradeworks é um desenvolvedor neutro de software de automação comercial que trabalha exclusivamente para comerciantes individuais. Experimente o nosso produto de graça e descubra as vantagens de automatizar a sua estratégia de negociação, incluindo: Poupe tempo e deixe a nossa tecnologia baseada na nuvem monitorizar os mercados para si 24/7 Elevar o seu desempenho comercial através de uma execução comercial exata e sem emoção Gerir melhor o seu risco com o nosso risco inovador Ferramentas de gerenciamento Interface intuitiva e simples de usar Nenhuma habilidade de programação necessária Mensagens por Tópicos Subscrever e-mail atualizações Tradeworks ApS 2017-2017. Todos os direitos reservados. Ao usar este site e o aplicativo do Tradeworks, você concorda com os Termos e Condições. Plataformas Backtesting do Estranet Ao ponto, estou atualmente testando vários pacotes de software para backtesting estratégias para escolher o melhor para usar em um grande projeto. Eu tenho que dizer que eu tenho estado longe de tais detalhes para os últimos 2-3 anos e estou certo de que minhas informações estão desatualizadas e eu preciso de uma atualização dos especialistas aqui que estão usando os pacotes de software atual e suas experiências. Estou testando / demoing / tentando os seguintes pacotes agora (Então, por favor, se você tiver algum feedback sobre qualquer um deles, seria muito apreciado para postar uma resposta detalhada): 1- Matlab 2- Trading Blox 3- MultiCharts 4- Trade Station 5- AmiBroker 6- NinjaTrader Agora, eu sei que a maioria dos pacotes e plataformas mencionados são principalmente os de varejo e eles serão tão bons quanto o uso de varejo para todos os níveis, no entanto, eu estou aberto a pacotes institucionais também, se houver Membro aqui tem uma experiência anterior com um (apenas para esclarecer, pacotes institucionais significa plataformas usadas por fundos de hedge ou prop osks em grandes bancos). Não falar sobre MT (Metatrader) ou Metastock por favor como eu não vou usar qualquer um deles. MT usa alguma variação de C e eu não estou disposto a aprender C como eu não tenho tempo. Metastock, eu já tentei e eu tenho que dizer o seu lixo, muito básico, limitado e um monte de restrições, por isso não vai caber mesmo um varejo de nível médio precisa. Eu tenho usado Matlab volta em meus dias de engenharia de idade e eu tenho que dizer que é uma ferramenta muito útil, mas novamente vai exigir um monte de gerenciamento de código e eu estou tentando minimizar a codificação, tanto quanto possível. Aqui está o que eu estou procurando na plataforma backtesting, então se você já experimentou isso em um dos acima mencionados ou em outra plataforma não mencionada, o seu feedback é muito apreciado: 1- A plataforma deve ser precisa, precisa e realista 2- O desenho ea construção do sistema devem ser o mais flexíveis possível, permitindo que todos os componentes e condições sejam criados e com a possibilidade de ligar esses componentes, isto é, a embalagem deve Oferecem a possibilidade de dependência de componentes Por exemplo, ao simular entradas, é preciso ter a capacidade de construir as regras das entradas com base em qualquer possível condição ou conjunto de condições, dependente ou independente, sem remover a possibilidade de integrar o componente de entrada de Outros componentes do sistema. Para esclarecer isso, digamos que uma estratégia tem uma regra de entrada simples, que está indo muito tempo quando o preço cruza acima de seu 20-EMA por 1 em uma base intradiária, no entanto, se os últimos 3 negócios consecutivos perderam dinheiro, a regra de entrada deve Ser cruzamento acima do 20-EMA por 1,35 vez e se o passado 2 comércios consecutivos foram vencedores com uma média de 15 ou mais lucro, a regra de entrada deve ser cruzamento acima do 20-EMA por 0,5 apenas. Espero que tenha entendido o meu ponto. O mesmo se aplica não só às regras de entrada, mas também para parar as saídas de perdas e as saídas de lucros. 3- O componente de dimensionamento de posição / condições pode ser construído por qualquer conjunto de condições ou regras. Como exemplo, se eu precisar de dimensionamento de posição para ser dinâmico com base na diferença percentual entre o preço e um 250-EMA, devo ser capaz de fazer isso, onde 100 da posição a ser tomada quando o preço é acima / abaixo O 250-EMA por 1 eo tamanho da posição diminui incrementalmente por 10 para cada 1 passo longe do 250-EMA em qualquer direção. Agulhas para dizer que o dimensionamento da posição cálculo de fórmula personalizado deve ser suportado e eu devo ter a capacidade de usar dados da curva de equidade serialmente para alterar dinamicamente o tamanho da posição de próximos comércios. Outra coisa muito importante nos cálculos de dimensionamento de posição de suporte é ter a capacidade de usar as probabilidades calculadas de resultados em um certo ponto para ajustar o dimensionamento de posição de acordo com uma fórmula. Como um exemplo, vamos dizer que eu estarei usando uma determinada fórmula de dimensionamento de posição para os primeiros 100 comércios e, em seguida, com base no valor da conta após os 100 negócios ea distribuição desses 100 negócios, vou estar usando fórmulas de dimensionamento posição diferente depois. Para elaborar: Se após as primeiras 100 operações, o valor da conta cresceu 30 ou mais e os 100 primeiros comércios foram 60 vencedores e 40 perdedores, relação vitória / perda de 2,5 / 1, eu preciso ter a capacidade de usar outra posição de dimensionamento Fórmula neste caso para os próximos 100 negócios e assim por diante. A idéia principal por trás disso, é que, como você vai, a expectativa do sistema muda ao longo do tempo como você assumir mais e mais trades eo conceito básico é que se a sua expectativa de sistema está ficando melhor, você quer levantar o tamanho da sua posição e fazer O máximo da expectativa melhorada e se a expectativa de seu sistema está piorando, você precisa reduzir o tamanho da sua posição e negociar menor desde quando a expectativa do sistema fica melhor, você está praticamente recebendo mais recompensas por cada dólar que você arrisca e vice-versa . 4- Os detalhes / condições de execução devem ser tão flexíveis quanto possível e muito próximos de situações da vida real, permitindo uma derrapagem variável ou baseada em fórmula. A execução também deve suportar fórmulas para determinar com precisão onde e como entrar levando em consideração volume e liquidez (A ser definido por fórmulas e filtros) 5- Teste de sistema múltiplo ao mesmo tempo em vários instrumentos deve ser apoiado, ou seja, se eu tiver 3 Diferentes sistemas de negociação e 100 instrumentos para o comércio com base nas condições dos sistemas, o pacote deve permitir back testar todos os 3 sistemas de negociação entre os 100 instrumentos ao mesmo tempo, tendo as negociações na ordem em que vêm com base nas regras dos 3 sistemas e Em seguida, combinar os resultados em um único portfólio, como se o pacote está simulando uma varredura diariamente para os 100 instrumentos para ver qual sistema gerado sinais e executar os sinais com base no sistema de condições programadas e assim por diante a gestão de várias posições na mesma Tempo 6- relatórios e resultados de testes devem ser abrangentes e exportáveis para excel. Métricas estatísticas básicas devem ser incluídas além da rentabilidade do sistema ou da combinação de sistemas que estão sendo testados. Os dados da curva de equidade também devem ser exportáveis para se destacarem. A curva de equidade básica mede como max. A redução e a média de levantamentos mensais, a variabilidade dos retornos e o desvio padrão dos dados da curva de equidade, etc. são preferidos para estar presentes dentro da embalagem. 7- A otimização para 1 ou mais variáveis deve ser parte da embalagem ea embalagem deve ser capaz de Otimizar para variáveis não-padrão, como otimizar para alcançar o mínimo. Drawdown, etc. 8- O pacote deve ter a capacidade de obter dados de uma fonte em tempo real ou automática, ou manualmente através de arquivos csv ou excel. Tem de suportar dados contínuos de contratos de futuros, bem como dados de opções 9- Instrumentos Financeiros a serem suportados são ações, opções, futuros e dados de OTC FX e campos a serem suportados no banco de dados de pacotes são Timestamp, open, high, low, close, Volume, licitação, volume de oferta, perguntar, pedir volume, preço de liquidação e interesse aberto Finalmente, desculpe o post longo e desculpe por ter mantido você lendo tudo isso. Seu feedback é realmente muito apreciado. Entrou em Jan 2005 Status: Membro do Fórum Feliz 1.152 Posts Obrigado Sti muito por sua resposta e para a sua oferta, bem, muito generoso de você. Tempo é um pouco limitado aqui é por isso que estou deixando a opção de programação como o último se eu não encontrar um pacote pronto que é bom para o que eu estou procurando. Até agora, fora de todos os pacotes que eu mencionei, Trading Blox parece bom para o que estou procurando, não a correspondência exata, mas parece bom, mas não vou comprometer a qualidade e recursos de qualquer maneira, por isso ainda precisam de mais em profundidade Testes. Obrigado novamente e manter-se-á em contacto. Eu compreendo inteiramente de onde você está vindo com seu primeiro borne. Mas, eu realmente acredito que para os requisitos que você afirma, você terá que tomar um caminho diferente. Eu não acho que haverá qualquer pacote fora da caixa (diferente dos que você mencionou), que será capaz de satisfazer tais requisitos. Eu faço um monte de testes e tinha a necessidade de backtesting um monte de coisas. No final eu escrevi meu próprio software backtesting em c. Eu entendo que você afirmou que você não está interessado em seguir esta estrada, mas. Im really affraid. MultiCharts 10 MultiCharts é uma plataforma de negociação premiada Se você precisa de software de negociação diária ou você investir por períodos mais longos, MultiCharts tem recursos que podem ajudar a alcançar seus objetivos comerciais. Alta definição gráficos, built-in indicadores e estratégias, um clique de negociação de gráfico e DOM, backtesting de alta precisão, força bruta e otimização genética, execução automatizada e suporte para EasyLanguage scripts são todas as ferramentas-chave à sua disposição. Hoice de corretores e feeds de dados A liberdade de escolha tem sido a idéia motriz por trás de nossos MultiCharts e você pode vê-lo na ampla escolha de feeds de dados suportados e corretores. Escolha o seu método de negociação, testá-lo e começar a negociar com qualquer corretor suportado que você gosta thats a vantagem de MultiCharts.
Comments
Post a Comment