Wednesday 16 August 2017

Forex Svm


Negociando com máquinas de vetor de suporte (SVM) Finalmente, todas as estrelas se alinharam e devo dedicar algum tempo para testar novamente os novos sistemas de negociação e as Máquinas de vetor de suporte (SVM) são o novo 8220toy8221 que me manterá ocupado por um enquanto. Os SVMs são uma ferramenta bem conhecida da área de Aprendizado de Máquinas supervisionado. E eles são usados ​​tanto para classificação quanto para regressão. Para mais detalhes, consulte a literatura. Parece-me que a aplicação mais intuitiva para negociação é a regressão, então let8217s começam pela construção de um modelo de regressão SVM. Seguindo nossa experiência com os modelos ARMAGARCH, começaremos tentando prever os retornos, em vez dos preços. Da mesma forma, em nossos primeiros testes, usaremos apenas os retornos dos últimos 5 dias como características que determinam o retorno de um determinado dia. Começaremos com história de 500 dias como o conjunto de treinamento. Em termos mais matemáticos, para o conjunto de treinamento, temos recursos N, para cada um deles temos M amostras. Nós também temos respostas M. Dada uma linha de valores de característica, a matriz esquerda, o SVM é treinado para produzir o valor de resposta. No nosso exemplo específico, temos cinco colunas (características), cada coluna correspondente aos retornos com atraso diferente (de 1 a 5). Temos 500 amostras e as respostas correspondentes. Uma vez que o SVM é treinado neste conjunto, podemos começar a alimentá-lo com conjuntos de cinco recursos, correspondentes aos retornos dos cinco dias anteriores, e o SVM nos fornecerá a resposta, qual é o retorno previsto. Por exemplo, depois de treinar o SVM nos 500 dias anteriores, usaremos os retornos para os dias 500, 499, 498, 497 e 496 (estes são nossos como a entrada para obter o retorno previsto para o dia 501. De todos os pacotes disponíveis Em R, eu decidi escolher o pacote e1071. Uma segunda escolha foi o pacote kernlab, que ainda estou planejando tentar no futuro. Então tentei algumas estratégias. Primeiro tentei algo muito parecido com a abordagem ARMAGARCH 8211 o Retornaram os retornos dos cinco dias anteriores. Fiquei bastante surpreso ao ver esta estratégia ter melhor desempenho do que a ARMAGARCH (esta é a terra natal do ARMAGARCH e eu teria ficado bastante feliz apenas com desempenho comparável) Em seguida, tentei o mesmo cinco Mas tentando selecionar o melhor subconjunto. A seleção foi feita usando uma abordagem gananciosa, começando com 0 recursos e adicionando de forma interativa o recurso que minimiza melhor o erro. Esta abordagem aprimorou ainda mais as coisas. Finalmente, tentei uma abordagem diferente H com cerca de uma dúzia de recursos. Os recursos incluíram retornos em diferentes períodos de tempo (1 dia, 2 dias, 5 dias, etc.), algumas estatísticas (média, mediana, sd, etc.) e volume. Eu usei a mesma abordagem gananciosa para selecionar recursos. Este sistema final também mostrou um excelente desempenho, mas demorou um momento para correr. Hora de terminar esta publicação, os resultados dos back-testing devem aguardar. Até então você pode jogar com o código-fonte completo você mesmo. Aqui é um exemplo de usá-lo: Nunca perca uma atualização Inscreva-se para R-bloggers para receber e-mails com as últimas postagens R. (Você não verá esta mensagem novamente.) Negociação com SVMs: Desempenho Para obter uma sensação de desempenho SVM na negociação, executo configurações diferentes nos dados históricos S038P 500 de 8230 nos anos 50. O motivo principal por trás de usar essa década foi decidir quais parâmetros variar e o que manter constante antes de executar os testes mais importantes. Trate-o como um teste de 8220in-amostra8221 para evitar (mais) o excesso de ajuste. Primeiro, o gráfico de desempenho: S038P 500 Desempenho de Negociação Muito bom O uso dos 5 retornos diários remanescentes mostra um desempenho semelhante à estratégia ARMAGARCH, que eu achei muito promissor. Se você se perguntar por que estou tão entusiasmado com esse fato, it8217s porque aqui estamos na área em que o ARMAGARCH é o melhor e, no entanto, os SVMs mostram desempenho comparável. As estatísticas também são impressionantes: ao escrever esta publicação, encontrei outro esforço para usar SVMs na negociação pelo Quantum Financier. Sua abordagem usa RSI de comprimento diferente como entrada para o SVM, mas também usa classificação (mapeia os retornos para dois valores, curto ou longo) em vez de regressão. Como eu planejava testar a classificação de qualquer maneira, seu post me inspirou a implementá-lo e executar uma comparação adicional, regressão vs classificação: S038P 500 SVM Trading 8211 Regressão vs Classificação O que posso dizer 8211, ambos parecem funcionar perfeitamente. Como um leitor sugeriu nos comentários, a Classificação exibe retornos mais consistentes. Olhando para a mesa, a classificação reduziu a metade da redução máxima, mas, curiosamente, não melhorou a proporção Sharpe significativamente. Nada conclusivo aqui, porém, foi uma rápida execução das estratégias mais rápidas (em termos de tempo de execução). Ainda há uma longa lista de tópicos a explorar, apenas para lhe dar uma ideia, sem nenhuma ordem específica: Adicione outros recursos. Principalmente pensando em adicionar algumas séries relacionadas ao Fed, esses dados remontam a 1960, portanto, em breve. :) Experimente outros parâmetros de svm: outras regressões, outras classificações, outros kerenls, etc. Isso é mais como um teste de estabilidade. Experimente outras funções de erro. O padrão é usar o erro quadrático médio, mas no caso de regressão, por que não usar Razão Sharpe (na amostra). O caso de regressão é mais simples, uma vez que temos os retornos reais 8211 verificar a entrada de tune. control. Experimente períodos mais longos em vez de dias. Weekly é um começo, mas idealmente eu gostaria de implementar períodos de dois ou três dias. Varie o período de loopback. Use mais classes com classificação: dias grandes, dias médios, etc. Isso levará tempo. Como sempre, comentários e comentários são bem-vindos. Para deixar um comentário para o autor, siga o link e comente seu blog: Quintuitive R. Se você chegar tão longe, por que não se inscrever para atualizações do site Escolha o seu sabor: e-mail. Twitter. RSS. Ou facebook. Nunca perca uma atualização Assine os R-bloggers para receber e-mails com as últimas postagens R. (Você não verá esta mensagem novamente).

No comments:

Post a Comment