Sistemas de comércio Em resposta a esta postagem por Robert Raschke Em 1 de outubro de 2009, às 11:58, Robert Raschke escreveu: gt Você quer uma loja de dados baseada em coluna, K vem à mente (kx gt). Eu tenho esse e realmente sei como usá-lo. Gt Se você quiser algo um pouco mais aberto, veja J (jsoftware gt) e seu esforço JDB. Uma boa substituição gratuita. Gt Permanecendo com o tema de uma letra (deve ser uma piada de stats gt heads, methinks), há também S e R. Boa aparência procurando por gt aqueles -) Procurando por QuantMod é mais fácil. Esse é um módulo que fornece ferramentas de negociação para R, incluindo gráficos. Ainda assim, gostaria de saber como isso pode ser feito com Erlang, o melhor possível. E não, eu não acho que eu quero usar matrizes de bytes, gbtrees ou o módulo de matriz). Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta publicação por Joel Reymont Como de costume, você está pulando diretamente em otimizações de baixo nível sem explicar por que isso seria necessário :). Seria bom se você pudesse explicar o que o sistema precisa fazer e, depois disso, por que você acha que é um problema para armazenar os preços em uma tabela ETS. Estou certo de que existem outras opções também. Pelo menos para mim, não é óbvio o desempenho que é necessário para um aplicativo como este. E o desempenho puro pode não ser o único motivo para usar Erlang. Também pode ser que é muito simples implementar e manter a solução e que é muito grande em vários núcleos sem trabalho extra para o programador. Por que você está falando sobre arquivos mmapped Por favor, explique para um iniciante em sistemas de negociação. Em Thu, 1 de outubro de 2009, às 12:45, Joel Reymont, um e-mail escondido, gt escreveu: gt Alguém usou Erlang para sistemas de negociação backtest gt gt. Isso basicamente envolve o carregamento de preços e os pares de timestapp gt e iterando sobre eles calculando várias coisas como gt moving Médias, correlação, etc. gt gt No topo da minha cabeça, Erlang não parece ser a plataforma mais eficiente para isso porque os preços deveriam ser preenchidos em ETS ou copiados de outra forma. Gt gt A maneira mais eficiente de gerenciar dados de preços é simplesmente manter as citações de adição de gt ao final de um arquivo mmap-ed. Eu adoraria que gt representasse a memória mmap-ed como um binário e acho que talvez seja possível. Isso exigiria algum trabalho complicado no nível do driver gt, no entanto. Gt gt O que você acha gt gt Obrigado, Joel gt gt --- gt mais rápido mac firefox gt wagerlabs gt gt gt gt erlang-perguntas mailing list. Veja erlang. orgfaq. html gt erlang-questions (at) erlang. org gt gt erlang-questions mailing list. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em 1 de outubro de 2009, às 16h50, Kenneth Lundin escreveu: gt Seria bom se você pudesse explicar o que o sistema precisa fazer e depois disso Por que você acha que é um problema para armazenar os preços em uma tabela ETS. Gt. Gt Por que você está falando sobre arquivos mmapped Por favor, explique para um novato gt em sistemas de negociação. Seus sistemas de negociação de alta frequência estou falando. Quando Serge Aleynikov 1 for necessário, gostaria de processar uma cotação de preço recebida, tomar uma decisão e enviar uma ordem comercial com mínima latência. Eu sei que isso normalmente é feito usando C (ou OCaml 1), mas estou me perguntando como isso pode ser conseguido usando o Erlang. A latência mínima geralmente é alcançada ao bater o cache da CPU com a maior frequência possível e minimizar a sobrecarga de cópia de memória. ETS copia memória e eu suspeito que seu uso do cache é bastante fraco em virtude de ser uma tabela de quothash e apontar para todo o lugar na memória. Uma simples série de flutuadores ou duplos agrupam dados juntos na memória e são muito compatíveis com cache. Eu acho que um binário Erlang é o mais próximo que posso chegar a uma matriz em Erlang. Mmap-ing um arquivo de flutuadores ou duplos e envolvê-lo em um binário deve evitar a cópia desnecessária de dados de disco para memória. Eu acho que operar em binários que representam arquivos mmap-ed de cotações de preços é tão próximo como você pode obter baixa latência em Erlang. Eu sei que a otimização prematura é a raiz de todos os maus, mas eu prefiro ter meus dentes puxados do que otimizar o Erlang. Isso é falar de experiência. Eu acho que uma maneira muito melhor é escolher um conceito que garanta um código rápido desde o início. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta postagem por Joel Reymont Em Thu, 01 de outubro de 2009 às 05:04:12 PM 0100, Joel Reymont escreveu: gt Kenneth, gt gt On Oct 1 2009, às 16h50, Kenneth Lundin escreveu: gt gt GtIt seria bom se você pudesse explicar o que o sistema precisa fazer depois que gt gwwhy você acha que é um problema para armazenar os preços em uma tabela ETS. Gt gt. Gt gtPor que você está falando sobre arquivos mmapped Por favor, explique por um novato gt gtin trading systems. Gt gt Seus sistemas de negociação de alta freqüência estou falando. Quando for Serge gt Aleynikov 1 quando você precisar dele gt gt, gostaria de processar uma cotação de preço recebida, tomar uma decisão e enviar uma ordem comercial com mínima latência. Eu sei que isso é gt normalmente feito usando C (ou OCaml 1), mas estou me perguntando como isso pode ser alcançado usando Erlang. Gt gt A latência mínima geralmente é alcançada ao bater o cache da CPU como gt o mais rápido possível e minimizar a sobrecarga de cópia de memória. ETS gt copia memória e eu suspeito que seu uso do cache é bastante fraco por virtude de ser uma tabela de quothash e apontar para todo o lugar na memória gt. Gt gt Uma simples série de flutuadores ou duplos agrupam dados juntos na memória e gt é muito compatível com cache. Eu acho que um binário Erlang é o gt mais próximo que eu posso chegar a uma matriz em Erlang. Mmap-ing um arquivo de flutuadores ou duplos gt e envolvê-lo em um binário deve evitar a cópia desnecessária de dados gt de disco para memória. Gt gt Eu acho que operar em binários que representam arquivos mmap-ed de cotações de preço gt é tão próximo quanto você pode obter baixa latência em Erlang. Eu sei que essa otimização prematura é a raiz de todos os maus, mas eu prefiro ter meus dentes puxados do que otimizar Erlang. Isso está falando da experiência gt. Eu acho uma maneira muito melhor é escolher um conceito que gt garante código rápido desde o início. Gt Theres sempre o bit de hipe indocumentado e bytearrays (que são mutáveis) se você estiver disposto a sacrificar tudo no altar do desempenho. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Abra esta postagem na visão threaded Conteúdo do relatório como inapropriado Re: sistemas de negociação Em 1 de outubro de 2009, às 17h40, Andrew Thompson escreveu: gt Theres sempre o indocumentado Bit do jeito e bytearrays (que são gt mutable) se você estiver disposto a sacrificar tudo no altar da performance gt. Você não pode armazenar duplas em um bytearray do que eu sei. Além disso, você precisa preencher a matriz de bytes, que envolve o carregamento de dados do disco em buffers, em erlang, etc. mmap para a lista de discussão win erlang-questions. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Abra esta postagem em exibição threaded Conteúdo do relatório como inapropriado Re: sistemas de negociação Em resposta a esta postagem por Joel Reymont Crap, o grupo respondeu em vez da lista respondida. On Thu, 01 de outubro de 2009 às 05:04:12 PM 0100, Joel Reymont escreveu: gt Kenneth, gt gt Em 1 de outubro de 2009, às 16:50, Kenneth Lundin escreveu: gt gt GtIt seria bom se você pudesse explicar O que o sistema precisa fazer depois que gt gwwhy você acha que é um problema para armazenar os preços em uma tabela ETS. Gt gt. Gt gtPor que você está falando sobre arquivos mmapped Por favor, explique por um novato gt gtin trading systems. Gt gt Seus sistemas de negociação de alta freqüência estou falando. Quando for Serge gt Aleynikov 1 quando você precisar dele gt gt, gostaria de processar uma cotação de preço recebida, tomar uma decisão e enviar uma ordem comercial com mínima latência. Eu sei que isso é gt normalmente feito usando C (ou OCaml 1), mas estou me perguntando como isso pode ser alcançado usando Erlang. Gt gt A latência mínima geralmente é alcançada ao bater o cache da CPU como gt o mais rápido possível e minimizar a sobrecarga de cópia de memória. ETS gt copia memória e eu suspeito que seu uso do cache é bastante fraco por virtude de ser uma tabela de quothash e apontar para todo o lugar na memória gt. Gt gt Uma simples série de flutuadores ou duplos agrupam dados juntos na memória e gt é muito compatível com cache. Eu acho que um binário Erlang é o gt mais próximo que eu posso chegar a uma matriz em Erlang. Mmap-ing um arquivo de flutuadores ou duplos gt e envolvê-lo em um binário deve evitar a cópia desnecessária de dados gt de disco para memória. Gt gt Eu acho que operar em binários que representam arquivos mmap-ed de cotações de preço gt é tão próximo quanto você pode obter baixa latência em Erlang. Eu sei que essa otimização prematura é a raiz de todos os maus, mas eu prefiro ter meus dentes puxados do que otimizar Erlang. Isso está falando da experiência gt. Eu acho uma maneira muito melhor é escolher um conceito que gt garante código rápido desde o início. Gt Theres sempre o bit de hipe indocumentado e bytearrays (que são mutáveis) se você estiver disposto a sacrificar tudo no altar do desempenho. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Abra esta postagem na exibição threaded Conteúdo do relatório como inapropriado Re: sistemas de negociação Em resposta a esta postagem por Joel Reymont, tentei implementar um sistema backtestingexecution em Erlang alguns anos atrás , Mas finalmente desistiu e se mudou para Java. Eu não estava negociando intradía naquele momento (apenas usando dados diários), então o desempenho nunca foi um problema. Meu maior problema com Erlang é que faltava bibliotecas essenciais, e acho que isso ainda é um problema hoje. Do topo da minha cabeça: - Conversão de datas entre diferentes horários - eu precisava disso porque eu troco várias trocas em todo o mundo (NYSE, Londres). Você pode fazer isso em Erlang configurando a variável de ambiente TZ antes de chamar as funções da data, mas é hackeado e nunca mais consegui-lo funcionar. - Aritmética de ponto fixo, para coisas como dinheiro. Você não precisa disso para compartilhar preços e tal, mas você precisará, pelo menos em alguns lugares, se você se importar com a precisão, como para o uso de PnLs e outros. Isso não é muito um problema quando você está testando, mas pelo menos no meu caso eu quero que as coisas sejam tão precisas quanto possível ao fazer negócios reais. - Bibliotecas matemáticas e científicas. Para coisas como a arbitragem estatística, você precisará eventualmente calcular mais coisas além de correlações, por exemplo, Para fazer regressões lineares e tal. Erlang não tem bibliotecas para isso. - Conectividade FIX, ou interfaces para corretores padrão, como Interactive Brokers. - Interfaces gráficas de usuário. Implementá-los no Erlang puro não faz muito sentido porque é muito limitado (embora agora você tenha ligações para wx, então talvez seja melhor agora). - Gráficos. Mesmo que você não esteja fazendo análise técnica, você ainda precisa gerar gráficos simples como curvas de equidade e, portanto, fazer backtesting. A maioria dessas coisas pode ser implementada em Erlang e algumas delas não são tão difíceis, mas isso diminui consideravelmente. E, claro, você sempre pode escrever partes de sua aplicação em outros idiomas e conectá-las com o Erlang, mas isso também é complicado. Eu finalmente fui assim - eu implementei partes do meu aplicativo em Java - mas então cheguei a um ponto em que não faz muito sentido usar o Erlang mais. Se você estiver usando Java para a GUI e Java para conversar com o corretor e Java para gerar relatórios, o que você está usando Erlang para eu poderia facilmente ser muito mais produtivo em um idioma como o Java que possui bibliotecas para tudo, mesmo que Java É uma dor para usar. Claro, preferiria usar Erlang, mas pelo menos para este projeto a falta de bibliotecas era realmente um problema. As coisas podem ser melhores agora, há a nova interface FFI e, por enquanto, eu simplesmente evitaria Erlang para negociação. Claro que você pode ter um conjunto diferente de requisitos - isso pode não se aplicar a você se você quiser implementar um simples bot comercial e ter outro sistema no local para gerenciar pedidos, execuções, etc. Em 1 de outubro, 11h45. Joel Reymont e-mail ltidden gt escreveu: gt Alguém usou Erlang para sistemas de negociação backtest gt gt Isso basicamente envolve o carregamento de preços e ocasiões de timestapp gt e iterando sobre eles calculando várias coisas como gt, médias móveis, correlação, etc. gt gt Off the top of Minha cabeça, Erlang não parece ser a plataforma mais eficiente para isso porque os preços deveriam ser preenchidos em ETS ou copiados de outra forma. Gt gt A maneira mais eficiente de gerenciar dados de preços é simplesmente manter as citações de adição de gt ao final de um arquivo mmap-ed. Eu adoraria que gt representasse a memória mmap-ed como um binário e acho que talvez seja possível. Isso exigiria algum trabalho complicado no nível do driver gt, no entanto. Gt gt O que você acha gt gt Obrigado, Joel gt gt --- gt mais rápido mac firefoxwagerlabs gt gt gt erlang-perguntas mailing list. Seeerlang. orgfaq. html gt erlang-questions (at) erlang. org Em 1 de outubro de 2009, às 18h06, Artur Matos escreveu: gt As coisas podem ser melhores agora, há a nova interface FFI e, há uma nova Interface FFI Se você está falando sobre BIFs carregáveis, eu gostaria muito de usá-lo. Gt Claro que você pode ter um conjunto diferente de requisitos - isso pode não se aplicar a você se você quiser implementar um simples bot de negócios, gt e ter outro sistema no lugar para gerenciar ordens, execuções, gt etc. A plataforma estou pensando Sobre é bastante simples. Considere o EasyLanguage (EL) por exemplo 1. Este é um idioma semelhante a Pascal, o Básico das linguas comerciais a julgar pela popularidade. É o idioma usado pela TradeStation 2. É uma linguagem pura e muito capaz, mas a sua utilização exige que você cuide do seu desktop. Você não pode colocar o EL no servidor para negociação autônoma, mas monitorada. A própria linguagem não tem estatísticas de serviço pesado ou qualquer tipo do tipo. Tem uma série de indicadores técnicos, como as médias móveis. Na verdade, a maioria, senão todos os indicadores, são implementados no EL em vez de construídos. Já escrevi compiladores do EL para C em Haskell, OCaml e Lisp 3. Planejo escrever outro compilador, desta vez em e para Erlang. Eu então planejo vender esse sistema de execução quotblack boxquot para casas de corretagem e permitir que eles ofereçam um serviço de valor agregado aos seus clientes. A execução do lado do servidor (co-localizado) não precisa de nenhum gráfico ou gráfico, embora uma interface da web viesse a ser extremamente útil. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta postagem por Joel Reymont Por favor, explique mais. Eu também ouvi sobre os requisitos de latência para os sistemas de negociação, mas eles ainda são muito difusos para mim. Tenho a impressão de que a latência é um grande ponto de venda para os sistemas de negociação, mas, na realidade, pode haver outros fatores que são mais limitantes e torna desnecessária a busca de latência em certo nível. Por favor, explique mais. Um sistema de backtest não é executado em tempo real e não deve haver requisitos absolutos de latência. Corrija-me se eu estiver errado. Em Thu, 1 de outubro de 2009, às 18h04, Joel Reymont, um e-mail lidado, escreveu: gt Kenneth, gt gt Em 1 de outubro de 2009, às 16h50, Kenneth Lundin escreveu: gt gtgt seria bom se você pudesse Explique o que o sistema precisa fazer e gtgt depois desse gtgt porque você acha que é um problema para armazenar os preços em uma tabela ETS. Gtgt. Gtgt Por que você está falando sobre arquivos mmapped Por favor, explique para um novato em sistemas de negociação. Gt gt Seus sistemas de negociação de alta freqüência estou falando. Quando for Serge gt Aleynikov 1 quando você precisar dele gt gt Id gostaria de processar uma cotação de preço recebida, tomar uma decisão e enviar uma ordem comercial gt com latência mínima. Eu sei que isso normalmente é feito usando gt C (ou OCaml 1), mas estou me perguntando como isso pode ser alcançado usando Erlang. Gt Você tem um servidor que suporta algum protocolo (provavelmente FIX). A cotação de preços chega desta forma A decisão é tomada no servidor A ordem comercial é tratada no servidor ou enviada para outro sistema De onde. Para onde é a latência medida De seu raciocínio, parece que a latência de comunicação de codificação de codificação não faz parte da latência importante. Nesse caso, por que não De qualquer forma, deve haver algum valor de latência que seja apenas bom o suficiente e que vá abaixo, isso é apenas questões erlang desnecessárias Lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta publicação por Joel Reymont, eu realmente recomendaria começar com uma implementação ingênua. Se alguma coisa, isso lhe dará algo para usar como linha de base para comparação e criação de perfil, você irá dizer o quanto você pode eventualmente salvar com uma abordagem mais complexa. Além disso, brinque com HIPE. Atualmente, é um pouco instável para uso geral, mas a compilação judiciosa HIPE de módulos-chave pode ser muito útil. Por curiosidade, quais características do Erlang fazem você querer tentar isso. Parece que isso foi feito mais para a escalabilidade de tolerância a falhas e menos para a menor latência absoluta. Em 1 de outubro de 2009, às 3:45 da manhã, Joel Reymont escreveu: gt Alguém já usou Erlang para sistemas de negociação de backtest gt gt. Isso basicamente envolve o carregamento de preços e os ocasos de timestamp gt e iterando sobre eles calculando várias coisas como gt, médias móveis, correlação, Etc. gt gt No topo da minha cabeça, Erlang não parece ser a plataforma mais eficiente para isso, porque os preços deveriam ser preenchidos em ETS ou copiados de outra forma. Gt gt A maneira mais eficiente de gerenciar dados de preços é simplesmente manter as citações de adição de gt ao final de um arquivo mmap-ed. Eu adoraria que gt representasse a memória mmap-ed como um binário e acho que talvez seja possível. Isso exigiria algum trabalho complicado no nível do driver gt, no entanto. Gt gt O que você acha gt gt Obrigado, Joel gt gt --- gt mais rápido mac firefox gt wagerlabs gt gt gt gt erlang-perguntas mailing list. Veja erlang. orgfaq. html gt erlang-questions (at) erlang. org gt erlang-questions mailing list. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta postagem por Kenneth Lundin Em 1 de outubro de 2009, às 19h43, Kenneth Lundin escreveu: gt. Por favor, explique mais. Sinta-se à vontade para fazer perguntas pontuadas. Tenho a impressão de que a latência é um grande ponto de venda para os sistemas de negociação gt. Se você pode reagir ao mercado mais rápido do que o próximo, então você ganha. Existe mesmo um novo tipo de negociação de alta freqüência, agora chamado de arbitragem de latência 1. gt, mas na realidade pode haver outros fatores que são mais limitantes e torna desnecessária a busca de latência gt sob certo nível. Pode haver outros fatores, mas as pessoas puxam truques como desativar RTTI em seu código C, não usando exceções e movendo o máximo que puderem para a fase de compilação com modelos C. Isto é, além de usar estruturas de dados livres de cache e sem bloqueio. Não há necessidade de colocar-me em desvantagem desde o início, escolhendo uma abordagem ineficiente para o gerenciamento e processamento de dados de preços. Gt Um sistema de backtest não é executado em tempo real e não deve haver requisitos absolutos sobre latência. É inútil construir um sistema para backtesting e outro para execução. Eu prefiro que um único sistema lide com tudo. Gt Você tem um servidor que suporta algum protocolo (provavelmente FIX). A cotação do preço gt chega dessa maneira No meu caso, ela será via uma API C, através da rede. Gt A decisão é tomada no servidor gt A ordem comercial é tratada no servidor ou enviada para outro sistema. A ordem é enviada ao corretor através de uma API C, através da rede. Gt De onde. Para onde é a latência medida A latência Im falando é medida a partir do momento em que a citação de preço é recebida por Erlang até o momento em que Erlang diz à API C para enviar o comércio para o corretor. Theres também a latência da rede, mas deve ser mínimo para um servidor co-localizado no centro de dados de troca ou perto dele. Gt Do seu raciocínio, parece que a latência de comunicação gt de codificação de codificação não faz parte da latência importante. Nesse caso, por que não codificar e decodificar é parte da latência, mas a latência da rede não é. Gt gt De qualquer forma, deve haver algum valor de latência que seja apenas bom o suficiente e gt indo abaixo que é desnecessário. Não é assim: D 1. É uma guerra por aí que pode descer mais rápido. As pessoas estão incorporando adaptadores FIX e estratégias de negociação em FPGAs para latência de microssegunda 2. Aliás, o software HPC Platform está escrito em Lisp. Sua compilação principalmente e geração VHDL, no entanto. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta postagem por Kenneth Lundin Nos sistemas de negociação, o tempo é tudo. Basicamente, você está escrevendo um código que eventualmente figura na execução de negociações (às vezes, automaticamente). Nos sistemas automáticos, você está literalmente competindo com outros sistemas. Esta raça em particular é tão competitiva (e lucrativa) que as empresas construem datacenters mais perto da casa comercial apenas para que tenham menos latência. Não é inaudito nem mesmo ajustar o tempo de comunicação em suas ligações ascendentes, use a fibra apenas para raspar alguns ms, ou mesmo incorporar o código de montagem. Em casos extremos, as pessoas têm sistemas que atendem vendas de grandes compras, prevêem o efeito de acompanhamento que ele terá no mercado e tentarão cunhar em sua própria ordem para capitalizar as inevitáveis (mas atrasadas) mudanças de preços. Em qualquer outra indústria, esse nível de otimização seria bem dentro da área de retornos que diminui. No entanto, os mercados financeiros operam em uma escala suficientemente grande, esse tipo de coisa ainda é bastante rentável. Em 1 de outubro de 2009, às 11h30, Kenneth Lundin escreveu: gt Joel gt gt Por favor, explique mais. Gt Eu também escutei sobre os requisitos de latência para sistemas de negociação gt, mas eles ainda são muito difusos para mim. Tenho a impressão de que a latência é um grande ponto de venda para os sistemas de comércio gt, mas, na realidade, pode haver outros fatores que são mais limitantes e que a caça à latência gt sob certo nível é desnecessária. Gt gt Por favor, explique mais. Gt gt Um sistema de backtest não é executado em tempo real e não deve haver requisitos absolutos de gt na latência gt Corrija-me se eu estiver errado. Gt gt gt gt On Thu, 1 de outubro de 2009 às 18:04, Joel Reymont e-mail ltink gt escreveu: gtgt Kenneth, gtgt gtgt Em 1 de outubro de 2009, às 16h50, Kenneth Lundin escreveu: gtgt gtgtgt. Seria É bom se você pudesse explicar o que o sistema precisa fazer gtgtgt e gtgtgt depois desse gtgtgt porque você acha que é um problema para armazenar os preços em uma tabela ETS. Gtgtgt. Gtgtgt Por que você está falando sobre arquivos mmapped Por favor, explique por um novato em sistemas de negociação. Gtgt gtgt Seus sistemas de negociação de alta freqüência estou falando. Quando Serge Gtgt Aleynikov 1 for necessário ele gtgt gtgt Id gostaria de processar uma cotação de preço recebida, tomar uma decisão e gtgt enviar uma ordem comercial gtgt com latência mínima. Eu sei que isso normalmente é feito gtgt usando gtgt C (ou OCaml 1), mas estou me perguntando como isso pode ser conseguido usando gtgt Erlang. Gtgt gt Você tem um servidor que suporta algum protocolo (provavelmente FIX). A cotação do preço gt chega desta forma gt A decisão é tomada no servidor gt A ordem comercial é tratada no servidor ou enviada para outro sistema gt De onde. Para onde é a latência medida gt De seu raciocínio, parece que a latência de comunicação gt de codificação de codificação não faz parte da latência importante. Nesse caso, por que não gt gt gt De qualquer forma, deve haver algum valor de latência que seja apenas bom o suficiente e gt vá abaixo Isso é apenas desnecessário gt gt gt Kenneth gtgt gtgt gtgt gtgt gt gt gt erlang-perguntas mailing list. Veja erlang. orgfaq. html gt erlang-questions (at) erlang. org gt erlang-questions mailing list. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Em resposta a esta postagem por Joel Reymont gt Não há necessidade de colocar-me em desvantagem desde o início, escolhendo uma abordagem gt ineficiente para o gerenciamento e processamento de dados de preços. Otimização prematura é a raiz de todo o mal. Especificamente, porque você toma decisões sobre otimização na ausência de informações. O cache do processador é uma besta muito imprevisível diante de múltiplos núcleos. Tentando prever como se comporta quando outro código está no pipeline, infelizmente é otimista. Os sistemas Multicore aumentam inerentemente a latência e diminuem o desempenho do cache. Erlang está otimizado para isso. Qualquer informação que você tenha em relação ao comportamento do cache é altamente improvável de ser diretamente aplicável. Teste e perfil, cedo e muitas vezes. É o único caminho a seguir. É perfeitamente possível (devido aos objetivos de design da Erlang) que talvez você não consiga reduzir a velocidade que precisa. Obtenha algo em execução, faça um perfil e falhe rapidamente, se necessário. Colocar 2000 linhas de C antes de executar um perfil não é um timesaver - mesmo no mundo do desempenho cutthroat. Erlang-questiona lista de discussão. Veja erlang. orgfaq. html erlang-questions (at) erlang. org Abra esta postagem em exibição threaded Conteúdo do relatório como inapropriado Re: sistemas de negociação Em resposta a esta postagem por Joel Reymont Uma coisa que você pode querer considerar antes de construir o sistema é a Custo dos dados para realmente fazer o tipo de negociação que deseja fazer. Se você está tentando fazer uma troca de tipo de arbitragem de baixa latência, você pode querer mudar para Nova York por razões óbvias. Os custos de dados de um feed em tempo real com dados confiáveis podem ser um pouco incômodos e escavar qualquer lucro. Eu acho que depois que você descobriu as restrições no sistema devido à rede e aos dados, o design tomaria forma. O design poderia ser tão simples como usar bibliotecas de Tradestation, mas qualquer deslizamento em preenchimentos de ordem seria algo que você descobriria depois de terminar de criar o sistema (e esse tipo de descoberta é negativo). Joel Reymont escreveu: gt Kenneth, gt gt Em 1 de outubro de 2009, às 19h43, Kenneth Lundin escreveu: gt gtgt Por favor, explique mais. Gt gt Sinta-se livre para fazer perguntas pontuadas. Gt gtgt Tenho a impressão de que a latência é um grande ponto de venda para os sistemas de comércio gtgt gt gt Correct. Se você pode reagir ao mercado mais rápido do que o próximo gt, então você ganha. Existe mesmo um novo tipo de negociação de alta freqüência agora chamado latency arbitrage 1. gt gtgt, mas, na realidade, pode haver outros fatores que são mais limitantes e torna desnecessária a busca de latência em um certo nível. Gt gt Pode haver outros fatores, mas as pessoas puxam truques como desabilitar RTTI gt em seu código C, não usando exceções e movendo tanto quanto podem gt para a fase de compilação com modelos C. Isto é, além disso, usar estruturas de dados gt cache-friendly e sem bloqueio. Gt gt Não há necessidade de colocar-me em desvantagem desde o início, escolhendo uma abordagem gt ineficiente para o gerenciamento e processamento de dados de preços. Gt gtgt Um sistema de backtest não é executado em tempo real e não deve haver requisitos absolutos sobre latência gt gt. É inútil construir um sistema para backtesting e outro gt para execução. Eu prefiro que um único sistema lide com tudo. Gt gtgt Você tem um servidor que suporta algum protocolo (provavelmente FIX). A cotação do preço gtgt chega desta forma gt gt No meu caso, será via uma API C, através da rede. Gt gtgt A decisão é tomada no servidor gt gt Right. Gt gtgt A ordem comercial é tratada no servidor ou enviada para outro sistema gt gt A ordem é enviada ao corretor através de uma API C, através da rede. Gt gtgt De onde. Para onde é a latência medida gt gt A latência Im falando é medida a partir do momento em que o preço gt é recebido por Erlang até o momento em que Erlang diz à API C gt para enviar o comércio para o corretor. Gt gt Theres também a latência da rede, mas deve ser mínimo para um servidor gt co-localizado no centro de dados de troca ou perto dele. Gt gtgt De seu raciocínio, parece que a latência de comunicação gtgt de codificação de codificação não faz parte do gtgt a latência importante. Nesse caso, por que não gt gt Codificação e decodificação faz parte da latência, mas a latência da rede não é. Gtgt gtgt De qualquer forma, deve haver algum valor de latência que seja apenas bom o suficiente e gtgt indo abaixo que é desnecessário gt gt Não é assim: D 1. É uma guerra por aí sobre quem pode descer mais rápido. Gt As pessoas estão incorporando adaptadores FIX e estratégias de negociação em FPGAs gt para latência de microssegunda 2. Aliás, o software HPC Platform gt está escrito em Lisp. Sua compilação principalmente e geração VHDL, no entanto. Gt gt Obrigado, Joel gt gt 1 gt googlesearchclientsafariamprlsenampqlatencyarbitrageampieUTF-8ampoeUTF-8 gt gt 2 hpcplatform gt gt --- gt mais rápido mac firefox gt wagerlabs gt gt gt gt gt gt erlang-questions mailing list. Veja erlang. orgfaq. html gt erlang-questions (at) erlang. org gt gt erlang-questions mailing list. Veja erlang. orgfaq. html erlang-questions (at) erlang. org25 Maio 16:00 BST (15:00 UTC 17:00 CET 08:00 PDT) Sportrisq é um corretor e distribuidor de soluções e produtos de gerenciamento de risco para o setor de esportes . Ouça o CTO Justin Worall descreve o processo de migração de dois componentes principais da plataforma de Python para Erlang, os problemas subjacentes envolvidos, os benefícios percebidos de Erlang nessas situações, o processo de tomada de decisão, os projetos de aplicativos e os resultados. Erlang-solutionsresources. html Neste webinar, você aprenderá: O processo de migração de componentes de Python de baixa latência para Erlang O processo de tomada de decisão Projetos de aplicativos e resultados. Especialista em Sistemas de Exibição. Kenny Stone desenvolve sistemas de negociação de frente e back office para Connamara Systems, LLC, com um Antecedentes prévios em C e montagem para produtos de telecomunicações incorporados. Sua experiência na Connamara tem sido variada, construindo aplicativos de negociação CC de baixa latência, bem como aplicações web com Ruby on Rails e Sinatra. Como engenheiro sênior da Connamara, Kenny é encarregado de combinar a tecnologia certa com o problema em questão, e ele acredita que a Erlang oferece uma escolha convincente para muitas soluções em engenharia de software financeiro. O Connamara Systems fornece desenvolvimento de sistemas de negociação de ponta a ponta, incluindo gerenciamento de pedidos e execução, negociação algorítmica, conectividade de intercâmbio e integração de dados de mercado. Nossos clientes são empresas de negociação de futuros, opções e empresas de ações de primeira linha. Kenny Stone está dando as seguintes conversas A Bolsa de Valores de Erlang Um ano atrás, Joel Reymont desafiou a comunidade de Erlang a construir um mercado de ações de código aberto. Nesta conversa, você verá o resultado do meu esforço para construí-lo - os triunfos, as frustrações e os benchmarks e eu compararei diretamente a solução Erlang com uma solução Java que construímos para um cliente.
Comments
Post a Comment