Sunday 29 October 2017

Trading strategies matlab


Enquanto eu gosto de onde essa questão está indo, eu sugeriria torná-la um pouco mais concreta. Quais as partes do processo de backtesting que você gostaria de aprender. Isso pode variar em qualquer lugar, apenas estimando um retorno normal, onde o retorno da carteira de sua estratégia já está sendo dado para implementar uma regra de formação de portfólio completa algorítmica. Ndash Constantin 30 de dezembro 14 às 21:06 Para ser sincero, não sei muito sobre o teste. Foi-me dito que terei que testar novas estratégias ou melhorar as atuais durante o meu estágio. Então, eu gostaria de saber um pouco mais sobre o assunto antes de começar. Quais são as diferentes partes disso. Ndash Maxime 30 de dezembro 14 às 21:31 A idéia geral Para títulos de capital, um backtest simples geralmente consistirá em duas etapas: Computação do retorno de carteira resultante da sua regra de formação de portfólio (ou estratégia de negociação) Ajuste de risco de retornos de portfólio usando um Modelo de preços de ativos O Passo 2 é simplesmente uma regressão e computacionalmente muito simples em Matlab. O que é mais complicado é a implementação da etapa 1, que exigirá que você fique muito confortável em Matlab, e existem maneiras diferentes de fazer isso. Se você sabe como fazer uma regressão OLS em Matlab, o que você deve focar é todo tipo de manipulações de matriz. Implementação na Matlab Formação de carteiras e computação de retorno Para dar-lhe um exemplo de como uma estratégia de negociação primitiva poderia ser implementada na Matlab, podemos assumir dados de retorno mensais e um período de retenção uniforme de um mês em n ativos em mais de k períodos, onde i in e k dentro . Supondo que não há mudanças na composição do seu universo de ações, sua matriz de retorno X é de dimensões k vezes n. X começam x ampères ampères ampères ampères ampères x ampères ampères ampères ampères vds ampères ampères vpots x ampères ampères ampères ampères ampères ampères x ampères ampères ampères vdots amp ddps amp vdots x ampères ampères ampères ampères x amp x fim Onde retorna São calculados como x frac -1. Supondo que seu critério de seleção seja algum tipo de característica de estoque que esteja disponível na freqüência mensal, você também terá uma matriz de características C. Você então poderia escrever um algoritmo que identifique as entradas em C que atendem seu critério de seleção (por exemplo, exceder um determinado limite ) E substitua as entradas correspondentes (onde i e t são iguais) de uma matriz indicadora I (que foi inicializada como uma matriz zero usando a função zeros) com as. Você pode então multiplicar as entradas de I pela da matriz de retorno X para obter uma matriz R que indique os retornos resultantes de suas participações. Você pode então calcular a média das entradas não-zero para cada linha de R para obter seu vetor de retornos de portfólio. Ajuste de risco e identificação de retornos anormais Na etapa 2, você compara esse vetor com os retornos normais obtidos da estimativa de regressão de um modelo de precificação de ativos, como o modelo Fama-French. Ao subtrair o vetor de retorno normal do seu vetor de retornos de portfólio, você determina se sua estratégia de negociação resultou em um retorno anormal positivo, que é o que você está buscando. Recomendações Se você é novo na Matlab, pessoalmente, sugiro que você se familiarize com ela o suficiente para implementar esta estratégia simplista antes de relaxar alguns dos pressupostos simplificadores (como período de espera uniforme e periodicidade) e proceder a implementações mais sofisticadas. Mais uma vez, o que gostaria de enfatizar é que isso exige que você fique muito confortável com o Matlab e, especialmente, com as diferentes maneiras de manipular as matrizes, que podem levar algum tempo. Se você não for obrigado a usar o Matlab para o seu estágio e gostaria de obter resultados rapidamente, você poderia fazer o primeiro passo no Excel, o que é tedioso, mas não requer o investimento inicial (que vale a pena) que você precisa fazer para o Matlab. Para se familiarizar com a Matlab, tenho certeza que você já descobriu a documentação extremamente boa que vem com ela. Isso, para mim, é o recurso mais valioso e provavelmente mais útil do que qualquer outro recurso financeiro específico (com o qual eu esperaria até que você esteja familiarizado com o próprio Matlab). Tudo o que for necessário para determinar o retorno normal é uma regressão OLS e uma compreensão rudimentar dos modelos de precificação de ativos. Respondido 30 de dezembro 14 às 22: 20Posted no Trading Strategies O Fundo A, B, C representa todos os fundos públicos disponíveis no substrato hipotético de bigdata-biologia-cloud computing (setor BBCC). Neste exemplo, o fundo B é tão fraco que, foi fechado no ano 4. Agora, ao realizar um estudo no setor BBCC, os analistas encontrarão apenas dados históricos para os fundos A e C. Consequentemente, eles informarão um desempenho médio de 9 p. a. No setor BBCC. No entanto, um investidor real que investiu no setor BBCC distribuindo seus investimentos de forma igual em todos os fundos disponíveis (A, B e C) teria ganho 5 p. a. só. Esta é a metade da performance observada pelos analistas. Este tipo de erro ocorre facilmente e, portanto, muitas vezes. Sobrevida de sobrevivência e backtesting histórico Um efeito semelhante ocorre frequentemente quando as pessoas tentam encontrar uma estratégia comercial superior em dados históricos do mercado. Muitas vezes, você vê o seguinte algoritmo para ajustar os parâmetros de uma estratégia de negociação: Data Historical Market Data Escolha os valores x1 a xn para os parâmetros da estratégia de negociação S Se o desempenho (S (x1, xn), Dados) é o máximo de todos os valores possíveis de (x1 , Xn) pare e retorna x1 para xn Claramente, essa estratégia S (x1, xn) será ótima nos dados históricos disponíveis. Mas, isso não diz nada sobre o desempenho futuro da estratégia. E, geralmente, a estratégia não funcionará bem no futuro. Como você pode fazer melhor Uma abordagem melhor segue da divisão dos dados em um conjunto de treinamento e teste. O algoritmo resultante seria: Datatraining metade dos Dados do Mercado Histórico Datatest outra metade dos Dados do Mercado Histórico Escolha os valores x1 a xn para os parâmetros da estratégia de negociação S Se o desempenho (S (x1, xn), Datatraining) é o máximo de todos os valores possíveis de ( X1 xn) Se o desempenho (S (x1, xn), Datatest) é bom parar e retornar 8220Performance de S é bom com parâmetros: 8221 x1 a xn parar e retornar 8220Strategy S é uma estratégia ruim8221 Nesse caso, a estratégia de negociação S É otimizado em um conjunto de treinamento dos dados históricos e o desempenho do conjunto de testes também é bom. Isso ainda não significa que a estratégia resultante funcionará bem no futuro. Mas pelo menos ele funcionou bem em dados não vistos. Agora, esse algoritmo pode retornar com 8220Strategy S é uma estratégia ruim8221, que será insatisfatória para a maioria das pessoas. A maioria das pessoas desenvolverá mais e mais estratégias S1 8230 Sm até o algoritmo retornar 8220Performance of S é bom 82308221. Mas, esta é realmente uma boa estratégia. Se você quer uma resposta para isso, certifique-se de reservar alguns dos dados históricos para Uma validação e verifique sua estratégia sobre esses dados invisíveis. Então, para otimizar uma estratégia de negociação, você precisa de pelo menos três conjuntos de dados: conjunto de treinamento, conjunto de teste e conjunto de validação. Mais uma vez, isso não dirá nada sobre o desempenho de sua estratégia comercial no futuro. Mas, é uma boa indicação se sua estratégia ultrapassar essa otimização de estratégia difícil. Quota de sobrevivência e caudas de gordura Outro recurso, que cria visões erradas sobre o desempenho de ativos financeiros ou estratégias de negociação, são caudas de gordura. Existem vários tipos de estratégias de negociação que parecem explorar a arbitragem no mercado. Por exemplo. Os fundos de arbitragem de volatilidade foram populares alguns anos atrás. Eles funcionam bem em dados históricos e eles produzem renda estável sem risco. Mas, de repente, algo acontece: de repente, o desempenho de alguns anos desapareceu para sempre. E isso também pode acontecer com estratégias que são percebidas sem risco como os fundos do mercado monetário: os fundos do mercado monetário também podem ser arriscados (Fonte: Handelsblatt) Conclusão O viés de sobrevivência complica significativamente a estimativa de desempenho de fundos e estratégias de negociação. E, mesmo se você fizer tudo certo, seu desempenho pode ser atingido por uma mudança de mercado, como vimos nos fundos do mercado monetário em 20082009. Encontrar o almoço grátis no mercado financeiro é difícil. Muitos contratos financeiros vêm com o direito de exercer um direito prematuramente. Tais direitos de exercício antecipado são uma clara vantagem para o titular da opção. Mas, esses direitos criam ótimos problemas de parada para as partes do contrato. Isso é realmente uma vantagem No que se segue, vou mostrar-lhe um pequeno exemplo da minha última viagem de compras e o que podemos aprender com o projeto de produtos financeiros. É necessária uma parada ideal para beneficiar de direitos de exercício precoce. Antecedentes Muitos tipos de opções financeiras negociadas incluem direitos de exercício inicial. Exemplos são opções de índice, que são muitas vezes exercitáveis ​​antecipadamente. As pessoas chamam essas opções de compra ou venda opções americanas em contraste com as opções européias, que só são exercíveis no vencimento. Esse recurso também é comum em muitos tipos de warrants e muitos contratos OTC. Ainda mais complexas são e. Obrigações convertíveis, onde também o emissor pode forçar a conversão. O principal argumento para disposições de exercícios iniciais é que os clientes gostam de ter escolhas. Portanto, muitas vezes as pessoas argumentam que se deve sempre estruturar os instrumentos financeiros de forma que o titular possa exercer no início de 8211 o produto venderia a um preço mais alto. Mas, este não é sempre o caso. Por exemplo. O custo do recurso de exercícios iniciais não está representado corretamente em muitos contratos de seguro de vida e em muitas hipotecas. Se os segurados começassem a exercer suas políticas de forma mais racional, os provedores de seguros poderiam ter problemas. Parada Ótima Olhando para decisões de exercícios iniciais, gostaria de fornecer um exemplo mais visual: Encontre um bom estacionamento em um grande supermercado. Em muitos supermercados, você encontra um estacionamento como este: Situação usual em um estacionamento de supermercado Você dirige lentamente para o supermercado e em cada ponto vazio (1) você tem que decidir estacionar (exercício) ou continuar. Continuar a pesquisa evolui o risco de você não encontrar um lugar melhor e você tem que dirigir outra rodada completa. Uma solução simples para este problema é apenas pegar o primeiro ponto vazio. Em um simples exemplo numérico, achamos que esta estratégia daria é a seguinte distribuição de distância ao mercado: Histograma da distribuição da distância ao supermercado usando a estratégia simples: Pegue o primeiro ponto vazio. (10.000 simulações) Este exemplo usa 10.000 simulações de Monte Carlo para encontrar um ponto de estacionamento. Uma vez que neste exemplo, há apenas 10 chances de que cada ponto esteja vazio, muitas vezes encontramos um ponto muito ruim (por exemplo, mais de 1.000 de 10.000 parque a uma distância de 20) e às vezes não encontramos nenhum ponto (cerca de 1.200 escritos Como a distância 40). Menos de 200 encontram o melhor local com distância 1. Se quisermos melhorar esse resultado, podemos criar um problema de otimização minimizando a distância esperada para o supermercado. Eu fiz isso escrevendo um pouco ThetaML que você encontra no Apêndice abaixo. Agora, achamos que a estratégia de maximização é passar os primeiros quatro pontos (distância 17 a 20) e depois pegar o próximo ponto vazio. Isso nos deixa sem estacionamento a uma distância de 17 ou mais. A probabilidade de obter o melhor local na distância 1 é maior que 8211, mais de 200 simulações terminam aqui. Mas, isso vem a um custo: mais de 1.800 simulações não encontram um ponto e têm que ir para outra rodada: Histograma da distribuição da distância ao supermercado usando a estratégia ideal: Pegue o primeiro ponto vazio com distância menos Do que 17. (10 mil simulações) Uma solução melhor Ok, inventei muito conhecimento e alguma programação para otimizar a estratégia de exercícios no estacionamento. Isto é o melhor que podemos fazer. Na verdade, há uma solução melhor ao reorganizar o estacionamento: Estacionamento reorganizado Agora, a estratégia simples: Pegue os primeiros rendimentos do vazio para um resultado muito melhor: Histograma da distribuição da distância ao supermercado Usando um layout de estacionamento melhor e a estratégia simples: pegue o primeiro ponto vazio. (10.000 simulações) Mais de 1.000 das 10.000 simulações encontram o melhor local a uma distância de 1. Menos de 200 encontram um local ruim a uma distância de 20 e apenas 1.200 não encontram nenhum ponto. Isso é muito melhor do que a solução anterior 8220optimal8221. E eu não tenho que levar meu laptop comigo para encontrar a estratégia de exercício ideal em cada compra. Gostaria que os arquitetos de estacionamento pudessem ver isso. Tomando essa idéia para o mercado de opções financeiras, o que podemos fazer. Talvez, os investidores não querem comprar opções de exercícios iniciais de tipo americano. Eles podem preferir Lookbacks que garantem um pagamento máximo. Pense nisso, o código de simulação ThetaML resolve o problema de parada ideal. Olhando para os instrumentos financeiros, muitas vezes encontra-se o termo volatilidade implícita. Nesta publicação, queremos descrever o que é e o que você pode fazer com isso. Começamos a atualizar a volatilidade histórica do termo e então explicamos a volatilidade implícita. Um exemplo de DAX alemão com dados reais conclui esta publicação. Volatilidade histórica A volatilidade histórica mede o desvio do retorno de ativos de sua média histórica. É uma amostra de estimativa que possui unidade de tempo e depende do período de amostragem histórico. Denotar como o retorno do ativo no tempo, a volatilidade histórica de for é calculada como onde é a média durante o período de tempo. Para obter a estimativa da amostra, o número é substituído por sua contrapartida de amostra, e onde dividimos a soma de desvios quadrados por considerar a perda do grau de liberdade de usar a média da amostra no cálculo. Para amostrar em intervalos de tempo diários e mensais, a volatilidade histórica anualizada é, respectivamente, e. A volatilidade histórica pode ser útil em casos como benchmarking de performances históricas, avaliação do comportamento de variáveis ​​econômicas, cálculo de medidas históricas de risco e assim por diante. Uma vez que a volatilidade histórica é o número que recebemos de analisar os dados realizados no passado, pode não ser tão útil quando tentamos prever o comportamento futuro dos retornos de ativos. É quando e por que temos a volatilidade implícita, ou seja, o número de volatilidade implícito nos preços de mercado. Volatilidade implícita Denote. , Um conjunto de preços de mercado de opções negociadas em ativos, a volatilidade implícita é obtida ao estabelecer o preço de mercado para o preço teórico, com o argumento de preço de exercício da opção, o preço atual do ativo, é a opção time-to-maturiy , Taxa de juros livre de risco, e assim por diante. Uma vez que o único desconhecido é o número de volatilidade, podemos resolver a função de preços inversa para obter a volatilidade implícita usando o método iterativo bisecção ou Newtons. As volatilidades implícitas obtidas contêm informações da avaliação dos mercados de futuros movimentos de preços e, portanto, é uma medida de risco voltada para o futuro. Aqui, você pode encontrar um pequeno solucionador para volatilidades implícitas na VBA. Exemplo: DAX alemão Os gráficos a seguir mostram a série de índice de volatilidade implícita VDAX-NEW em comparação com as volatilidades históricas do DAX. O índice de volatilidade implícita é um bom preditor das volatilidades históricas. (Clique para ampliar) Podemos ver que a volatilidade implícita dada pela VDAX New e a volatilidade histórica de 21 dias teve valores similares durante o tempo apresentado. Na maioria das vezes, a volatilidade implícita é ligeiramente superior à volatilidade histórica. (Clique para ampliar) O gráfico acima mostra o VDAX deslocado em 21 dias e a volatilidade histórica de 21 dias. Desta forma, podemos ver o quão bem o VDAX executa como preditor da volatilidade histórica. Verificamos que, exceto os picos imprevistos, a volatilidade implícita pode ser um bom preditor de volatilidade histórica (futura). Agora, um gráfico semelhante com horizontes de tempo de 1 ano: (clique para ampliar) Com um horizonte de um ano, a relação entre volatilidade histórica e volatilidade implícita não é tão óbvia. Um estudo aprofundado da previsibilidade da volatilidade histórica por volatilidade implícita também pode ser encontrado aqui na revista Wilmott. Conclusão Embora a volatilidade histórica descreva o tamanho das variações do passado, a volatilidade implícita descreve o tamanho das variações dos futuros, implícitas nos preços das opções negociadas. O modelo de risco é o risco de que os modelos de mercado na banca de investimento não reflitam adequadamente a realidade. Esse risco é muitas vezes negligenciado ou simplesmente ignorado. Mas, é um dos riscos mais importantes, como pudemos ver no mispricing de CDO, ABS, MBS, etc., no início da crise financeira (os primeiros trabalhos viram isso já em 2004 2). O risco do modelo é subestimado da física, é claro que um modelo nunca captura a realidade completa. Ele sempre descreve apenas partes da realidade. Mas, cada modelo bom tem a propriedade de ser falsificável. Os modelos atualmente utilizados em física como a teoria da relatividade geral e a mecânica quântica são falsificáveis ​​e foram desafiados nas últimas décadas: ambas as teorias fornecem previsões extremamente precisas e não foram falsificadas. Em finanças e matemática financeira, a situação é diferente. Muitas teorias como CAPM, otimização de portfólio Markowitz, preços de opções Black-Scholes, análise de gráficos e outros foram desenvolvidos e todas essas teorias são mais ou menos bem-sucedidas. Mas, um olhar próximo revela que os resultados do modelo são sempre imprecisos ou mesmo falsos. Isso significa que, enquanto na física, as boas teorias devem ser falsas, em finanças, todas as teorias são falsas. Mesmo os pressupostos mais simples, como: 8220 As pessoas preferem mais dinheiro com menos dinheiro8221 nem sempre são verdadeiras. Em alguns casos, as pessoas preferem menos dinheiro, e. Por razões éticas. O que podemos fazer sobre o risco do modelo Esta é uma questão. Antes de tudo, você deve conhecer as limitações de seus modelos. Suposições do modelo de desafio. Liquidez, custos de transações, impostos, risco de contraparte, risco operacional 8211, tudo isso é muitas vezes ignorado na modelagem 1. Teste novamente seu modelo com dados históricos: Prefira os dados no back-testing que não tenha sido usado na calibração dos dados de entrada 1. Inclua a estimativa de parâmetro no back-testing: os parâmetros devem ser constantes no tempo e o procedimento de estimativa deve ser estatisticamente significativo. Por exemplo. Tente simular um modelo GARCH (1,1) e estimar os parâmetros agora conhecidos a partir da simulação. Você ficará surpreso com a quantidade de observações necessárias para uma estimativa de parâmetro estável. Stress seu modelo. Veja o desempenho do seu modelo em cenários de choque, regimes de alta volatilidade ou correlações extremas de 1 resp. -1. Monitorize o desempenho do seu modelo: o desempenho do modelo deve ser medido com regularidade 1. Caso contrário, você perderá importantes mudanças de mercado, e. Em correlações. Use mais do que um modelo. Use um portfólio de modelos e veja os extremos 3,4, 5,7. Procure comparar com um modelo com muito poucos pressupostos. Em muitos casos, os limites do preço de uma opção podem ser obtidos sem um modelo de mercado limitado. A cobertura estática pode fornecer uma visão sem considerar a dinâmica do mercado. Hedging baseado em simulação 6 pode fornecer preços e riscos em qualquer modelo de mercado sofisticado. Por causa, certifique-se de que as implementações do seu modelo são numericamente sólidas. E então, você deve pensar em eventos futuros desconhecidos. Isso exige ser criativo conforme postei no artigo anterior: Gerenciamento de risco deve ser criativo. Conclusão Finanças é uma ciência sobre o comportamento das pessoas8217 e, portanto, não tão rigoroso como, por exemplo, física. Todos os modelos financeiros têm limitações apertadas e você tem que exercitar muito cuidado usando-os. Conhecer as limitações de seus modelos irá ajudá-lo a manter um modelo de negócios sustentável. Detalhado de RegulatorMatlabTrading Esta publicação é sobre como é importante usar diferentes tipos de métodos de otimização, como algoritmos genéticos e paralelização para obter resultados mais rápidos. Otimização de Algoritmos Genéticos Apesar do fato de que o princípio do algoritmo genético (evolutivo) é muito bem explicado nos webinars de MathWorks, no entanto, ele é usado apenas para otimizar a escolha de um grupo de estratégia a partir de um conjunto. Este é um bom exemplo do uso desses algoritmos, no entanto, acontece que é necessário estabelecer muitas variáveis ​​com intervalos significativos para uma estratégia, você não passa por uma iteração e a paralelização de processos. Os cálculos podem levar vários dias . Certamente, existem estratégias na fase final de otimização. Quando quase certamente sabemos que a estratégia de negociação é bem sucedida, podemos aguardar vários dias também ou alugar todo o cluster - o resultado pode valer a pena. No entanto, se precisarmos estimar os resultados de uma estratégia volumosa e decidir se vale a pena gastar o tempo, então os algoritmos genéticos podem ser perfeitamente adequados. Nós fornecemos a possibilidade de usar três métodos para otimizar a estratégia em WFAToolbox: Método linear 8211 é um modo usual de classificação em que você verá todos os resultados intermédios (sub-ótimos). Ele fornece a máxima precisão. Método paralelo 8211, todos os kernels da sua CPU serão usados. Não permite ver resultados intermédios, mas acelera significativamente a operação. Ele fornece a máxima precisão durante o aumento da velocidade de computação. O método genético 8211 usa o algoritmo de otimização evolutiva. Permite ver valores sub-óptimos, mas dá o resultado próximo ao melhor. Não é um método muito preciso, mas é suficientemente preciso para a execução inicial da estratégia. Muito rápido. Muitas vezes, nos perguntam se o WFAToolbox - Walk-Forward Analysis Toolbox para MATLAB tem a capacidade de usar o GPU em cálculos. Infelizmente, o GPU não é adequado para todas as tarefas e seu uso é muito específico. Para usá-lo, você precisa ajustar a lógica e o código de cada estratégia para o teste de núcleos gráficos. Infelizmente, devido a tal não-universalidade do método, não se pode usar o GPU no WFAToolbox. Continuando a Parte 2 da discussão de problemas e soluções no teste e análise da estratégia de negociação algorítmica no MATLAB, convido você a ler esta publicação sobre o problema da indisponibilidade da visualização dos processos em soluções de software modernas para testar sistemas de negociação. Visualização do processo de teste Na minha experiência de trabalho, muitas vezes analisei outras plataformas populares para testes de estratégia comercial. Como a TradeStation. MetaStock. Multicartas etc e sempre fiquei surpreso com a pouca atenção dada à visualização do processo de teste. A coisa é que, quando não vemos os resultados dos valores intermédios, sub-ótimos de parâmetros otimizados, muitas vezes jogamos fora o ouro junto com a sujeira. A questão é devido a uma amostragem muito ampla, a estratégia ajusta os parâmetros da maneira como vemos uma estratégia perfeita que falha na vida real ou veja uma ou duas ofertas, que são supostamente as melhores porque foi selecionado esses dados de intervalo de tempo onde a A melhor estratégia de negociação seria buy-and-hold, mas por que outras estratégias são necessárias para a visualização do processo de teste de estratégia de negociação em MATLAB (proposto no webinar). Como resultado, sem ver resultados intermédios, nós precisamos que simpatizar187 mudar os parâmetros para tentar Para obter melhores dados ou assistir em alguns 3D ou 4D (a cor é a 4ª dimensão), conforme proposto nos webinars. A análise de valores nos espaços N-dimensionais pode definitivamente ser uma alternativa, mas tem várias limitações: o que acontece se houver mais de 4 dimensões. Quando você vê quais sinais e em que freqüência aparecem na faixa de preço, você tem quase todos os Representação visual necessária da sua estratégia: a frequência das transacções, a sua rentabilidade (curva de rendimento), a precisão da abertura, a semelhança com outros valores sub-óptimos, etc., que não pode ser dito sobre o desempenho no espaço N-dimensional, onde todas as informações úteis É, de fato, que o valor ótimo não é apenas um, mas há toda uma gama de valores subóptimos em uma ou mais áreas. Ao otimizar uma estratégia na WFAToolbox 8211 Walk-Forward Analysis Toolbox para MATLAB174. Como um novo valor ótimo é encontrado, os sinais de estratégia de negociação no período em amostra e fora da amostra aparecem imediatamente no gráfico, para que você sempre possa controlar o intervalo de opções que você deve atribuir e também pode pausar a otimização Sem esperar o fim do teste, pois fica claro que algo deu errado ou tudo está bem. Hola, meu nome é Igor Volkov. Desenvolvi estratégias de negociação algorítmicas desde 2006 e trabalhei em diversos fundos de hedge. Neste artigo, gostaria de discutir as dificuldades surgidas no caminho do desenvolvedor de estratégias de negociação MATLAB durante testes e análises, bem como oferecer soluções possíveis. Eu tenho usado o MATLAB para testar estratégias de algoritmos desde 2007 e cheguei à conclusão de que esta não é apenas a ferramenta de pesquisa mais conveniente, mas também a mais poderosa porque possibilita o uso de modelos complexos estatísticos e econométricos, redes neurais, Aprendizado de máquina, filtros digitais, lógica difusa, etc., adicionando caixa de ferramentas. O idioma MATLAB é bastante simples e bem documentado, então mesmo um não programador (como eu) pode dominá-lo. Como tudo começou. Foi 2008 (se não me enganei) quando o primeiro webinar sobre negociação algorítmica em MATLAB com Ali Kazaam foi lançado, abrangendo o tópico de otimização de estratégias simples baseadas em indicadores técnicos, etc., apesar de um código bastante 8220chaotic8221, as ferramentas eram interessantes O suficiente para usar. Eles serviram como ponto de partida para pesquisa e aprimoramento de um modelo de teste e análise que permitiria usar todo o poder das caixas de ferramentas e a liberdade das ações do MATLAB durante a criação de suas próprias estratégias comerciais, ao mesmo tempo que permitiria controlar o processo De testes e os dados obtidos e suas análises subsequentes escolheriam um portfólio efetivo de sistemas de negociação robustos. Posteriormente, os webinars Mathworks foram atualizados a cada ano e gradualmente introduziram elementos cada vez mais interessantes. Assim, o primeiro webinar sobre negociação de pares (arbitragem estatística) usando a Econometric Toolbox foi realizado em 2010, embora a caixa de ferramentas de testes e análises permaneceu a mesma. Em 2017, surgiu o Trading Toolbox da Mathworks, que permitiu conectar o MATLAB a corretores diferentes para a execução de suas aplicações. Embora existissem soluções automáticas para a execução das transações, a partir desse ponto, o MATLAB poderia ser considerado um sistema para o desenvolvimento de estratégias comerciais com um ciclo completo: desde o carregamento de dados até a execução de estratégias de negociação automatizadas. Por que cada Algotrader deve reinventar a roda No entanto, a Mathworks não ofereceu uma solução completa para testar e analisar as estratégias. Os códigos que você poderia sair dos webinars eram os únicos elementos de um teste completo do sistema, e era necessário modificá-los. , Personalize-os e adicione-os à GUI para facilidade de uso. Foi muito demorado, colocando uma questão: seja qual for a estratégia, deve passar pelo mesmo processo de análise e análise, o que permitiria classificar-se como estável e utilizável. Por isso, cada algotrader deve reinventar a roda e escrever Seu próprio código para estratégias de teste adequadas em MATLAB Então, a decisão foi tomada para criar um produto que permitisse realizar todo o processo associado ao teste e análise de estratégias de negociação algorítmicas utilizando uma interface simples e fácil de usar. Em primeiro lugar, gostaria de responder as seguintes perguntas: O que aconteceu com o blog. Jev Kuznetsov já não é o proprietário. O blog foi adquirido ao nosso amigo, Jev Kuznetsov, que se mudou para o seu outro blog com o blog. Ele concluiu que Python é melhor que o MATLAB para negociação, o que eu considerava falso. MATLAB continua a ser um dos melhores softwares do mundo para fins de negociação algorítmica IMHO (eu tenho alguns fatos sobre isso, porém para discussão futura). 2. Nós mudamos a marca. A partir deste momento, o blog será chamado MatlabTrading, o que é muito mais compreensível em relação aos tópicos que irá incluir. Além disso, o nome do domínio foi alterado para matlabtrading em vez do matlab-trading. blogspot inicial. Embora o domínio antigo ainda esteja funcionando redirecionando do nome do domínio primário. O que acontecerá com o blog 1. Mais publicações e artigos Esperamos trazer a vida a este blog postando conteúdos relevantes uma ou duas vezes por semana. Nos primeiros meses, publicaremos principalmente artigos e vídeos que já temos para tornar mais fácil para os nossos queridos leitores pesquisar informações sobre um recurso e reticular-se sobre eles. Então temos planos para escrever posts sobre aspectos práticos da negociação algorítmica no MATLAB. Como criar estratégias modernas de negociação automática, tais como: negociação de pares de arbitragem estatística significa estratégias de negociação neutras de mercado de reversão com base na cointegração bollinger bandas filtro kalman etc para commodities, ações e Forex. Tendência de estratégias seguidas com Jurik Moving Average e outros filtros digitais sofisticados. Estratégias de previsão com aprendizado de máquina (Support Vector Machines) e outros métodos. Criando estratégias de negociação robustas usando o gerenciamento de dinheiro visual para o reinvestimento de sua capital (ciência sobre como obter 1M de 10K Em um ano com o máximo, mas o risco estimado e as recompensas de suor). Talvez depois de ler isso, você pensou que este seria um outro artigo burro para aqueles caras pobres que procuram como se tornar rico através da negociação no forex e tudo isso. Bem, isso é totalmente falso Estamos trabalhando no MATLAB, e a maioria de nós somos cientistas e especialistas nesse aspecto, então tudo é sério. 2. Mais interatividade Ficarei feliz se pudermos nos relacionar com comentários em postagens. Assine nossas novidades para receber alertas sobre as últimas postagens e eventos. Mais tarde, temos planos de fazer webinars do Google Hangouts. Não perca, clique no botão Siga no canto superior direito para se juntar à nossa comunidade. O que você gostaria de ler em nossas postagens de blog Que tópicos você pode sugerir Por favor, escreva aqui nos comentários. Na minha publicação anterior, cheguei à conclusão de que a negociação de pares fechados para fechar não é tão lucrativa hoje como costumava ser antes de 2010. Um leitor apontou que poderia ser que a natureza reversa dos spreads acabasse de mudar para prazos mais curtos . Eu compartilhei a mesma idéia, então eu decidi testar essa hipótese. Desta vez, apenas um par é testado: 100 SPY vs -80 IWM. Backtest é executado em dados de barra de 30 segundos de 11.2017 a 12.2017. As regras são simples e similares à estratégia que testei na última publicação: se o retorno da barra do par exceder 1 no z-score, troque a barra seguinte. O resultado parece muito bonito: considero que isso é uma prova suficiente de que ainda existe uma grande inversão média na escala de 30 segundos. Se você acha que este gráfico é muito bom para ser verdade, isso infelizmente é o caso. Não foram considerados custos de transação ou spread de oferta e solicitação. Na verdade, eu duvidava que houvesse algum lucro depois de subtrair todos os custos de negociação. Ainda assim, este tipo de gráficos é a cenoura pendurada na minha frente, mantendo-me em pé. Mal notícias de todos, de acordo com os meus cálculos (que espero sinceramente são incorretas), o comércio de pares clássicos está morto. Algumas pessoas estariam totalmente em desacordo, mas aqui é o que eu encontrei: vamos tomar uma estratégia hipotética que funcione em uma cesta de etfs: SPY, XLY, XLE, XLF, XLI, XLB, XLK, IWM, QQQ, DIA A partir destes etfs 90 unique Podem ser feitos pares. Cada par é construído como um spread neutro no mercado. Regras de estratégia: em cada dia, para cada par, calcule o z-score com base no desvio padrão de 25 dias. Se o limite de gt de z-score, fique curto, feche o próximo dia. Se o limite de z-score lt for longo, feche o próximo dia. Para manter tudo simples, o cálculo é feito sem gerenciamento de capital (um pode ter até 90 pares em portfólio Em cada dia). Os custos de transação também não são considerados. Simplificando, esta estratégia acompanha a natureza do dia de um dia reverter a natureza dos spreads do mercado neutro. Aqui estão os resultados simulados para vários limiares: não importa o limite utilizado, a estratégia é altamente rentável em 2008, muito boa até 2009 e completamente inútil desde o início de 2010. Esta não é a primeira vez que me deparo com essa mudança na reversão média Comportamento em etfs. Não importa o que tentei, não tive sorte em encontrar uma estratégia de negociação de pares que funcione em ETFs em 2010. Minha conclusão é que esses tipos de modelos de stat-arb simples simplesmente não cortaram mais.

No comments:

Post a Comment