Como ganhar dinheiro na Internet
Como ganhar dinheiro na Internet

sexta-feira, 9 de abril de 2010

Operações financeiras automatizadas com o Marketcetera



    Automated trading using Marketcetera

    Autor original: Jake Edge
    Publicado originalmente no: 
    lwn.net
    Tradução: Roberto Bechtlufft 

    logo
    logo
    Embora o Linux e o software livre tenham encontrado um lar nos computadores de bolsas de valores ao redor do mundo e de empresas que lidam com o setor financeiro, a maior parte do código executado nesses sistemas é proprietário. As empresas do setor financeiro não estão lá muito interessadas em compartilhar suas estratégias secretas de negócios com suas concorrentes. Mas a maior parte do código de base, que envolve a comunicação com sistemas de corretagem para compra e venda de ações e outros instrumentos financeiros, não necessariamente precisa ser um segredo. AMarketcetera, uma startup de São Francisco, está aplicando princípios de software livre à sua plataforma de operações financeiras para que mais organizações, especialmente as menores e menos abastadas, possam ter acesso aos mesmos canais de operações algorítmicas usados pelas empresas de maior porte.
    photon-sm
    Interface gráfica do Marketcetera Photon
    Anunciado em janeiro de 2009, o Marketcetera Automated Trading Platform (ou MATP) é um sistema licenciado sob a GPLv2 para usar dados do mercado financeiro como entrada e produzir ordens de compra e venda como saída. No meio disso tudo, "mecanismos de estratégia" podem ser usados para decidir no que devem consistir essas ordens de compra e venda e a quais corretores encaminhá-las. Há um módulo sofisticado de "análise de sinais" que filtra e analiza o fluxo de dados de entrada de informações relacionadas ao mercado (oferta, preço mínimo, operações executadas etc). Essas informações são usadas pelas estratégias. Um servidor de encaminhamento de ordens de compra e venda cuida da comunicação bidirecional com os corretores. Além disso, essas ordens e o resultado delas são armazenados em um banco de dados MySQL para fins de registro.
    De modo geral, trata-se de um aplicativo Java bastante complexo com várias partes móveis, das quais muitas exigem interação com organizações externas (e algumas dessas organizações são muito criteriosas na escolha de seus contatos). O MATP usa o protocolo FIX de troca de informações financeiras para obter dados do mercado e enviar e receber informações sobre ordens de compra e venda. Com isso, os usuários podem se conectar a quaisquer serviços e corretores que usem o FIX, mas como sempre há uma pegadinha: geralmente essas organizações exigem que o conector FIX seja certificado antes de permitirem que ordens de compra e venda entrem em seus sistemas.
    Os usuários podem cuidar disso (eu suponho que seja um processo um pouco caro), ou podem acessar conectores "pré-certificados" como parte do contrato de suporte da Marketcetera. Como muitas empresas de software livre, o modelo de negócios da Marketcetera é focado no suporte e na consultoria. Além disso, há uma estratégia de "núcleo aberto", com "extras" que podem ser adquiridos e que rodam sobre o núcleo, incluindo os conectores FIX e vários adaptadores de dados do mercado.
    Mas o núcleo por si só já consiste em uma grande quantidade de texto, com funcionalidade bastante significativa. Não é exatamente um sistema que você possa pegar e usar direto, porque cada usuário tem suas necessidades individuais. A empresa parece compreender os benefícios do software livre e de código aberto, destacando-os em seu FAQ. Evitar que o consumidor fique preso a um fornecedor específico é parte essencial dessa mentalidade, como descreve o diretor de gerenciamento, Roy Agostino:
      Acreditamos que o código aberto acelera a adoção de nosso software. A maioria das empresas tem um monte de sistemas em suas lojas, e elas estão sempre tendo problemas com tecnologia que não foi criada com base em padrões abertos, APIs abertas etc. Elas têm uma preocupação extra com a incapacidade crônica de obter recursos de fornecedores proprietários para realizar alterações necessárias dentro dos prazos que precisam cumprir. O código aberto muda esses paradigmas, e apresenta ao consumidores uma alternativa aberta e com um custo inicial bem menor, dando a eles a flexibilidade de realizar as alterações necessárias por conta própria, ou de recorrer a um parceiro confiável capaz de fazer isso.
    Obviamente, também existe o aspecto comunitário do software livre. A Marketcetera tem um domínio especial (marketcetera.org) para abrigar seu portal comunitário. Infelizmente, a maior parte das informações disponíveis no portal exige que o usuário faça login após se registrar no site. Eu não acho que isso ajude a promover a comunidade.
    No portal, os visitantes que estiverem logados vão encontrar documentação para usuários e desenvolvedores, um fórum de suporte, tracker de bugs e recursos e coisas do gênero, além do Marketcetera Open Labs. O MOL é um site no estilo do Sourceforge para que membros da comunidade comecem projetos relacionados a "extensões da plataforma, módulos, novos componentes, tutoriais não oficiais" e por aí vai. Vários projetos, como adaptadores de dados de mercado em CSV, módulos de gráficos, autoração de estratégias e outros já foram iniciados no MOL.
    Para quem quiser contribuir com o núcleo do programa, a Marketcetera tem um acordo de contribuição baseado no contrato do MySQL. Ele exige a transferência dos direitos autorais do código à Marketcetera e o recebimento de uma "licença ampla para reutilização e distribuição de sua contribuição". Ele exige ainda a concessão de uma licença de patentes à empresa e a seus usuários abrangendo eventuais patentes de posse do contribuidor que estejam presentes nessa contribuição. Há uma página quedescreve algumas sugestões de aspectos a serem trabalhados e que traz instruções quanto à logística da distribuição do código.
    A instalação é bem direta, embora não muito bem integrada ao Linux. Para começar, você deve estar logado para ter acesso ao software, que vem em um arquivo tar de 220 MB. E ele contém um único shell script com 220 MB. Isso parece ser uma tradição na instalação de programas em Java: o código do Marketcetera embute o JRE e o MySQL na instalação. O instalador dá uma reclamadinha se não estiver sendo rodado no Ubuntu 8.04, no qual foi testado, mas parece que tudo correu bem na instalação que fiz no Fedora 12, já que não há muitas dependências externas.
    Há dois downloads disponíveis, os componentes de servidor descritos acima e a interface Photon GUI para a entrada de ordens de compra e venda e autoração de estratégias. O Photon é baseado na plataforma Eclipse RPC, e quem já usou o Eclipse vai se sentir em casa. Ele vem em um pacote tar mais tradicional, mas que ainda assim tem 75 MB. A plataforma RPC foi escolhida ao menos em parte porque o Photon permite o desenvolvimento de estratégias em Java e em Ruby, e essas estratégias podem ser testadas pela interface gráfica.
    O Photon também tem recursos para a entrada de ordens de compra e venda, de modo que negociações iniciadas pelos usuários (e não pelas estratégias) possam ser incluídas. Os dados de mercado podem ser obtidos, filtrados e exibidos de várias maneiras. Há um componente de navegador web para que você acesse sites financeiros (dentre outros). Pelo Photon, também é possível obter informações sobre operações diretamente do banco de dados. O Photon é essencialmente um painel de controle de todo o sistema.
    É claro que este é um projeto voltado para um nicho, mas esse é um nicho de uma indústria bem grande — ao menos pelo que indicam os lucros. As operações algorítimicas e de alta frequência estão prevalecendo cada vez mais, e reduzir as barreiras de entrada vai fazer com que cada vez mais empresas (e também empresas de menor porte) se envolvam nisso. Dado o caos financeiro ocorrido recentemente, talvez isso não seja necessariamente algo bom, mas manter essas ferramentas nas mãos daqueles que eram "grandes demais para fracassar" também não ajudou muito.
    Créditos a Jake Edge - lwn.net
    Tradução por Roberto Bechtlufft 

Nenhum comentário: