Estratégias de negociação matlab code


Negociação Algorítmica.
Desenvolva sistemas de negociação com o MATLAB.
A negociação algorítmica é uma estratégia de negociação que usa algoritmos computacionais para orientar decisões de negociação, geralmente em mercados financeiros eletrônicos. Aplicada em instituições de buy-side e sell-side, a negociação algorítmica forma a base de negociação de alta frequência, negociação de FOREX e análise associada de risco e execução.
Os desenvolvedores e usuários de aplicativos de comércio algorítmico precisam desenvolver, fazer backtest e implantar modelos matemáticos que detectem e explorem os movimentos do mercado. Um fluxo de trabalho efetivo envolve:

Negociação Momentum.
Desenvolver, testar e implementar estratégias de negociação de momentum.
O momento de negociação é um tipo de estratégia de negociação que envolve a compra de ativos ou classes de ativos que demonstraram altos retornos durante um período recente, opcionalmente acompanhados pela venda de ativos que demonstraram retornos ruins no mesmo período de tempo. A base para o sucesso da negociação de momentum reside na tendência de muitos ativos em demonstrar a persistência de retornos periódicos altos ou baixos.
As estratégias de negociação de impulso podem ser categorizadas como:
Momento absoluto. Também conhecido como momentum de série de tempo ou momentum de preço, essas estratégias medem o momentum observando as séries temporais isoladas isoladamente. Momento Transversal. Essas estratégias medem e classificam o momento em uma base relativa em um grupo de séries temporais, comprando os quantis mais altos e vendendo os quantis mais baixos de uma maneira neutra em relação ao mercado.
A negociação de momento está intimamente relacionada a outras estratégias de negociação, como a tendência a seguir, e é predominante em classes de ativos, como commodities ou ações. Fundos mútuos, fundos de hedge, fundos de futuros administrados e empresas de gestão de ativos implementam estratégias de negociação de momentum para realizar alocação de ativos táticos, otimizar seus portfólios e aprimorar suas atividades de geração alfa.
Uma abordagem de implementação prática envolve a modelagem, construção e teste de estratégias de negociação de momento em classes de ativos, usando dados coletados de feeds de dados e bancos de dados. Um fluxo de trabalho efetivo permite que você:

Negociação Automatizada.
Desenvolver sistemas de negociação automatizados com o MATLAB.
A negociação automatizada é uma estratégia de negociação que usa computadores para conduzir decisões de negociação automaticamente, geralmente em mercados financeiros eletrônicos. Aplicada em instituições de buy-side e sell-side, a negociação automatizada forma a base de negociação de alta frequência, por exemplo, em negociação de ações, negociação forex ou negociação de commodities.
Construtores e usuários de aplicativos de negociação automatizados precisam desenvolver, fazer backtest e implantar modelos matemáticos que detectem e explorem os movimentos do mercado. Um fluxo de trabalho efetivo envolve:

Mais um passo.
Por favor, preencha a verificação de segurança para acessar o matlabtips.
Por que eu tenho que completar um CAPTCHA?
A conclusão do CAPTCHA prova que você é humano e concede acesso temporário à propriedade da web.
O que posso fazer para evitar isso no futuro?
Se você estiver em uma conexão pessoal, como em casa, poderá executar uma verificação antivírus no seu dispositivo para garantir que ele não esteja infectado por malware.
Se você estiver em um escritório ou em uma rede compartilhada, poderá solicitar ao administrador da rede que execute uma verificação na rede procurando dispositivos configurados ou infectados incorretamente.
Cloudflare Ray ID: 40bd2ba317efb6e6 & bull; Seu IP: 78.109.24.111 & bull; Performance & amp; segurança pela Cloudflare.

Código matlab das estratégias de negociação
Eu sei que o MATLAB tem mecanismos para gerar código, mas nunca os usei. Você já? Se você tem - é bom o suficiente (= rápido o suficiente, eu acho) para ser usado em sistemas de negociação ao vivo? Qualquer coisa que alguém precisa tomar cuidado?
Claro que é rápido o suficiente. Mas o que é rápido o suficiente? Eu conheço caras que trocam folhas do Excel e ganham milhões, mas esses caras claramente não estão ativos no espaço de alta frequência. Então, isso depende inteiramente da frequência de negociação e do período médio de manutenção. Eu também sei de lojas que rodam sistemas de negociação ao vivo chamando funções R, então, obviamente, o código gerado pelo Matlab é rápido o suficiente para muitos algoritmos. Chrisaycock está certo em dizer que isso depende principalmente do que você realmente tenta alcançar e do seu próprio framework.
Se eu entendi bem, você está falando especificamente sobre o recurso de geração de código embutido do Matlab (veja aqui: mathworks. ch/embedded-code-generation/). Na minha opinião, a resposta à sua pergunta é claramente sim. Esta funcionalidade permite-lhe gerar código específico de hardware, por ex. para implantação em GPUs (placas de vídeo). É usado para sistemas aeroespaciais, entre outros. Em nossa área de especialização, isso provavelmente é o mais rápido possível hoje, pelo menos para alguns tipos de modelos. Como regra geral: quanto mais complexo seu modelo, mais você obtém uma vantagem competitiva com essa tecnologia. Na minha opinião, isso favorece estratégias de média a alta frequência (modelos ultra-HF são geralmente muito mais simples, então a sobrecarga de chamadas de roteamento para hardware secundário é geralmente muito lenta; para modelos lentos, não vale a pena porque você tem o suficiente tempo para executá-lo em uma área de trabalho bem equipada). Um exemplo típico em que isso valeria a pena é uma simulação de monte carlo para calcular um VaR para o dimensionamento de risco de uma estratégia de negociação intradia. A meu ver, mesmo sem geração de código, o Matlab também é uma ferramenta muito robusta e rápida para uso em produção. Por exemplo, você pode compilar código e, se bem feito, isso é muito mais rápido do que R. Na verdade, a empresa para a qual trabalho realiza implementação de tecnologia e estratégia de negociação para quantificar fundos de hedge, e o Matlab é uma das tecnologias mais utilizadas. . A geração de código, por outro lado, ainda é vista como uma vantagem para muitos. Assim, o tempo ainda pode estar certo para obter uma vantagem comparativa usando-o ;-)
Nós estávamos usando o Matlab com o Java Builder para otimização numérica e os resultados eram muito ruins. O Fmincon estava levando cerca de 30 segundos para convergir, agora estamos usando uma biblioteca java nativa e a otimização leva de 0,1 segundo a 0,5 segundo.

MatlabTrading.
Blog para MATLAB & # 174; usuários interessados ​​em estratégias de negociação algorítmica, backtesting, pares de negociação, arbitragem estatística etc.
Quarta-feira, 7 de dezembro de 2016.
Teste e Análise de Estratégias de Negociação Algorítmica no MATLAB (Parte 4) & # 8211; Algorítmos genéticos.
Otimização de Algoritmos Genéticos.
Apesar do fato de que o princípio do algoritmo genético (evolucionário) é muito bem explicado nos webinars do MathWorks, nos exemplos, no entanto, ele é usado apenas para otimização da escolha de um grupo de estratégia de um conjunto. Este é um bom exemplo do uso destes algoritmos, no entanto, acontece que há uma necessidade de definir muitas variáveis ​​com intervalos significativos para uma estratégia, você não consegue com uma iteração e a paralelização de processos & # 8211; cálculos podem levar vários dias. Certamente, existem estratégias no estágio final de otimização, quando quase certamente sabemos que a estratégia de negociação é bem-sucedida, podemos esperar vários dias ou alugar todo o cluster - o resultado pode valer a pena. No entanto, se precisamos "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.
Método linear & # 8211; é um modo usual de ordenação no qual você verá todos os resultados intermediários (sub-ótimos). Dá máxima precisão. Método paralelo & # 8211; todos os kernels da sua CPU serão usados. Não permite ver resultados intermediários, mas acelera significativamente a operação. Dá máxima precisão durante o aumento da velocidade de cálculo. Método genético & # 8211; ele usa o algoritmo de otimização evolutiva. Permite ver valores sub-ótimos, mas dá o resultado próximo ao melhor. Não é um método muito preciso, mas é preciso o suficiente para a "execução" inicial da estratégia. Muito rápido.
Segunda-feira, 5 de dezembro de 2016.
Teste e Análise de Estratégias de Negociação Algorítmica no MATLAB (Parte 3) & # 8211; Visualização do Processo.
Visualização do processo de teste.
Em minha experiência de trabalho, muitas vezes analisei outras plataformas populares para testes de estratégia de negociação, como TradeStation, MetaStock, Multicharts etc. e sempre fiquei surpreso com a pouca atenção dada à visualização do processo de teste. O problema é que, quando não vemos os resultados dos valores intermediários e sub-ótimos dos parâmetros otimizados, muitas vezes jogamos fora o ouro junto com a sujeira. A questão é por causa de uma amostragem excessivamente ampla, a estratégia ajusta os parâmetros da maneira como vemos uma "estratégia perfeita" que falha na vida real ou vê uma ou duas transações, que são supostamente as melhores porque foram selecionadas tais dados de intervalo de tempo onde a melhor estratégia de negociação seria comprar e manter, mas por que outras estratégias são necessárias?
E se houver mais de 4 dimensões? Quando você vê quais sinais e em que frequência eles aparecem na faixa de preço, você tem quase toda a representação visual necessária de sua estratégia: a frequência das transações, sua lucratividade (curva de renda), a precisão da abertura, a semelhança com outras valores sub-ótimos, etc .; isso não pode ser dito sobre o desempenho no espaço N-dimensional, onde toda a informação útil é, de fato, que o valor ótimo não é apenas um, mas há toda uma gama de valores sub-ótimos em uma ou mais áreas.
Enquanto otimiza uma estratégia no WFAToolbox & # 8211; Walk-Forward Analysis Toolbox para MATLAB & # 174 ;, como um novo valor ótimo é encontrado, os sinais da estratégia de negociação no período in-sample e out-of-sample aparecem imediatamente no gráfico, para que você possa sempre controlar qual faixa de opções você deve atribuir, e também pode pausar a otimização sem esperar pelo fim do teste, pois fica claro que algo deu errado ou está tudo bem.
Quarta-feira, 30 de novembro de 2016.
Teste e Análise de Estratégias de Negociação Algorítmica no MATLAB (Parte 2) & # 8211; GUI fácil de usar.
GUI fácil de usar.
Vamos começar com o fato de que não há interface gráfica porque se presumimos que quase todo o processo de teste e análise de estratégias de negociação é padronizado (é 99%), você gostaria de ter a interface que ajuda a chamar os dados necessários. e inicie o processo de teste com um clique.
Para usuários novos (e não apenas) do MATLAB, é muito mais conveniente usar uma GUI com botões e campos de entrada do que pesquisar no código; Portanto, há uma GUI, mesmo nas caixas de ferramentas MathWorks, na maioria dos casos, porque é mais conveniente. Ele permite focar apenas no código de sua estratégia, porque o uso de uma GUI não implica, de forma alguma, que ela limita de alguma forma sua capacidade de escrever uma estratégia.
Assim, no WFAToolbox, criamos a possibilidade de escrever qualquer código para sua estratégia, usando qualquer uma das caixas de ferramentas do MATLAB e trabalhando com múltiplos ativos para as estratégias como negociação de pares, negociação de cestas ou arbitragem tripla, etc .; mas, ao mesmo tempo, esse código é facilmente integrado à GUI por meio de padrões, que são simples o suficiente para serem aplicados no código e não limitam as oportunidades.
Terça-feira, 29 de novembro de 2016.
Teste e Análise de Estratégias de Negociação Algorítmica no MATLAB (Parte 1) - Introdução.
Como tudo começou.
Foi em 2008 (se não me engano) quando o primeiro webinar sobre comércio algorítmico no MATLAB com Ali Kazaam foi lançado, cobrindo o tópico de otimização de estratégias simples baseadas em indicadores técnicos, etc. apesar de um caótico & # 8220; 8221; código, 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 das próprias estratégias comerciais, ao mesmo tempo em que permitiria controlar o processo. de teste e os dados obtidos e sua análise posterior escolheria carteira eficaz de sistemas de negociação robustos.
Por que todo Algotrader deveria reinventar a roda?
No entanto, o Mathworks não ofereceu uma solução completa para testes e análises das estratégias & # 8211; Esses códigos que você poderia obter dos webinars eram os únicos "elementos" de um teste completo do sistema, e era necessário modificá-los, personalizá-los e adicioná-los à GUI para facilitar o uso. Foi muito demorado, colocando-se uma questão: seja qual for a estratégia, ela deve passar pelo mesmo processo de teste e análise, o que permitiria classificá-la como estável e utilizável & # 8211; então, por que todo algotrader deveria reinventar a roda e escrever seu próprio código para estratégias de teste adequadas no MATLAB?

Estratégias de Negociação Algorítmica com Exemplos do MATLAB.
Ernest Chan, QTS Capital Management, LLC.
O paradigma tradicional de aplicação de técnicas de aprendizado de máquina não-lineares a estratégias de negociação algorítmica geralmente sofre um grande viés de bisbilhotagem de dados. Por outro lado, as técnicas lineares, inspiradas e limitadas pelo conhecimento profundo do domínio, provaram ser valiosas. Esta apresentação descreve a aplicação do filtro de Kalman, uma técnica quintessencialmente linear, de duas maneiras diferentes para a negociação algorítmica.

Backtesting Trading Strategies em apenas 8 linhas de código.
Kawee Numpacharoen, MathWorks.
Usando as funcionalidades do MATLAB ® e do Financial Toolbox ™, você pode realizar um backtesting de estratégia em apenas oito linhas de código.
• Geração de sinal de negociação.
• Cálculo dos retornos da carteira, índice de precisão e redução máxima.
• Gráficos de curva de capital.
• Use o Datafeed Toolbox ™ para baixar dados de mercado diretamente de vários provedores de dados.
• Gerar sinal de negociação usando o Econometrics Toolbox ™ ou o Statistics and Machine Learning Toolbox ™
• Execute automaticamente suas estratégias usando o Trading Toolbox ™

Комментарии

Популярные сообщения