O R Trader.
Usando R e ferramentas relacionadas em Finanças Quantitativas.
Relatório de desempenho das estratégias de negociação com R e Knitr.
Estive procurando relatórios de modelo usando R e Knitr por um tempo, mas não encontrei nada que corresponda às minhas necessidades até agora. Eu, portanto, decidi criar eles mesmo.
O que eu gosto de ver sobre as estratégias de negociação são os gráficos de desempenho básicos (diariamente, mensais e anuais), algumas estatísticas básicas de negócios e, acima de tudo, os números de desempenho mais recentes para acompanhar a potencial deterioração da estratégia. Eu também quero que todas as informações sejam exibidas em uma única página. Tudo isso já existe obviamente, mas não dentro de um relatório sintético como o que eu apresento aqui. Portanto, era necessária alguma formatação personalizada.
A entrada necessária para criar este relatório é um simples arquivo csv de 2 colunas com data e retorno diários. A saída é um arquivo pdf de boa aparência (veja a imagem abaixo).
performanceReportREADME. txt: contém o desempenho de renúncia habitualReportWithKnitr. R: Esta é a principal função R que cria os gráficos e a entrada para o desempenho das tabelas LaTeXReport_AssetAllocation. Rnw: Este arquivo chama a função R acima e gera o relatório pdf.
Todos os comentários são bem-vindos.
15 Comentários.
Excelente relatório! Eu tentei construir algo semelhante, mas quando eu olho para ele depois de ver isso, eu apenas acho que meu aspecto é grosseiro! 🙂
Obrigado pela sua valiosa publicação.
Eu já crio algo semelhante com R e Sweave, mas não tão detalhado e bem avançado. Minha principal preocupação era criar um relatório em formato de paisagem.
Você sabe se é possível?
Você já pensou em fazer alguma coisa com HTML e Microsoft Word, por exemplo?
Obrigado pelas lindas palavras.
É definitivamente possível, é um comando LaTeX. Uma simples pesquisa do Google (paisagem + LaTeX) dá o seguinte: \ usepackage [landscape]
Existem muitas outras opções, é para o usuário escolher uma que melhor corresponda às suas necessidades.
Nunca pensei em HTML ou Word, no entanto, um aplicativo Shiny é definitivamente algo que tenho em mente por um tempo.
Espero que isto ajude.
Obrigado pela sua resposta. Eu vou tentar.
De acordo com o brilho, concordo com você, estou pensando em criar algo assim para o meu blog, mas não sei se pode ser adicionado facilmente, como um applet java, por exemplo, em uma página de blog . Todos os exemplos que eu vejo através da internet, eram páginas de internet completas.
Eu tentei usar o código usando o RStudio. No arquivo performanceReport_AssetAllocation. Rnw, acabei de alterar os parâmetros das funções source () e performanceReport () com base no meu diretório. Quando tentei compilar PDF, o RStudio reclamou:
Processando pedaços de código com opções & # 8230;
Chamadas: - & gt; SweaveParseOptions - & gt; verificar - & gt; match. arg.
Erro no rle (nomes de arquivos): & # 8216; x & # 8217; deve ser um vetor atômico.
Chamadas: - & gt; SweaveParseOptions - & gt; verificar - & gt; match. arg.
Eu fiz algo errado? Você poderia me ajudar? Muito obrigado!
Eu uso RStudio também e nunca encontrei esse erro, mas parece um erro LaTeX.
Muitas vezes eu tenho diferenças de formato quando executo o mesmo código no meu laptop e na minha área de trabalho. O que eu costumo fazer é executar o código LaTeX diretamente do TeXworks (assumindo que você está no Windows?). Você tentou isso?
Você também pode querer visualizar a formatação de números. O código que postei pressupõe que o formato dos números de retorno é & # 8220; 0,05% & # 8221 ;. Então, dentro do código R, isso é transformado em um formato legível por R.
Obrigado por sua resposta. No entanto, ainda não consigo executar o código. Verifiquei a formatação do número. É o mesmo que você assumiu (0,05%). Quando você diz que está executando o código LaTeX diretamente do TeXworks, qual é o código LaTeX aqui referido? Esse é o código gerado pela execução do arquivo Rnw? Quando eu executei o arquivo Rnw, o arquivo tex fornecido possui apenas o conteúdo semelhante ao arquivo Rnw até a linha \ maketitle.
Eu também tentei um simples arquivo Rnw:
Isso funciona bem. Isso pode excluir o erro LaTeX?
Alguma outra sugestão?
Eu tive um olhar mais atento sobre o seu problema e pode vir da sua configuração de opções dentro do RStudio.
Check in Ferramentas -> Opções -> Sweave. A partir daqui você pode escolher o Sweave ou o Knitr. Escolha o mais recente.
Knitr usa resultados = & # 8216; asis & # 8217; onde Sweave usa resultados = & # 8216; tex & # 8217; . Isso pode explicar sua mensagem de erro.
Deixe-me saber como vai.
Obrigado por sua resposta. Como você sugeriu, eu mudei a opção para o Knitr, já que os resultados foram configurados para & # 8220; asis & # 8221; no código original. No entanto, quando tentei compilar o pdf, o rstudio ainda corre em erros.
Linha 63 Seqüência de controle indefinida.
No arquivo pdf de saída, existe uma linha de leitura:
## Erro: não é possível abrir a conexão.
Mais sugestões? Obrigado!
Por favor, envie-me por correio electrónico thertrader @ gmail e nós teremos um olhar mais atento sobre ele.
Bom relatório, obrigado por compartilhar. é possível dar uma olhada na entrada csv? Eu tentei testá-lo com alguns dados do quantmod OHLC, mas tive problemas com a data. Obrigado,
Eu não posso compartilhar o arquivo csv porque ele contém informações proprietárias, mas posso ajudá-lo com a formatação da data.
Na linha 20 do desempenho do arquivoReportWithKnitr. R você obtém este & # 8220; as. Date (datas, & # 8220;% m /% d /% y & # 8221;) & # 8221; o que significa que eu uso o seguinte formato: & # 8220; 01/14/92 & # 8221 ;. Você pode alterar a entrada e manter meu código R inicial ou alterar o código R e manter sua entrada em seu formato atual. Você decide.
Você pode querer usar a versão mais recente do arquivo enquanto atualizo (mudanças menores) o repositório Gist periodicamente sem aviso prévio.
Espero que isto ajude.
Parece que & # 8220; dailyDD & lt; - as. vector (Drawdowns (dailyRtn / 100)) & quot; não funciona mais. Eu acho que a função Drawdowns foi substituída por findDrawdowns.
Você realmente está certo, eu notei algumas mudanças também, mas eu não atualizei o repositório Gist, I & # 8217; fá-lo em breve.
Relatório de desempenho das estratégias de negociação com R e Knitr.
Estive procurando relatórios de modelo usando R e Knitr por um tempo, mas não encontrei nada que corresponda às minhas necessidades até agora. Eu, portanto, decidi criar eles mesmo.
O que eu gosto de ver sobre as estratégias de negociação são os gráficos de desempenho básicos (diariamente, mensais e anuais), algumas estatísticas básicas de negócios e, acima de tudo, os números de desempenho mais recentes para acompanhar a potencial deterioração da estratégia. Eu também quero que todas as informações sejam exibidas em uma única página. Tudo isso já existe obviamente, mas não dentro de um relatório sintético como o que eu apresento aqui. Portanto, era necessária alguma formatação personalizada.
A entrada necessária para criar este relatório é um simples arquivo csv de 2 colunas com data e retorno diários. A saída é um arquivo pdf de boa aparência (veja a imagem abaixo).
Interpretando um Relatório de Desempenho Estratégico.
As plataformas de análise de mercado de hoje permitem que os comerciantes avaliem rapidamente o desempenho de um sistema comercial e avaliem sua eficiência e lucratividade potencial. Essas métricas de desempenho geralmente são exibidas em um relatório de desempenho de estratégia, uma compilação de dados com base em diferentes aspectos matemáticos do desempenho de um sistema. Quer olhe resultados hipotéticos ou dados comerciais reais, existem centenas de métricas de desempenho que podem ser usadas para avaliar um sistema de negociação.
Os comerciantes geralmente desenvolvem uma preferência pelas métricas que são mais úteis para seu estilo de negociação. Embora os comerciantes possam gravitar naturalmente em relação a um número - lucro líquido total, por exemplo - é importante compreender e analisar muitas das métricas de desempenho antes de tomar quaisquer decisões sobre a rentabilidade potencial do sistema. Saber o que procurar em um relatório de desempenho estratégico pode ajudar os comerciantes a analisar objetivamente os pontos fortes e fracos de um sistema. (Veja também: Tutorial de Sistemas de Negociação.)
Relatórios de desempenho da estratégia.
Um relatório de desempenho de estratégia é uma avaliação objetiva do desempenho de um sistema. Um conjunto de regras de negociação pode ser aplicado aos dados históricos para determinar como ele teria realizado durante o período especificado. Isso é chamado de backtesting e é uma ferramenta valiosa para comerciantes que desejam testar um sistema comercial antes de colocá-lo no mercado. A maioria das plataformas de análise de mercado permite que os comerciantes criem um relatório de desempenho da estratégia durante o teste. Os comerciantes também podem criar relatórios de desempenho estratégico para resultados comerciais reais.
A Figura 1 mostra um exemplo de um resumo de desempenho de um relatório de desempenho de estratégia que inclui uma variedade de métricas de desempenho. As métricas estão listadas no lado esquerdo do relatório; os cálculos correspondentes são encontrados no lado direito, separados em colunas.
Além do resumo de desempenho observado na Figura 1, os relatórios de desempenho da estratégia também podem incluir listas de comércio, retornos periódicos e gráficos de desempenho. A lista de comércio fornece uma conta de cada troca que foi realizada, incluindo informações como tipo de comércio (longo ou curto), data e hora, preço, lucro líquido, lucro acumulado e lucro por cento. A lista de comércio permite que os comerciantes vejam exatamente o que aconteceu durante cada comércio.
A exibição dos retornos periódicos de um sistema permite que os comerciantes vejam o desempenho dividido em segmentos diários, semanais, mensais ou anuais. Esta seção é útil na determinação de lucros ou perdas por um período de tempo específico. Os comerciantes podem avaliar rapidamente como um sistema está atuando diariamente, semanalmente, mensalmente ou anualmente. É importante lembrar que, na negociação, são os lucros acumulados (ou perdas) que importam. Olhar para um dia de negociação ou para uma semana de negociação não é tão significativo quanto a análise dos dados mensais e anuais.
Um dos métodos mais rápidos de análise do desempenho da estratégia é o gráfico de desempenho. Isso mostra os dados de comércio de várias maneiras, a partir de um gráfico de barras que mostra lucro líquido mensal para uma curva de equivalência patrimonial. De qualquer forma, o gráfico de desempenho fornece uma representação visual de todas as negociações no período, permitindo que os comerciantes avaliem rapidamente se um sistema está ou não em conformidade com os padrões. A Figura 2 mostra dois gráficos de desempenho: um como um gráfico de barras do lucro líquido mensal; o outro como uma curva de equidade. (Veja também: Traçando seu caminho para melhores retornos).
Métricas-chave.
Um relatório de desempenho da estratégia pode conter uma enorme quantidade de informações sobre o desempenho de um sistema comercial. Embora todas as estatísticas sejam importantes, é útil restringir o escopo inicial a cinco métricas principais de desempenho:
Lucro Líquido Líquido Fator de Lucro Percentual Rentável Média de Comércio Lucro Líquido Máximo Drawdown.
Essas cinco métricas fornecem um bom ponto de partida para testar um potencial sistema de negociação ou avaliar um sistema de negociação ao vivo.
Lucro líquido total: o lucro líquido total representa a linha inferior para um sistema de negociação durante um período de tempo especificado. Esta métrica é calculada subtraindo a perda bruta de todos os negócios perdidos (incluindo comissões) do lucro bruto de todas as negociações vencedoras. Na Figura 1, o lucro líquido total é calculado como:
Embora muitos comerciantes utilizem o lucro líquido total como o principal meio para medir o desempenho da negociação, a métrica pode ser enganosa. Por si só, esta métrica não pode determinar se um sistema de negociação está funcionando de forma eficiente, nem pode normalizar os resultados de um sistema de negociação com base na quantidade de risco que é sustentada. Embora seja uma métrica valiosa, o lucro líquido total deve ser visto em conjunto com outras métricas de desempenho. (Veja também: Lucrando em uma economia pós-recessão.)
Fator de lucro: o fator de lucro é definido como o lucro bruto dividido pela perda bruta (incluindo comissões) para todo o período de negociação. Esta métrica de desempenho relaciona a quantidade de lucro por unidade de risco, com valores superiores a um que indicam um sistema lucrativo. Como exemplo, o relatório de desempenho da estratégia mostrado na Figura 1 indica que o sistema de negociação testado tem um fator de lucro de 1,98. Isso é calculado dividindo o lucro bruto pela perda bruta:
Este é um fator de lucro razoável e significa que esse sistema específico produz lucro. Todos sabemos que nem todos os negócios serão um vencedor e que teremos de sustentar perdas. A métrica do fator de lucro ajuda os comerciantes a analisar o grau em que as vitórias são maiores do que as perdas.
A equação acima mostra o mesmo lucro bruto que a primeira equação, mas substitui um valor hipotético pela perda bruta. Nesse caso, a perda bruta é maior do que o lucro bruto, resultando em um fator de lucro inferior a um. Este seria um sistema perdedor.
Percentual rentável: a percentagem rentável também é conhecida como a probabilidade de ganhar. Esta métrica é calculada dividindo o número de negociações vencedoras pelo número total de negócios por um período especificado. No exemplo mostrado na Figura 1, a porcentagem rentável é calculada da seguinte forma:
O valor ideal para a métrica percentual rentável variará de acordo com o estilo do comerciante. Os comerciantes que costumam fazer movimentos maiores, com maiores lucros, requerem apenas um valor baixo e lucrativo para manter um sistema vencedor. Isso ocorre porque os negócios que ganham (que são lucrativos) geralmente são bastante amplos. Um bom exemplo disso é a tendência seguindo os comerciantes. Apenas 40% dos negócios podem ser rentáveis e ainda produzem um sistema muito lucrativo porque os negócios que ganham seguem a tendência e geralmente conseguem grandes ganhos. Os negócios que não ganham são geralmente fechados por uma pequena perda.
Os comerciantes intraday, e particularmente os scalpers, que procuram ganhar uma pequena quantia em qualquer comércio, enquanto arriscam uma quantia similar, exigirão uma métrica rentável com maior porcentagem para criar um sistema vencedor. Isto é devido ao fato de que os negócios vencedores tendem a ser próximos de valor para os negócios perdidos; para "avançar", é necessário que haja um percentual significativamente mais alto lucrativo. Em outras palavras, mais trades precisam ser vencedores, uma vez que cada vitória é relativamente pequena. (Veja também: Scalping: Pequenos lucros rápidos podem ser adicionados.)
Média do lucro líquido comercial: o lucro líquido médio do comércio é a expectativa do sistema: representa o valor médio de dinheiro que foi ganho ou perdido por comércio. O lucro líquido comercial médio é calculado dividindo o lucro líquido total pelo número total de negócios. No nosso exemplo da Figura 1, o lucro médio comercial líquido é calculado da seguinte forma:
Em outras palavras, ao longo do tempo, poderíamos esperar que cada comércio gerado por este sistema seja de US $ 452,79. Isso leva em consideração os negócios vencedores e perdidos, uma vez que se baseia no lucro líquido total.
Este número pode ser desviado por um valor de valor, um único comércio que cria um lucro (ou perda) muitas vezes maior do que um comércio típico. Um outlier pode criar resultados irrealistas, superinflando o lucro líquido médio comercial. Um outlier pode fazer com que um sistema apareça significativamente mais (ou menos) lucrativo do que estatisticamente. O outlier pode ser removido para permitir uma avaliação mais precisa. Se o sucesso do sistema de negociação em backtesting depende de um outlier, o sistema precisa ser melhorado.
Drawdown máximo: a métrica de retirada máxima refere-se ao "pior cenário possível" para um período de negociação. Ele mede a maior distância, ou perda, de um pico patrimonial anterior. Esta métrica pode ajudar a medir a quantidade de risco incorrida por um sistema e determinar se um sistema é prático com base no tamanho da conta. Se a maior quantia de dinheiro que um comerciante esteja disposta a arriscar seja menor que a redução máxima, o sistema de negociação não é adequado para o comerciante. Um sistema diferente, com uma redução máxima menor, deve ser desenvolvido.
Esta métrica é importante porque é uma verificação de realidade para os comerciantes. Apenas um comerciante poderia fazer um milhão de dólares - se eles pudessem arriscar 10 milhões. A métrica de retirada máxima precisa estar alinhada com a tolerância ao risco do comerciante e o tamanho da conta de negociação. (Veja também: Proteja-se da perda de mercado).
The Bottom Line.
Os relatórios de desempenho da estratégia, seja aplicado a resultados de negociação históricos ou ao vivo, podem fornecer uma ferramenta poderosa para auxiliar os comerciantes na avaliação de seus sistemas de negociação. Embora seja fácil prestar atenção apenas ao resultado final, ou ao lucro líquido total - todos queremos saber quanto dinheiro faz um sistema - métricas de desempenho adicionais podem fornecer uma visão mais abrangente do desempenho de um sistema. (Veja também: Crie suas próprias estratégias de negociação.)
No comments:
Post a Comment