Saturday, 11 November 2017

Usando algoritmos genéticos em negociação quantitativa


Usando Algoritmos Genéticos em Negociação Quantitativa


A pergunta que se deve sempre fazer quando se utilizam indicadores técnicos é o que seria um critério objetivo para selecionar parâmetros de indicadores (por exemplo, por que usar um RSI de 14 dias em vez de 15 ou 20 dias?). Algoritmos genéticos (GA) são ferramentas bem adaptadas para responder a essa pergunta. Neste post Ill mostrar-lhe como configurar o problema em R. Antes de prosseguir o lembrete habitual: O que eu apresento neste post é apenas um exemplo de brinquedo e não um convite para investir. Não é uma estratégia acabada, mas uma idéia de pesquisa que precisa ser mais pesquisada, desenvolvida e adaptada às necessidades individuais.


O que são algoritmos genéticos?


A melhor descrição de GA que eu encontrei vem de Cybernatic Trading um livro de Murray A. Ruggiero. 8220, Algoritmos Genéticos foram inventados por John Holland em meados de 1970 para resolver problemas de otimização dura. Este método utiliza a seleção natural, sobrevivência do fittest8221 ;. O processo geral segue os passos abaixo:


Codificar o problema em cromossomos


Usando a codificação, desenvolver uma função de fitness para uso na avaliação de cada valor de cromossomos na resolução de um determinado problema


Inicializar uma população de cromossomos


Avaliar cada cromossomo na população


Crie novos cromossomos acoplando dois cromossomos. Isto é feito por muting e recombinando dois pais para formar duas crianças (os pais são selecionados aleatoriamente, mas tendenciosa pela sua aptidão)


Avaliar o novo cromossomo


Excluir um membro da população que é menos apto do que o novo cromossomo e inserir o novo cromossomo na população.


Se o critério de paragem é atingido (número máximo de gerações, os critérios de aptidão são bons o suficiente8230;), em seguida, retornar o melhor cromossomo ou vá para o passo 4


De uma perspectiva de negociação GA são muito úteis porque eles são bons em lidar com problemas altamente não-lineares. No entanto, eles apresentam algumas características desagradáveis ​​que vale a pena mencionar:


Over fitting: Este é o principal problema e seu baixo para o analista para configurar o problema de uma forma que minimize esse risco.


Tempo de computação. Se o problema não é definido corretamente, pode ser extremamente longo para chegar a uma solução decente ea complexidade aumenta exponencialmente com o número de variáveis. Daí a necessidade de selecionar cuidadosamente os parâmetros.


Existem vários pacotes R que tratam de GA, eu escolhi usar o mais comum: rgenoud


Os preços de fechamento diários para a maioria dos ETFs líquidos do Yahoo finance remontam a janeiro de 2000. O período da amostra vai de janeiro de 2000 a dezembro de 2010. O período de Saída do período de amostra começa em janeiro de 2017.


A lógica é a seguinte: a função de aptidão é otimizada sobre o período de amostragem para obter um conjunto de parâmetros ótimos para os indicadores técnicos selecionados. O desempenho desses indicadores é então avaliado no período fora da amostra. Mas antes disso, os indicadores técnicos precisam ser selecionados.


O mercado de ações apresenta duas características principais que são familiares a qualquer pessoa com alguma experiência de negociação. Momento de longo prazo e inversão de curto prazo. Esses recursos podem ser traduzidos em termos de indicadores técnicos por: cruzamento de médias móveis e RSI. Isso representa um conjunto de 4 parâmetros: Períodos de retorno para médias móveis de longo e curto prazo, período de retrocesso para o limiar RSI e RSI. Os conjuntos de parâmetros são os cromossomos. O outro elemento-chave é a função fitness. Podemos querer usar algo como: retorno máximo ou Sharpe ratio ou Drawdown média mínima. No que segue, eu escolhi maximizar a relação de Sharpe.


A implementação R é um conjunto de 3 funções:


FitnessFunction. Define a função de aptidão (por exemplo, a razão de Sharpe máxima) a ser utilizada dentro do motor GA


TradingStatistics. Resumo das estatísticas de negociação para os períodos de entrada e saída de períodos de amostragem para fins de comparação


Genoud. O motor GA do pacote rgenoud


A função genoud é bastante complexa, mas eu não vou explicar o que significa cada parâmetro como eu quero manter este post curto (ea documentação é realmente bom).


Na tabela abaixo, apresentamos para cada instrumento os parâmetros ótimos (RSI, RSI, Média Móvel de Curto Prazo e Média Móvel de Longo Prazo) juntamente com as estatísticas de negociação de entrada e saída da amostra.


Usando Algoritmos Genéticos em Negociação Quantitativa


(Este artigo foi publicado pela primeira vez em The R Trader »R. e gentilmente contribuiu para R-blogueiros)


A pergunta que se deve sempre fazer quando se utilizam indicadores técnicos é o que seria um critério objetivo para selecionar parâmetros de indicadores (por exemplo, por que usar um RSI de 14 dias em vez de 15 ou 20 dias?). Algoritmos genéticos (GA) são ferramentas bem adaptadas para responder a essa pergunta. Neste post Ill mostrar-lhe como configurar o problema em R. Antes de prosseguir o lembrete habitual: O que eu apresento neste post é apenas um exemplo de brinquedo e não um convite para investir. Não é uma estratégia acabada, mas uma idéia de pesquisa que precisa ser mais pesquisada, desenvolvida e adaptada às necessidades individuais.


O que são algoritmos genéticos?


A melhor descrição de GA que eu encontrei vem de Cybernatic Trading um livro de Murray A. Ruggiero. 8221; Genetic Algorithms foram inventados por John Holland em meados de 1970 para resolver problemas de otimização dura. Este método utiliza a seleção natural, sobrevivência do fittest8221 ;. O processo geral segue os passos abaixo:


Codificar o problema em cromossomos


Usando a codificação, desenvolver uma função de fitness para uso na avaliação de cada valor de cromossomos na resolução de um determinado problema


Inicializar uma população de cromossomos


Avaliar cada cromossomo na população


Crie novos cromossomos acoplando dois cromossomos. Isto é feito por muting e recombinando dois pais para formar duas crianças (os pais são selecionados aleatoriamente, mas tendenciosa pela sua aptidão)


Avaliar o novo cromossomo


Excluir um membro da população que é menos apto do que o novo cromossomo e inserir o novo cromossomo na população.


Se o critério de paragem é atingido (número máximo de gerações, os critérios de aptidão são bons o suficiente8230;), em seguida, retornar o melhor cromossomo ou vá para o passo 4


De uma perspectiva de negociação GA são muito úteis porque eles são bons em lidar com problemas altamente não-lineares. No entanto, eles apresentam algumas características desagradáveis ​​que vale a pena mencionar:


Over fitting: Este é o principal problema e seu baixo para o analista para configurar o problema de uma forma que minimize esse risco.


Tempo de computação. Se o problema não é definido corretamente, pode ser extremamente longo para chegar a uma solução decente ea complexidade aumenta exponencialmente com o número de variáveis. Daí a necessidade de selecionar cuidadosamente os parâmetros.


Existem vários pacotes R que tratam de GA, eu escolhi usar o mais comum: rgenoud


Os preços de fechamento diários para a maioria dos ETFs líquidos do Yahoo finance remontam a janeiro de 2000. O período da amostra vai de janeiro de 2000 a dezembro de 2010. O período de Saída do período de amostra começa em janeiro de 2017.


A lógica é a seguinte: a função de aptidão é otimizada sobre o período de amostragem para obter um conjunto de parâmetros ótimos para os indicadores técnicos selecionados. O desempenho desses indicadores é então avaliado no período fora do período de amostragem. Mas antes disso, os indicadores técnicos precisam ser selecionados.


O mercado de ações apresenta duas características principais que são familiares a qualquer pessoa com alguma experiência de negociação. Momento de longo prazo e inversão de curto prazo. Esses recursos podem ser traduzidos em termos de indicadores técnicos por: cruzamento de médias móveis e RSI. Isso representa um conjunto de 4 parâmetros: Períodos de retorno para médias móveis de longo e curto prazo, período de retrocesso para o limiar RSI e RSI. Os conjuntos de parâmetros são os cromossomos. O outro elemento-chave é a função fitness. Podemos querer usar algo como: retorno máximo ou Sharpe ratio ou Drawdown média mínima. No que segue, eu escolhi maximizar a relação de Sharpe.


A implementação R é um conjunto de 3 funções:


FitnessFunction. Define a função de aptidão (por exemplo, a razão de Sharpe máxima) a ser utilizada dentro do motor GA


TradingStatistics. Resumo das estatísticas de negociação para os períodos de entrada e saída de períodos de amostragem para fins de comparação


Genoud. O motor GA do pacote rgenoud


A função genoud é bastante complexa, mas eu não vou explicar o que significa cada parâmetro como eu quero manter este post curto (ea documentação é realmente bom).


Na tabela abaixo, apresentamos para cada instrumento os parâmetros ótimos (RSI, RSI, Média Móvel de Curto Prazo e Média Móvel de Longo Prazo) juntamente com as estatísticas de negociação de entrada e saída da amostra.

No comments:

Post a Comment