Alta Freqüência Trading System Design And Process Management
Algorithmic Trading System Architecture. Previamente neste blog eu escrevi sobre a arquitetura conceitual de um sistema de negociação algorítmica inteligente, bem como os requisitos funcionais e não funcionais de uma produção de sistema de negociação algorítmica Desde então, tenho projetado uma arquitetura de sistema que eu acredito que poderia Satisfazer os requisitos arquitetônicos Neste post vou descrever a arquitetura seguindo as diretrizes da ISO IEC IEEE 42010 sistemas e arquitetura de engenharia de software padrão de descrição De acordo com este padrão uma descrição de arquitetura deve. Conter múltiplas visões arquitetônicas padronizadas, por exemplo, UML and. Maintain rastreabilidade entre Decisões de projeto e requisitos arquitetônicos. Definição de arquitetura de software. Ainda não há consenso sobre o que é a arquitetura de um sistema. No contexto deste artigo, ele é definido como a infra-estrutura dentro da qual componentes de aplicativo que satisfazem requisitos funcionais podem ser especificados, Implementados e executados Os requisitos funcionais são as funções esperadas do sistema e seus componentes Os requisitos não funcionais são medidas através das quais a qualidade do sistema pode ser medida. Um sistema que satisfaz plenamente os seus requisitos funcionais pode ainda não atender às expectativas se os requisitos não funcionais São deixados insatisfeito Para ilustrar este conceito, considere o seguinte cenário de um sistema de negociação algorítmica que você acabou de comprar construído faz excelentes decisões comerciais, mas é completamente inoperável com as organizações de gestão de riscos e sistemas de contabilidade Este sistema atender às suas expectativas. Conceptual Architecture. A conceitual View descreve conceitos de alto nível e mecanismos que existem no sistema no nível mais alto de granularidade. Neste nível, o sistema de negociação algorítmica segue uma arquitetura orientada a eventos EDA quebrada em quatro camadas e dois aspectos arquitetônicos Para cada camada e arquiteturas de referência de aspecto e Padrões ar E usados Padrões arquitetônicos são comprovadas, estruturas genéricas para a obtenção de requisitos específicos Os aspectos arquitetônicos são preocupações transversais que abrangem vários componentes. A arquitetura orientada a eventos - uma arquitetura que produz, detecta, consome e reage a eventos Os eventos incluem movimentos de mercado em tempo real, complexos Eventos ou tendências e eventos comerciais, por exemplo, apresentação de uma ordem. Este diagrama ilustra a arquitetura conceitual do sistema de negociação algorítmica. Referência arquiteturas. Para usar uma analogia, uma arquitetura de referência é semelhante aos planos para uma parede de suporte de carga Este blueprint Pode ser reutilizada para projetos de edifícios múltiplos, independentemente do edifício que está sendo construído, uma vez que satisfaz um conjunto de requisitos que ocorrem com freqüência. De modo semelhante, uma arquitetura de referência define um modelo contendo estruturas genéricas e mecanismos que podem ser usados para construir uma arquitetura de software concreto que satisfaça Requisitos específicos A arquitetura para o algoritmo tr O sistema ading utiliza uma arquitetura baseada em espaço SBA e um controlador de exibição de modelo MVC como referências. As boas práticas como o ODS operacional, o extrato de transformação e carga ETL padrão, e um data warehouse DW também são usados. Separa a representação da informação da interação do usuário com ela. Arquitetura baseada em espaço - especifica uma infra-estrutura onde unidades de processamento acopladas frouxamente interagem uns com os outros através de uma memória associativa compartilhada chamada espaço mostrado abaixo. A visão estrutural de uma arquitetura mostra os componentes e subcomponentes do sistema de negociação algorítmica. Ele também mostra como esses componentes são implantados na infra-estrutura física. Os diagramas UML usados nesta visão incluem diagramas de componentes e diagramas de implantação. Os diagramas de implantação do sistema global de negociação algorítmica e os p Unidades de rocessing na arquitetura de referência SBA, bem como diagramas de componentes relacionados para cada um as camadas. Algorithmic diagrama de distribuição de alto nível do sistema de negociação Diagrama de implantação de unidades de processamento SBA Diagrama de componente de camada de processamento de pedidos Diagrama de componente de processamento de eventos automatizado do comerciante Fonte de dados e camada de pré - Diagrama de componente diagrama de componente de interface de usuário baseado em MVC. Tá ticas arquitetônicas. De acordo com o instituto de engenharia de software uma tática arquitetônica é um meio de satisfazer uma exigência de qualidade, manipulando algum aspecto de um modelo de atributo de qualidade através de decisões de design arquitetônico Um exemplo simples usado na negociação algorítmica A arquitetura do sistema está manipulando um armazenamento de dados operacional ODS com um componente de consulta contínua Este componente iria analisar continuamente o ODS para identificar e extrair eventos complexos As táticas a seguir são usadas na arquitetura. O padrão de disruptor nas filas de evento e ordem. As filas de evento e ordem. Continua consulta CQL sobre a ODS. Data filtragem com o padrão de design de filtro em dados de entrada. Congestion evitação algoritmos em todas as conexões de entrada e saída. Active gestão de filas AQM e congestionamento explícito notificationmodity recursos de computação com capacidade de atualização escalável . Redundância ativa para todos os únicos pontos de falha. Indexação e estruturas de persistência otimizadas no ODS. Schedule regular backup de dados e scripts de limpeza para ODS. Transaction históricos em todos os bancos de dados. Checksums para todas as ordens para detectar falhas. Anotar eventos com timestamps para Ignorar eventos viciados. Order regras de validação, por exemplo, as quantidades máximas trade. Automated comerciante componentes usam um banco de dados na memória para a análise. Dois estágio de autenticação para interfaces de usuário conectando-se ao ATs. Encryption em interfaces de usuário e conexões para o ATs. Observer padrão de design para o MVC para gerenciar views. The lista acima são apenas algumas decisões de design que eu identifiquei durante o Design da arquitetura Não é uma lista completa de táticas Como o sistema está sendo desenvolvido táticas adicionais devem ser empregados em vários níveis de granularidade para atender aos requisitos funcionais e não funcionais Abaixo estão três diagramas descrevendo o padrão de design disruptor, padrão de design de filtro, E o componente de consulta contínua. Continuous Querying Diagrama de componentes Disruptor padrão de design padrão fonte de diagrama de classe Padrão de filtro diagrama de classe de padrão. Behavioural View. This vista de uma arquitetura mostra como os componentes e camadas devem interagir uns com os outros Isso é útil ao criar cenários para testar a arquitetura Desenhos e para a compreensão do sistema de ponta a ponta Esta visão consiste em diagramas de seqüência e diagramas de atividade Diagramas de atividade mostrando o processo interno do sistema de negociação algorítmica e como os comerciantes são supostos interagir com o sistema de negociação algorítmica são mostrados abaixo. Interação comerciante algorítmica Negociação algorítmica de ponta a ponta Processo. Tecnologias e frameworks. The passo final na concepção de uma arquitetura de software é identificar potenciais tecnologias e estruturas que poderiam ser utilizados para realizar a arquitetura Como um princípio geral é melhor aproveitar as tecnologias existentes, desde que satisfaçam adequadamente tanto funcional E requisitos não funcionais Uma estrutura é uma arquitetura de referência realizada, por exemplo, JBoss é uma estrutura que realiza a arquitetura de referência JEE As seguintes tecnologias e estruturas são interessantes e devem ser considerados ao implementar um sistema de negociação algorítmica. CUDA - NVidia tem um número de produtos que suportam alta Desempenho de modelagem de finanças computacionais Pode-se conseguir até 50x melhorias de desempenho na execução de simulações de Monte Carlo na GPU em vez da CPU. River River é um kit de ferramentas usado para desenvolver sistemas distribuídos Foi usado como um framework para construir aplicações baseadas No padrão SBA. Apache Hadoop - no e Então o uso de Hadoop oferece uma solução interessante para o problema de grandes dados Hadoop pode ser implantado em um ambiente em cluster suportando tecnologias CUDA. AlgoTrader - uma plataforma de negociação algorítmica de código aberto AlgoTrader poderia potencialmente ser implantado no FIX, FAST e FIXatd. Apesar de não ser uma tecnologia ou uma estrutura, os componentes devem ser construídos com uma API de interface de programação de aplicativo para melhorar a interoperabilidade Do sistema e seus componentes. A arquitetura proposta foi projetada para satisfazer requisitos muito genéricos identificados para sistemas de negociação algorítmica Geralmente falando sistemas de negociação algorítmica são complicados por três fatores que variam com cada implementação. Dependências em sistemas de empresa externa e troca. Desafiando requisitos não funcionais E. Ev Portanto, a arquitetura de software proposta precisaria ser adaptada caso a caso, a fim de satisfazer requisitos organizacionais e regulatórios específicos, bem como superar restrições regionais. A arquitetura do sistema de negociação algorítmica deve ser vista como apenas um Ponto de referência para indivíduos e organizações que desejam projetar seus próprios sistemas de negociação algorítmicos. Para obter uma cópia completa e fontes usadas por favor faça o download de uma cópia do meu relatório Obrigado. High freqüência design do sistema de negociação e gestão de processos. Alta freqüência sistema de comércio de design e gestão de processos. Empresa Roy E Welsch. Department System Design e Gestão Program. Publisher Massachusetts Institute of Technology. Date Emitida 2009.Trading empresas hoje em dia são altamente dependentes de mineração de dados, modelagem de computador e desenvolvimento de software analistas financeiros executar muitas tarefas semelhantes aos de software e fabricação No entanto, o sector financeiro ainda não Adotou padrões de engenharia de sistemas de alto padrão e abordagens de gerenciamento de processos que tiveram êxito nas indústrias de software e manufatura Muitas das metodologias tradicionais de design de produtos, controle de qualidade, inovação sistemática e melhoria contínua encontradas em disciplinas de engenharia podem ser aplicadas ao campo de finanças Esta tese mostra como o conhecimento adquirido de disciplinas de engenharia pode melhorar o design e gestão de processos de sistemas de negociação de alta freqüência Sistemas de negociação de alta freqüência são baseados em computação Estes sistemas são sistemas de software automáticos ou semi-automáticos que são inerentemente complexos e requerem um alto grau de Design precisão O design de um sistema de negociação de alta freqüência liga vários campos, incluindo finanças quantitativas, design de sistemas e engenharia de software No setor de finanças, onde as teorias matemáticas e modelos de negociação são relativamente bem pesquisados, a capacidade de implementar esses projetos em pra A capacidade de converter idéias de investimento em sistemas de negociação de alto desempenho de forma eficaz e eficiente pode dar a uma empresa de investimento uma enorme vantagem competitiva. Esta tese fornece um estudo detalhado composto de alta freqüência sistema de comércio de design , Modelagem de sistemas e princípios e gerenciamento de processos para desenvolvimento de sistemas ênfase particular é dada ao backtesting e otimização, que são considerados as partes mais importantes na construção de um sistema de negociação Esta pesquisa constrói modelos de engenharia de sistema que orientam o processo de desenvolvimento Ele também usa sistemas de comércio experimental Para validar e validar os princípios abordados nesta tese Finalmente, esta tese conclui que os princípios de engenharia de sistemas e estruturas podem ser a chave para o sucesso para a implementação de sistemas de negociação de alta freqüência ou de investimento quantitativo. Thesis SM - Massachusetts Institute of Technology, Design e Gestão de Sistemas Programa, 2009 Catalogado a partir da versão em PDF da tese Inclui referências bibliográficas p 78-79.Palavras-chave Projeto de Sistema de Gestão e Programa. Este post irá detalhar o que eu fiz para fazer aproximadamente 500k de alta freqüência de negociação de 2009 a 2010 Desde que eu estava negociando completamente independente e Eu não estou mais executando o meu programa Eu estou feliz em dizer tudo Meu negócio foi principalmente em Russel 2000 e contratos de futuros DAX. A chave para o meu sucesso, eu acredito, não estava em uma equação financeira sofisticada, mas sim no design do algoritmo global que ligados juntos Muitos componentes simples e aprendizado de máquina usado para otimizar para rentabilidade máxima Você ganhou t necessidade de saber qualquer terminologia sofisticada aqui, porque quando eu configurar o meu programa era tudo baseado em intuição Andrew Ng s curso de aprendizagem incrível máquina ainda não estava disponível - btw se você clicar Que link você vai ser levado para o meu projeto atual CourseTalk, um site de revisão para MOOCs. Primeiro, eu só quero demonstrar que o meu sucesso não foi simplesmente o resu De sorte Meu programa fez 1000-4000 comércios por dia meio de comprimento, meio curto e nunca entrou em posições de mais de alguns contratos de cada vez Isso significou a sorte aleatória de qualquer um determinado comércio média fora muito rápido O resultado foi que eu nunca Perdeu mais de 2000 em um dia e nunca teve um mês perdedor. EDIT Estes números são depois de pagar commissions. And aqui uma carta para dar-lhe uma noção da variação diária Note isso exclui os últimos 7 meses porque - como os números pararam de subir - eu perdi a minha motivação para entrar them. My background. Prior comércio Para a criação do meu programa de negociação automatizado Eu d tinha 2 anos de experiência como um dia comerciante manual Esta foi de volta em 2001 - foi os primeiros dias de comércio eletrônico e houve oportunidades para scalpers para fazer bom dinheiro só posso descrever o que eu estava fazendo Como semelhante a jogar um jogo de vídeo jogo com uma suposta vantagem Ser bem sucedido significava ser rápido, ser disciplinado e ter um bom intuitivo reconhecimento de padrões habilidades que eu era capaz de fazer em torno de 250k, pagar os meus empréstimos estudantis e ter dinheiro sobrando Win. Over Os próximos cinco anos eu iria lançar duas startups, pegando algumas habilidades de programação ao longo do caminho Não seria até o final de 2008 que eu iria voltar a negociação Com o dinheiro a correr baixo da venda da minha primeira inicialização, Negociação ofereceu esperanças de algum dinheiro rápido, enquanto eu descobri o meu próximo movimento. Em 2008, eu estava manualmente dia futuros de negociação usando o software chamado T4 eu estava querendo alguns hotkeys de entrada de pedidos personalizados, então depois de descobrir T4 tinha uma API, eu assumi o desafio De aprender C a linguagem de programação necessária para usar a API e fui em frente e construiu-me algumas hotkeys. After ficando meus pés molhados com a API eu logo tinha maiores aspirações que eu queria ensinar o computador para o comércio para mim A API forneceu tanto um fluxo de Dados de mercado e uma maneira fácil de enviar ordens para a troca - tudo que eu tinha a fazer era criar a lógica no middle. Below é uma imagem de uma janela de negociação T4 O que era legal é que quando eu tenho o meu programa de trabalho eu era capaz de Assistir o comércio de computador nesta mesma interface mesmo Observando ordens reais popping dentro e fora por si com o meu dinheiro real foi emocionante e assustador. O design do meu algoritmo. Desde o início meu objetivo era configurar um sistema tal que eu poderia ser razoavelmente Co Nfident Eu d fazer o dinheiro antes de fazer sempre todos os comércios vivos Para conseguir isto eu necessitei construir uma estrutura de simulação negociando que - como exatamente como possível - simular a negociação viva. Enquanto negociando em modalidade viva requereu atualizações de mercado processando fluidas através da API, Necessário ler atualizações de mercado de um arquivo de dados Para coletar esses dados eu configurar a primeira versão do meu programa para simplesmente ligar à API e registro de atualizações do mercado com timestamps acabei usando 4 semanas de dados de mercado recente para treinar e testar meu sistema em . Com um quadro básico no lugar eu ainda tinha a tarefa de descobrir como fazer um sistema de comércio rentável Como se vê que o meu algoritmo iria dividir em dois componentes distintos, que eu vou explorar em turn. Predicting movimentos de preços e. Making rentável Movimentos de preços de previsão. Talvez um componente óbvio de qualquer sistema de negociação é ser capaz de prever onde os preços vão se mover e mina não foi nenhuma exceção Eu defini a corrente Preço como a média da oferta interna e oferecer dentro e eu definir o objetivo de prever onde o preço seria nos próximos 10 segundos Meu algoritmo precisaria chegar a essa previsão momento a momento durante todo o dia de negociação. Criando otimização Eu criei um punhado dos indicadores que provaram ter uma abilidade significativa de prever movimentos do preço a curto prazo Cada indicador produziu um número que era positivo ou negativo Um indicador era útil se mais frequentemente do que não um número positivo correspondeu com o mercado que vai acima E um número negativo correspondeu com o mercado indo para baixo. Meu sistema me permitiu determinar rapidamente quanto a capacidade de previsão de qualquer indicador tinha assim que eu era capaz de experimentar com um monte de diferentes indicadores para ver o que funcionou Muitos dos indicadores tinham variáveis nas fórmulas Que os produziu e pude encontrar os valores ótimos para essas variáveis, fazendo comparações lado a lado dos resultados obtidos com valores variáveis. Dicators que foram mais úteis foram todos relativamente simples e foram baseados em eventos recentes no mercado que eu estava negociando, bem como os mercados de valores correlacionados. Fazer previsões de preço exato movimento. Tendo indicadores que simplesmente previu um movimento de preços para cima ou para baixo wasn t suficiente Eu precisava saber exatamente quanto movimento de preço foi previsto por cada valor possível de cada indicador que eu precisava de uma fórmula que iria converter um valor indicador para uma previsão de preço. Para isso, eu segui o preço previsto movimentos em 50 baldes que dependiam do intervalo que O valor do indicador caiu em Este produzido único previsões para cada balde que eu era então capaz de gráfico no Excel Como você pode ver a mudança de preço esperado aumenta à medida que o valor do indicador aumenta. Com base em um gráfico como este, eu era capaz de fazer uma fórmula Para ajustar a curva No começo eu fiz essa curva de ajuste manualmente, mas eu logo escreveu algum código para automatizar este processo. Note que nem todas as curvas indicador tinha o mesmo s Hape Observe também que os baldes foram logaritmicamente distribuídos de modo a espalhar os pontos de dados de forma uniforme Finalmente, note que os valores dos indicadores negativos e suas correspondentes predições de preços para baixo foram invertidos e combinados com os valores positivos Meu algoritmo tratada para cima e para baixo exatamente os mesmos indicadores para um único Uma coisa importante a considerar era que cada indicador não era inteiramente independente Eu não poderia simplesmente somar todas as previsões que cada indicador fez individualmente A chave era descobrir o valor preditivo adicional que cada indicador tinha além do que já estava previsto Isto Não era difícil de implementar, mas isso significava que se eu estava ajustando a curva vários indicadores, ao mesmo tempo, eu tinha que ser cuidadoso alterando uma seria efeito as previsões de outro. A fim de curva se encaixam todos os indicadores ao mesmo tempo eu Configurar o otimizador para passo apenas 30 do caminho para as novas curvas de previsão com cada passagem Com este salto 30 eu encontrei Que as curvas de previsão se estabilizariam dentro de poucas passagens. Com cada indicador agora dando-nos a sua previsão de preço adicional eu poderia simplesmente adicioná-los para produzir uma única previsão de onde o mercado estaria em 10 segundos. Por que prever os preços não é suficiente. Você pode pensar que com essa vantagem no mercado eu era dourado Mas você precisa ter em mente que o mercado é composto de lances e oferece - não é apenas um preço de mercado O sucesso na negociação de alta freqüência vem para baixo para obter bons preços e Não é fácil. Os seguintes fatores fazem a criação de um sistema rentável difícil. Com cada troca eu tive que pagar comissões a meu corretor ea troca. A diferença da propagação entre o lance o mais elevado ea oferta mais baixa significou que se eu fosse simplesmente comprar e Vender aleatoriamente eu d estar perdendo uma tonelada de money. Most do volume de mercado foi outros bots que só iria executar um comércio comigo se eles pensaram que tinham alguma edge. Seeing estatística uma oferta não garantia que eu poderia comprá-lo Pelo Tempo minha ordem de compra chegou à troca era muito possível que essa oferta teria sido cancelled. As um jogador de mercado pequeno não havia nenhuma maneira que eu poderia competir em velocidade alone. Building uma simulação de negociação completa. Então eu tinha um quadro que me permitiu Para backtest e otimizar indicadores Mas eu tinha que ir além disso - eu precisava de uma estrutura que me permitiria backtest e otimizar um sistema de comércio completo onde eu estava enviando ordens e ficando em posições Neste caso eu d ser otimização para PL total e Em certa medida média PL por trade. This seria mais complicado e de alguma forma impossível de modelar exatamente, mas eu fiz o melhor que pude Aqui estão alguns dos problemas que eu tive que lidar com. Quando uma ordem foi enviada para o mercado em simulação Eu tive que modelar o tempo do lag O fato que meu sistema viu uma oferta não significou que poderia o comprar imediatamente O sistema emitiria a ordem, espere aproximadamente 20 milissegundos e então somente se a oferta era ainda lá era ele considerado como um Comércio executado Isso foi inexato, porque o tempo de atraso real foi inconsistente e unreported. When eu coloquei ofertas ou ofertas eu tive que olhar para o fluxo de execução de comércio fornecido pela API e usá-los para medir quando a minha ordem teriam sido executados contra Para fazer isso direito eu Tinha que rastrear a posição da minha ordem na fila É um sistema first-in first-out Mais uma vez, eu não poderia fazer isso perfeitamente, mas fiz uma melhor aproximação. Para refinar a minha simulação de execução de ordem o que fiz foi pegar meus arquivos de log de Live trading através da API e compará-los a arquivos de log produzidos por negociação simulada a partir do mesmo período de tempo exato eu era capaz de obter a minha simulação para o ponto que era bastante preciso e para as peças que eram impossíveis de modelo, Pelo menos produzir resultados que foram estatisticamente semelhantes nas métricas que eu pensei que eram importantes. Fazendo negócios rentáveis. Com um modelo de simulação de ordem no lugar eu poderia agora enviar ordens no modo de simulação e ver um PL simulado Mas como seria m Y sistema saber quando e onde comprar e vender. As previsões de movimento de preço foram um ponto de partida, mas não toda a história O que eu fiz foi criar um sistema de pontuação para cada um dos 5 níveis de preços sobre a oferta e oferta Estes incluíam um nível acima do interior Lance para uma ordem de compra e um nível abaixo da oferta interna para uma ordem de venda. Se a pontuação em qualquer nível de preço foi acima de um determinado limite que significaria meu sistema deve ter uma oferta de oferta ativa lá - abaixo do limiar então qualquer ordens ativas Deve ser cancelado Com base nisso, não era incomum que meu sistema iria flash um lance no mercado, em seguida, cancelá-lo imediatamente Embora eu tentei minimizar isso como ele é irritante como o diabo para quem está olhando para a tela com os olhos humanos - incluindo me. The Os níveis de preços foram calculados com base nos seguintes fatores. A previsão de movimento de preço que discutimos anteriormente. O nível de preço em questão Os níveis internos significavam maiores previsões de movimento de preços. O número de contratos na frente do meu Ordem na fila Menos foi better. The número de contratos por trás da minha ordem na fila Mais foi better. Essentially estes fatores serviram para identificar lugares seguros para oferecer oferta A previsão de movimento de preços por si só não era adequada, porque não conta para o fato de que Ao colocar uma oferta eu não estava automaticamente preenchido - só fiquei preenchido se alguém me vendeu lá A realidade era que o mero fato de alguém vender para mim em um determinado preço mudou as probabilidades estatísticas do comércio. As variáveis usadas nesta etapa Foram todos sujeitos a otimização Isso foi feito da mesma maneira que eu otimizado variáveis nos indicadores de movimento de preço, exceto neste caso eu estava otimizando para linha de fundo P L. O que o meu programa ignorado. Quando negociação como seres humanos que muitas vezes têm poderosas emoções e Preconceitos que podem levar a decisões menos do que o ideal Claramente eu não queria codificar esses preconceitos Aqui estão alguns fatores que meu sistema ignorou. O preço que uma posição foi inserida - Em um escritório de comércio é bastante comum Para ouvir a conversa sobre o preço em que alguém é longo ou curto como se isso deve afetar sua tomada de decisão futura Embora isso tenha alguma validade como parte de uma estratégia de redução de risco que realmente não tem qualquer influência sobre o curso futuro dos eventos no mercado Portanto, O programa ignorou completamente esta informação É o mesmo conceito que ignorando custos afundados. Vendo curto vs saindo de uma posição longa - tipicamente um comerciante teria diferentes critérios que determina onde vender uma posição longa versus onde ir curto No entanto a partir de minha perspectiva de algoritmos havia Nenhuma razão para fazer uma distinção Se o meu algoritmo esperava uma venda para baixo movimento foi uma boa idéia, independentemente de se ele estava atualmente longo, curto ou flat. A dobrar estratégia - Esta é uma estratégia comum onde os comerciantes vão comprar mais ações no evento Que há comércio original vai contra eles Isso resulta em seu preço médio de compra sendo menor e isso significa quando ou se o estoque gira em torno de você vai ser configurado para fazer o seu Ey de volta em nenhum momento Na minha opinião, esta é realmente uma estratégia horrível a menos que você re Warren Buffet Você está enganado em pensar que você está fazendo bem, porque a maioria de seus comércios serão vencedores O problema é quando você perde você perde grande O outro efeito é Torna difícil julgar se você realmente tem uma vantagem no mercado ou estão apenas ficando sortudos Ser capaz de monitorar e confirmar que o meu programa, de facto, ter uma vantagem foi um objetivo importante. Desde o meu algoritmo tomou decisões da mesma maneira, independentemente de onde Ele entrou em um comércio ou se era atualmente longo ou curto que ocasionalmente sentar e tomar algumas grandes operações perdedoras, além de alguns grandes negócios vencedor Mas, você shouldn t acho que não havia nenhuma gestão de risco. Para gerenciar o risco eu reforçado um máximo Tamanho de posição de 2 contratos de cada vez, ocasionalmente bumped up em dias de alto volume Eu também tinha um limite máximo de perda diária para proteger contra quaisquer condições de mercado inesperado ou um bug no meu software Estes limites foram aplicadas no meu código bu T também no back-end através do meu corretor Como aconteceu eu nunca encontrei qualquer problems. Running significa o algoritmo. Desde o momento em que eu comecei a trabalhar no meu programa que me levou cerca de 6 meses antes que eu comecei a ponto de rentabilidade e começou a executá-lo Ao vivo Embora para ser justo uma quantidade significativa de tempo estava aprendendo uma nova linguagem de programação Como eu trabalhei para melhorar o programa eu vi aumento de lucros para cada um dos próximos quatro meses. Cada semana eu retrain meu sistema baseado no valor de 4 semanas anteriores de Os dados que eu encontrei este golpeou o contrapeso direito entre capturar tendências comportamentais recentes do mercado e segurar meu algoritmo tiveram bastante dados para estabelecer testes padrões significativos Como o treinamento começou a tomar mais e mais tempo eu o separei para que pudesse ser executado por 8 máquinas virtuais usando amazon EC2 Os resultados foram então coalesced na minha máquina local. O ponto alto da minha negociação foi de outubro de 2009, quando eu fiz quase 100k Depois disso eu continuei a passar os próximos quatro meses t Rying para melhorar meu programa apesar do lucro diminuído cada mês Infelizmente por este ponto eu supor que eu implementei todas minhas melhores idéias porque nada que eu tentei parecer ajudar muito. Com a frustração de não poder fazer melhorias e de não ter um sentido do crescimento eu Comecei a pensar em uma nova direção Eu enviei um e-mail a 6 empresas de negociação de alta freqüência diferentes para ver se eles estariam interessados em comprar meu software e contratar-me para trabalhar para eles Ninguém respondeu que eu tinha algumas novas idéias de inicialização que eu queria trabalhar,.UPDATE - Eu postei isso no Hacker News e ele tem recebido muita atenção Eu só quero dizer que eu não defendo ninguém tentando fazer algo parecido com eles agora Você precisaria de uma equipe de pessoas realmente inteligentes com uma gama de experiências Para ter qualquer esperança de competir Mesmo quando eu estava fazendo isso eu acredito que era muito raro para os indivíduos para alcançar o sucesso, embora eu tinha ouvido falar de others. There é um comentário no topo da página que menciona manipulado sta Tistics e refere-se a mim como um investidor de varejo que quants would gleefully pick off Este é um comentário um pouco lamentável que s simplesmente não baseado na realidade Definição que de lado há alguns comentários interessantes. UPDATE 2 - Eu ve postou um FAQ que responde Algumas perguntas comuns que eu recebi de comerciantes sobre este post.
Comments
Post a Comment