Friday, December 9, 2016

Forex Svm

Por fim, todas as estrelas se alinharam e eu posso dedicar com confiança algum tempo para back-testing de novos sistemas de negociação, e Suporte Vector Machines (SVM) são o novo 8220toy8221 que vai me manter ocupado por um tempo. As SVMs são uma ferramenta bem conhecida da área de Aprendizagem Automática supervisionada. E eles são usados ​​tanto para classificação e regressão. Para mais detalhes consulte a literatura. Parece-me que a aplicação mais intuitiva para a negociação é a regressão, por isso let8217s começar por construir um modelo de regressão SVM. Seguindo nossa experiência com os modelos ARMAGARCH, vamos começar tentando prever retornos, em vez de preços. Da mesma forma, em nossos primeiros testes, usaremos apenas os retornos dos 5 dias anteriores como as características que determinam o retorno de um determinado dia. Vamos começar com o histórico de 500 dias como o conjunto de treinamento. Em termos mais matemáticos, para o conjunto de treinamento temos N características, para cada um deles temos M amostras. Temos também respostas M. Dada uma linha de valores de característica, a matriz esquerda, o SVM é treinado para produzir o valor de resposta. Em nosso exemplo específico, temos cinco colunas (características), cada coluna correspondente aos retornos com um retardo diferente (de 1 a 5). Temos 500 amostras e as respostas correspondentes. Uma vez que o SVM é treinado sobre este conjunto, podemos começar a alimentá-lo com conjuntos de cinco recursos, correspondente aos retornos para os cinco dias anteriores, eo SVM irá fornecer-nos com a resposta, que é o retorno previsto. Por exemplo, após o treinamento do SVM nos 500 dias anteriores, usaremos os retornos para os dias 500, 499, 498, 497 e 496 (estes são nossos como 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 eu ainda estou planejando para tentar no futuro. Então eu tentei algumas estratégias. Primeiro eu tentei algo muito semelhante à abordagem ARMAGARCH 8211 a Lag retorna dos cinco dias anteriores. Eu fiquei bastante surpreso ao ver esta estratégia de desempenho melhor do que o ARMAGARCH (esta é a terra natal do ARMAGARCH e eu teria sido muito 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 interativamente adicionando o recurso que minimiza o erro melhor. Esta abordagem melhorou as coisas ainda. Finalmente, eu tentei uma abordagem diferente com cerca de Uma dúzia de recursos. As características incluídas retornam ao longo do período de tempo diferente (1-dia, 2-dia, 5-dia, etc), algumas estatísticas (média, mediana, sd, etc) e volume. Eu usei a mesma abordagem ávida para selecionar recursos. Este sistema final mostrou um desempenho muito bom também, mas demorou um inferno de um tempo para correr. Tempo para terminar este post, os resultados de back-testing tem que esperar. Até então você pode jogar com o código-fonte completo sozinho. Aqui está um exemplo de como usá-lo: Nunca perca uma atualização Subscreva os R-blogueiros para receber e-mails com as últimas postagens R. (Você não verá esta mensagem novamente.)


No comments:

Post a Comment