Thursday, 13 July 2017

Estratégia De Negociação De Pares Matlab


Estratégia de negociação de pares MATLAB


Esta demonstração usa o MATLAB e a Caixa de Ferramentas de Desenvolvimento de Análise Técnica (TA) para criar e testar uma estratégia de negociação de pares. A caixa de ferramentas Developer TA complementa as caixas de ferramentas de finanças computacionais existentes adicionando funcionalidades de backtesting avançadas como backtesting de portfólio, cálculo de métricas comerciais padrão e uma interface gráfica interativa que permite a aplicação de indicadores técnicos via drapdrop.


Exemplo: Austrália - Canadá spread


Este primeiro passo na criação de uma estratégia de negociação de pares é escolher dois instrumentos financeiros que são historicamente correlacionados. A estratégia de negociação de pares tira proveito da divergência de curto prazo entrando uma posição curta em um instrumento e uma posição longa na outra. A estratégia assume que o par irá convergir no longo prazo. Por ser curto em um instrumento e longo no instrumento correlacionado esta estratégia é neutra no mercado. Por exemplo, se o mercado acionário trava lucros de curto-circuito um instrumento deve compensar as perdas da posição longa. Nesta demonstração usamos o fato de que a Austrália eo Canadá são dois países ricos em recursos que têm uma correlação econômica e estatística como explicado aqui:


Baixando os dados


Para a estratégia de negociação de pares usamos o iShares MSCI Australia Index (EWA) como um proxy para a economia australiana eo iShares MSCI Canada Index (EWC) como um proxy para a economia canadense. Os dados podem ser baixados do Yahoo finance usando o script getyahoo10.m da troca de arquivos MATLAB. Getyahoo10.m downloads de 10 anos de dados diários do Yahoo finance e salva os arquivos baixados no diretório especificado.


Os dados baixados podem então ser importados para a TA Developer Toolbox, conforme descrito aqui:


Criando uma nova estratégia m-file


Uma estratégia de negociação consiste em uma função MATLAB com um único parâmetro chamado sys. O parâmetro sys contém dados do sistema de negociação como os preços abertos, altos, baixos e fechados de um estoque ou de um futuro. Vamos adicionar regras de negociação de entrada e saída para este m-arquivo de estratégia de negociação. Nenhuma escrita adicional do código de backtesting é necessária. O back-end e a avaliação de desempenho são todos tratados pela Technical Analysis (TA) Developer Toolbox. A estratégia de negociação vazia deve ser semelhante a este e servidores como ponto de partida para cada estratégia de negociação.


Definição dos símbolos primário e secundário


Em nossa estratégia de negociação começamos com a definição dos nomes dos símbolos dos instrumentos primários e secundários, bem como o nome da lista de vigia que foi selecionada durante a importação de dados. Colocar esses valores em variáveis ​​permite ajustar facilmente a estratégia para outros pares mais tarde.


Parâmetros de negociação


Os parâmetros de negociação podem ser usados ​​em uma varredura de parâmetros. Se não estivermos executando uma varredura de parâmetro, esses parâmetros serão padrão para o segundo parâmetro passado para a função 'GetTradingParameter'.


Calculando e traçando a relação, média, desvio padrão e pontuação z


A relação entre o ensino primário (EWA) eo secundário (EWC)


Desvio padrão


Calcule o z-score e trace os limiares. A pontuação z indica quantos desvios-padrão uma observação está acima ou abaixo da média.


Os sinais primários de entrada e saída


ZScoreUpper padrão é 1.5 e ZScoreLower padrão 1. Assim, inserimos uma posição curta no primário (EWA) quando o z-score excede 1,5 desvio padrão (linha vermelha superior) e sair da posição curta quando o z-score cai abaixo de 1 padrão Desvio (linha verde superior).


Adicione a posição longa quando a pontuação z cai abaixo de -1,5 desvio padrão (linha vermelha inferior) e saia da posição longa quando a pontuação z sobe acima de -1 desvio padrão (linha verde inferior).


Entrada secundária e sinais de saída


Mude para o contexto secundário (EWC). Todas as funções chamadas após 'SwitchSymbol' são executadas no símbolo secordary até que 'RestoreSymbol' é chamado.


Backtesting da estratégia


Digite 'tadeveloper' no prompt de comando MATLAB para abrir a interface do usuário gráfica do desenvolvedor TA. Clique em Arquivo & gt; Abrir no menu e navegue até o local onde você salvou a estratégia PairsTradingStrategy. m e abra o arquivo.


Antes de executar a estratégia, precisamos definir alguns parâmetros primeiro. No canto inferior direito está uma janela chamada Propriedades. Esta janela contém importantes parâmetros de execução. Definiremos o capital inicial para a simulação como 100000. O tipo de posição é definido como "Porcentagem" eo valor da posição é definido como 50, o que significa que 50% do capital disponível é usado por comércio.


Certifique-se de que o nó da raiz da lista de observação esteja selecionado na janela Símbolos. Você deve ver o painel de backtest. Pressione o botão verde Play para iniciar a simulação.


Avaliação de desempenho


Quando a estratégia foi executada com êxito, a guia "Estatísticas" fica disponível. Ele mostra várias métricas de negociação, como o retorno anualizado, Sharpe Ratio, Rácio Sortino, índice de úlcera, número de negócios e muitos mais. Essas métricas são divididas em 'All' (para todos os comércios simulados), 'Long' (somente comércios longos) e 'Short' (apenas com operações curtas). Além da página de métricas, uma lista de todas as operações executadas e uma curva de patrimônio são calculadas e exibidas.


Varredura de parâmetros


Até agora, usamos 1,5 como um limiar superior e 1 como um limiar mais baixo para o z-score entrar e sair da nossa posição spread. O MATLAB facilita a execução de uma varredura de parâmetros para executar um número de valores para determinar os valores de parâmetros ótimos. As etapas envolvidas na execução de uma varredura de parâmetro são explicadas aqui MATLAB Algo Trading sob o subtítulo 'Parmeter Optimization'.


Executamos uma varredura de parâmetros e definimos o intervalo para o limiar limite inferior de 0 a 1 eo intervalo para o limite superior de limiar de 1 a 2. Como variável para otimizar, escolhemos o Índice de Sharpe, mas qualquer outra métrica (por exemplo, Lucro Total , Sortino Ratio etc) poderia ser usado. O resultado pode ser visto no gráfico Surface / Contour abaixo.


Estratégia de negociação de pares MATLAB


Esta demonstração usa o MATLAB e a Caixa de Ferramentas de Desenvolvimento de Análise Técnica (TA) para criar e testar uma estratégia de negociação de pares. A caixa de ferramentas Developer TA complementa as caixas de ferramentas de finanças computacionais existentes adicionando funcionalidades de backtesting avançadas como backtesting de portfólio, cálculo de métricas comerciais padrão e uma interface gráfica interativa que permite a aplicação de indicadores técnicos via drapdrop.


Exemplo: Austrália - Canadá spread


Este primeiro passo na criação de uma estratégia de negociação de pares é escolher dois instrumentos financeiros que são historicamente correlacionados. A estratégia de negociação de pares tira proveito da divergência de curto prazo entrando uma posição curta em um instrumento e uma posição longa na outra. A estratégia assume que o par irá convergir no longo prazo. Por ser curto em um instrumento e longo no instrumento correlacionado esta estratégia é neutra no mercado. Por exemplo, se o mercado acionário trava lucros de curto-circuito um instrumento deve compensar as perdas da posição longa. Nesta demonstração usamos o fato de que a Austrália eo Canadá são dois países ricos em recursos que têm uma correlação econômica e estatística como explicado aqui:


Baixando os dados


Para a estratégia de negociação de pares usamos o iShares MSCI Australia Index (EWA) como um proxy para a economia australiana eo iShares MSCI Canada Index (EWC) como um proxy para a economia canadense. Os dados podem ser baixados do Yahoo finance usando o script getyahoo10.m da troca de arquivos MATLAB. Getyahoo10.m downloads de 10 anos de dados diários do Yahoo finance e salva os arquivos baixados no diretório especificado.


Os dados baixados podem então ser importados para a TA Developer Toolbox, conforme descrito aqui:


Criando uma nova estratégia m-file


Uma estratégia de negociação consiste em uma função MATLAB com um único parâmetro chamado sys. O parâmetro sys contém dados do sistema de negociação como os preços abertos, altos, baixos e fechados de um estoque ou de um futuro. Vamos adicionar regras de negociação de entrada e saída para este m-arquivo de estratégia de negociação. Nenhuma escrita adicional do código de backtesting é necessária. O back-end e a avaliação de desempenho são todos tratados pela Technical Analysis (TA) Developer Toolbox. A estratégia de negociação vazia deve ser semelhante a este e servidores como ponto de partida para cada estratégia de negociação.


Definição dos símbolos primário e secundário


Em nossa estratégia de negociação começamos com a definição dos nomes dos símbolos dos instrumentos primários e secundários, bem como o nome da lista de vigia que foi selecionada durante a importação de dados. Colocar esses valores em variáveis ​​permite ajustar facilmente a estratégia para outros pares mais tarde.


Parâmetros de negociação


Os parâmetros de negociação podem ser usados ​​em uma varredura de parâmetros. Se não estivermos executando uma varredura de parâmetro, esses parâmetros serão padrão para o segundo parâmetro passado para a função 'GetTradingParameter'.


Calculando e traçando a relação, média, desvio padrão e pontuação z


A relação entre o ensino primário (EWA) eo secundário (EWC)


Desvio padrão


Calcule o z-score e trace os limiares. A pontuação z indica quantos desvios-padrão uma observação está acima ou abaixo da média.


Os sinais primários de entrada e saída


ZScoreUpper padrão é 1.5 e ZScoreLower padrão 1. Assim, inserimos uma posição curta no primário (EWA) quando o z-score excede 1,5 desvio padrão (linha vermelha superior) e sair da posição curta quando o z-score cai abaixo de 1 padrão Desvio (linha verde superior).


Adicione a posição longa quando a pontuação z cai abaixo de -1,5 desvio padrão (linha vermelha inferior) e saia da posição longa quando a pontuação z sobe acima de -1 desvio padrão (linha verde inferior).


Entrada secundária e sinais de saída


Mude para o contexto secundário (EWC). Todas as funções chamadas após 'SwitchSymbol' são executadas no símbolo secordary até que 'RestoreSymbol' é chamado.


Backtesting da estratégia


Digite 'tadeveloper' no prompt de comando MATLAB para abrir a interface do usuário gráfica do desenvolvedor TA. Clique em Arquivo & gt; Abrir no menu e navegue até o local onde você salvou a estratégia PairsTradingStrategy. m e abra o arquivo.


Antes de executar a estratégia, precisamos definir alguns parâmetros primeiro. No canto inferior direito está uma janela chamada Propriedades. Esta janela contém importantes parâmetros de execução. Definiremos o capital inicial para a simulação como 100000. O tipo de posição é definido como "Porcentagem" eo valor da posição é definido como 50, o que significa que 50% do capital disponível é usado por comércio.


Certifique-se de que o nó da raiz da lista de observação esteja selecionado na janela Símbolos. Você deve ver o painel de backtest. Pressione o botão verde Play para iniciar a simulação.


Avaliação de desempenho


Quando a estratégia foi executada com êxito, a guia "Estatísticas" fica disponível. Ele mostra várias métricas comerciais como o retorno anualizado, Sharpe Ratio, Rácio Sortino, índice de úlcera, número de negócios e muitos mais. Essas métricas são divididas em 'All' (para todos os comércios simulados), 'Long' (somente comércios longos) e 'Short' (apenas com operações curtas). Além da página de métricas, uma lista de todas as operações executadas e uma curva de patrimônio são calculadas e exibidas.


Varredura de parâmetros


Até agora, usamos 1,5 como um limiar superior e 1 como um limiar mais baixo para o z-score entrar e sair da nossa posição spread. O MATLAB facilita a execução de uma varredura de parâmetros para executar um número de valores para determinar os valores de parâmetros ótimos. As etapas envolvidas na execução de uma varredura de parâmetro são explicadas aqui MATLAB Algo Trading sob o subtítulo 'Parmeter Optimization'.


Executamos uma varredura de parâmetros e definimos o intervalo para o limiar limite inferior de 0 a 1 eo intervalo para o limite superior de limiar de 1 a 2. Como variável para otimizar, escolhemos o Índice de Sharpe, mas qualquer outra métrica (por exemplo, Lucro Total , Sortino Ratio etc) poderia ser usado. O resultado pode ser visto no gráfico Surface / Contour abaixo.

No comments:

Post a Comment