Sunday 21 January 2018

R back testing forex


Backtesting: interpretando o passado O teste anterior é um componente chave do desenvolvimento efetivo do sistema comercial. É realizado reconstruindo, com dados históricos, trades que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os comerciantes podem otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas e ganhar confiança em sua estratégia antes de aplicá-la aos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado provavelmente funcionará bem no futuro, e, inversamente, qualquer estratégia que tenha tido um desempenho fraco no passado provavelmente irá apresentar um desempenho fraco no futuro. Este artigo examina o que os aplicativos são usados ​​para testar, o tipo de dados obtidos e a forma de usá-lo. O Backtesting de Data e The Tools pode fornecer muitos comentários estatísticos valiosos sobre um determinado sistema. Algumas estatísticas de backtesting universais incluem: Lucro ou perda líquida - Ganhos ou perdas líquidas de porcentagem. Prazo - Datas passadas em que ocorreu teste. Universo - Estoques incluídos no backtest. Medidas de volatilidade - Percentual máximo de reversão e reversão. Médias - Ganho médio percentual e perda média, barras médias mantidas. Exposição - Porcentagem de capital investido (ou exposto ao mercado). Razões - Índice de vitórias para perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco. Normalmente, o software backtesting terá duas telas que são importantes. O primeiro permite ao comerciante personalizar as configurações de backtesting. Estas personalizações incluem tudo, desde o período de tempo até os custos de comissão. Aqui está um exemplo dessa tela em AmiBroker: a segunda tela é o relatório de resultados de backtesting real. Aqui é onde você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela no AmiBroker: em geral, a maioria dos softwares de negociação contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para realizar dimensionamento automático de posição, otimização e outros recursos mais avançados. Os 10 mandamentos Existem muitos fatores pelos quais os comerciantes prestam atenção quando estão testando as estratégias de negociação. Aqui está uma lista das 10 coisas mais importantes a serem lembradas durante o backtesting: leve em consideração as amplas tendências do mercado no período em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada de 1999 a 2000, pode não estar bem em um mercado ostentoso. Muitas vezes, é uma boa idéia fazer o teste durante um longo período de tempo que engloba vários tipos diferentes de condições de mercado. Tome em consideração o universo em que ocorreu o teste de retorno. Por exemplo, se um sistema de mercado amplo é testado com um universo composto por estoques tecnológicos, pode deixar de funcionar bem em diferentes setores. Como regra geral, se uma estratégia é direcionada a um gênero de estoque específico, limite o universo a esse gênero, mas, em todos os outros casos, mantenha um grande universo para fins de teste. As medidas de volatilidade são extremamente importantes a serem consideradas no desenvolvimento de um sistema comercial. Isto é especialmente verdadeiro para as contas alavancadas, que são sujeitas a chamadas de margem se o seu patrimônio cai abaixo de um determinado ponto. Os comerciantes devem procurar manter a volatilidade baixa para reduzir o risco e permitir uma transição mais fácil dentro e fora de uma determinada ação. O número médio de barras mantidas é também muito importante para assistir ao desenvolver um sistema comercial. Embora a maioria dos softwares de backtesting incluam custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentar o número médio de barras mantidas pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma espada de dois gumes. O aumento da exposição pode levar a maiores lucros ou maiores perdas, enquanto a diminuição da exposição significa menores lucros ou menores perdas. No entanto, em geral, é uma boa idéia manter a exposição abaixo de 70 para reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. A estatística de perda de ganhos médios, combinada com o índice de ganhos para perdas, pode ser útil para determinar o dimensionamento ótimo da posição e gerenciamento de dinheiro usando técnicas como o critério Kelly. (Ver Gestão de Dinheiro Usando o Critério de Kelly.) Os comerciantes podem assumir posições maiores e reduzir os custos de comissão aumentando seus ganhos médios e aumentando seu índice de ganhos para perdas. O retorno anualizado é importante porque é usado como uma ferramenta para comparar os rendimentos dos sistemas em relação a outros locais de investimento. É importante não só olhar para o retorno anual anualizado, mas também levar em consideração o aumento ou diminuição do risco. Isso pode ser feito observando o retorno ajustado ao risco, que explica vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros locais de investimento com risco igual ou menor. A personalização do backtesting é extremamente importante. Muitas aplicações de backtesting têm entrada para valores de comissão, tamanhos de lotes redondos (ou fracionários), tamanhos de garotas, requisitos de margem, taxas de juros, suposições de deslizamento, regras de dimensionamento de posição, regras de saída da mesma barra, ajustes de parada e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for atualizado. Backtesting às vezes pode levar a algo conhecido como otimização excessiva. Esta é uma condição em que os resultados do desempenho são tão ajustados ao passado que não são mais precisos no futuro. Geralmente, é uma boa idéia implementar regras que se aplicam a todos os estoques, ou um conjunto seleto de ações segmentadas, e não são otimizadas na medida em que as regras não são mais compreensíveis pelo criador. Backtesting nem sempre é a maneira mais precisa de avaliar a eficácia de um determinado sistema de negociação. Às vezes, as estratégias que funcionaram bem no passado não conseguem fazer bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de trocar papel com um sistema que tenha sido testado com sucesso antes de entrar em operação para ter certeza de que a estratégia ainda se aplica na prática. Conclusão Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado corretamente, pode ajudar os comerciantes a otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas, bem como ganhar confiança em sua estratégia antes de aplicá-la aos mercados do mundo real. Recursos Tradecision (tradecision) - Desenvolvimento de sistema de negociação de gama alta AmiBroker (amibroker) - Desenvolvimento de sistema de comércio de orçamento. Eu sou muito novo para a R e tentando testar uma estratégia Ive programada já em WealthLab. Várias coisas que eu não entendo (e isso não funciona obviamente). Eu não entendo o Close Prices bem em um vetor. Ou algum tipo de vetor, mas começa com a estrutura e eu realmente não entendo o que essa função faz. É por isso que minha série, 1 chamada provavelmente não funciona. N ltnrow (série) também não funciona, mas eu preciso disso para o Loop, então acho que se eu receber essas 2 perguntas respondidas, minha estratégia deveria funcionar. Estou muito agradecido por qualquer ajuda ... R parece bastante complicado, mesmo com a experiência de programação em outras línguas, sim, eu copiei algumas linhas de código deste tutorial e realmente não entendo essa linha. Eu significo séries, 1 eu pensei que aplicaria a função f na quotcolumnquot 1 da série. Mas, uma vez que esta série é alguma completa com estrutura etc., ela não funciona. Estou falando sobre este tutorial: r-bloggersbacktesting-a-trading-strategy ndash MichiZH Jun 6 13 às 14:22

No comments:

Post a Comment