вторник, 22 мая 2018 г.

Forex backtesting platform


Solução de gerenciamento de dados de classe institucional / backtesting / estratégia: - ações, opções, futuros, moedas, cestas e instrumentos sintéticos personalizados são suportados - múltiplos feeds de dados de baixa latência são suportados (velocidades de processamento em milhões de mensagens por segundo em terabytes de dados) - Backtesting e otimização de estratégias baseadas em C e. Net - execução de múltiplos corretores suportados, sinais de negociação convertidos em ordens FIX QuantFACTORY - Solução de gerenciamento de dados de classe institucional / backtesting / estratégia: - QuantDEVELOPER - framework e IDE para desenvolvimento de estratégias de negociação, depuração, backtesting e otimização, disponível como um plug-in do Visual Studio - QuantDATACENTER - permite gerenciar um data warehouse histórico e capturar dados de mercado de latência ultrabaixa em tempo real de fornecedores e trocas - QuantENGINE - permite implantar e executar estratégias pré-compiladas - multi-asset, dados de baixa latência de vários períodos, vários brokers com suporte para dados de classe institucional Solução de implantação de gerenciamento / backtesting / estratégia: - OpenQuant - C e VisualBasic. NET backtesting e negociação em nível de portfólio, multi-asset, teste de nível intradiário, otimização, WFA, vários corretores e feeds de dados suportados - QuantTrader - ambiente de negociação de produção - QuantBase - gerenciamento centralizado de dados - QuantRouter - roteamento de dados e ordens Solução de múltiplos ativos, suporte a dados múltiplos, banco de dados compatível com qualquer tipo de RDBMS que forneça uma interface JDBC, por exemplo Oracle, Microsoft SQL Server, Sybase, MySQL etc. - os clientes podem usar o IDE para roteirizar sua estratégia em Java, Ruby ou Python, ou podem usar sua própria estratégia IDE - execução de múltiplos corretores suportados, sinais de negociação convertidos em ordens FIX Solução de gerenciamento de dados de classe / backtesting / estratégia: - solução de múltiplos ativos (forex, opções, futuros, ações, ETFs, commodities, instrumentos sintéticos e spreads de derivativos personalizados etc.), múltiplos feeds de dados suportados - estrutura para desenvolvimento de estratégias de negociação, depuração , backtesting e otimização - execução de múltiplos corretores suportados, sinais de negociação convertidos em ordens FIX (IB, JPMorgan, FXCM etc.) Plataforma de software dedicada integrada com dados Tradestations para backtesting e auto-trading: - dados diários diários (estoques nos EUA por 43 anos, futuros por 61 anos) - prático para sinais baseados em preço de backtesting (análise técnica), suporte para linguagem de programação EasyLanguage - suportando ações dos EUA ET Fs, futuros, índices dos EUA, ações alemãs, índices alemães, livre de forex para clientes de corretagem Tradestation - 249,95 mensais para não profissionais (plataforma de software Tradestation, sem corretagem) - 299,95 mensais para profissionais (plataforma de software Tradestation, sem corretagem) Plataforma de software dedicada para backtesting e negociação automática: - suporte a estratégias diárias / intraday, testes e otimização em nível de portfólios, gráficos, visualização, relatórios personalizados, análise multithread, gráficos 3D, análise WFA etc. - melhor para sinais baseados em preço de backtesting ( análise técnica) - link direto para eSignal, Interactive Brokers, IQFeed, myTrack, FastTrack, QP2, TC2000, qualquer feed compatível com DDE, MS, txtfiles e mais (Yahoo Finance. ) - taxa única de 279 para edição Standard ou 339 para edição Professional Plataforma de software dedicado para backtesting e negociação automática: - backtesting e negociação de sistema em nível de portfólio, teste de múltiplos ativos, nível intradiário, otimização, visualização etc. - permite integração R negociação automática na linguagem de script Perl com todas as funções subjacentes escritas em C nativo, preparadas para co-localização de servidores - suporte FXCM nativo e Interactive Brokers - suporte FXCM gratuito, 100 por mês para plataforma IB, entre em contato com Salesseertrading para outras opções Plataforma de software dedicado para backtesting e negociação automática: - suporte a estratégias diárias / intraday, testes e otimização em nível de portfólios - melhor para sinais baseados em preço de backtesting (análise técnica), scripts C - extensões de software suportadas - manipulação de feeds de dados, execução de estratégias etc. - 799 por licença, 150 honorários anuais após a plataforma de software dedicado para backtesting, otimização, atribuição de desempenho e análise: - Axioma ou 3º par ty data - análise fatorial, modelagem de risco, análise de ciclo de mercado Plataforma de software dedicado para backtesting e negociação automática: - melhor para sinais baseados em preço de backtesting (análise técnica), suportando estratégias diárias / intraday, testes e otimização em nível de portfólio - Turtle Edition - backtesting motor, gráficos, relatórios, teste EOD - Professional Edition - além de editor de sistema, análise de caminhada, estratégias intraday, testes multi-threaded etc. - Pro Plus Edition - além de gráficos de superfície 3D, scripts etc. - Builder Edition - IB API, depurador etc - Turtle Edition 990 - Professional Edition 1.990 - Pro Plus Edition 2.990 - Builder Edition 3.990 Plataforma de software dedicado para backtesting e negociação automática: - suporte a estratégias diárias / intraday, testes e otimização em nível de portfólio, gráficos, visualização, relatórios personalizados, etc. - melhor para sinais baseados em preço de backtesting (análise técnica) - link direto para Interactive Brokers, MB Trading, TD Ameritrade, FXCM e outros - dados de arquivos de texto, eSignal, Google Finance, finanças Yahoo, IQFeed e outros - funcionalidade básica (funcionalidade EoD) - livre - funcionalidade avançada - leasing de 50 / mês ou 995 licença vitalícia Plataforma de software dedicada para backtesting e auto-trading: - melhor para sinais baseados em preço backtesting (análise técnica), suporte a estratégias diárias / intraday, testes e otimização em nível de portfólio, gráficos, visualização, relatórios personalizados - suporta C e Visual Basic. NET - link direto para Interactive Brokers, IQFeed, txtfiles e mais (Yahoo Finance . ) - licença perpétua - 499 - locação de 50 por mês Plataforma de software dedicada para backtesting e negociação automática: - suporte a estratégias diárias / intraday, testes e otimização de portfólio, gráficos, visualização, relatórios personalizados - sinais técnicos e também fundamentais, multi-asset suporte - 245 para a versão avançada (provedores de dados gratuitos) - 595 para a versão Premium (suporte a vários provedores de dados e corretores) Plataforma de software dedicada para backtesting e negociação automática: - suporte a estratégias diárias / intradiárias, otimização e teste em nível de portfólio - melhor para backtesting sinais baseados em preços (análise técnica) - dados embutidos para ações, futuros e forex (ações americanas diárias de 1990, futuros diários de 31 anos, forex de 1983 etc.) - preços de 45 / mês a 295 / mês (os preços dependem disponibilidade de dados) Plataforma de software dedicado para backtesting e negociação automática: - usa a linguagem MQL4, usada principalmente para negociar no mercado forex - suporta múltiplos corretores de forex e feeds de dados - suppo Gerenciamento de várias contas Plataforma de software dedicado para backtesting e negociação automática: - suporte a estratégias diárias / intradiárias, otimização e teste em nível de portfólio - melhor para sinais baseados em preço de backtesting (análise técnica), suporte a linguagem de programação EasyLanguage Bloomberg, Thomson Reuters, CSI, CQG, eSignal etc.), suporte direto a múltiplos corretores (Interactive Brokers etc.) - Multicharts 797 por ano - Multicharts lifetime 1,497 - Multicharts Pro 9,900 (feed de dados Bloomberg Thomson Reuters etc.) Backtesting baseado na Web ferramenta para testar estratégias de stock picking: - Ações dos EUA ETFs (diário) - dados fundamentais point-in-time desde 1999 - estratégias long / short, preços / fundamentos orientados - Designer - 139 / mês - Manager - 199 / mês - funcionalidade completa Ferramenta de backtesting baseada na Web para testar as estratégias de stock picking: - Ações dos EUA (diariamente) - dados fundamentais pontuais desde 1988 - preços / sinais impulsionados pelos fundamentos - Estrategista - 995 / ano (dados desde 2000, 10 portfólios salvos) - Gerente - 1.995 / ano - (funcionalidade completa, dados desde 1988, 50 portfólios salvos) Ferramenta de backtesting baseada na Web: - Preços das ações dos EUA (diária / intraday) desde 1998 de QuantQuote - dados forex da FXCM - suportando Trader Interactive Brokers para negociação ao vivo Ferramenta de backtesting baseada na Web: - Ações dos EUA e ETFs (diária / intraday), desde 2002 - dados fundamentais da Morningstar (mais de 600 métricas) - suportando Interactive Brokers para live ferramentas de backtesting baseadas na Web: - simples de usar, estratégias de alocação de ativos, dados desde 1992 - momentum de série temporal e estratégias de média móvel nos ETFs - Simple Momentum e Simple Value ferramenta de backtesting baseada na Web: - até 25 anos de dados para 49 estoques Futuros e SP500 - caixa de ferramentas em Python e Matlab - Quantiacs hospeda competições algorítmicas de negociação com investimentos que variam de 500k a 1 milhão de ferramenta de backtesting baseada em Web / Nuvem: - Dados FX (Forex / Moeda) em m pares adjacentes, voltando a 2007 - Barras Second / Minute / Hourly / Daily - negociação ao vivo compatível com qualquer corretor que esteja usando o Metatrader 4 como sua ferramenta de backtesting / back-end baseada na Web: - mais de 10 000 ações nos EUA, dados de até 20 anos histórico - critérios técnicos fundamentais - funcionalidade limitada gratuita (1 ano de dados, sem backtests salvos etc.) - 50 por mês - funcionalidade completa Ferramenta de backtesting baseada na Web para testar estratégias de seleção de ativos e alocação de ativos: - múltiplos fatores patrimoniais com alfa comprovado sobre benchmarks de limite de mercado, múltiplos universos de investimento, filtros de gestão de risco - backtests de estratégias de alocação de ativos, mistura de alocação de ativos e escolha de fatores em uma carteira - livre no universo SP 100 - 50 / mês ou 480 / ano ações, estratégias de alocação de ativos MATLAB - Linguagem de alto nível e ambiente interativo para computação estatística e gráficos: - paralela e GPU computação, backtesting e otimização, extensa possi Ambiente de software livre para computação estatística e gráficos, muitos dos que preferem usá-lo por sua excepcional arquitetura aberta e flexibilidade: - facilidade de manuseio e armazenamento de dados, instalações gráficas para análise de dados, facilmente estendido via pacotes - extensões recomendadas - quantstrat, Rmetrics, quantmod, quantlib, PerformanceAnalytics, TTR, portfólio, portfolioSim, backtest, etc. Linguagem de programação open source livre, arquitetura aberta, flexível, facilmente extensível através de pacotes: - extensões recomendadas - pandas ( Python Data Analysis Library), Pyalgotrade (Biblioteca Python Algorithmic Trading), Zipline, ultrafinance etc. BacktestingXL Pro é um add-in para construir e testar suas estratégias de negociação no Microsoft Excel 2010 e 2013: - os usuários podem usar o VBA para construir estratégias para BacktestingXL Pro, o conhecimento VBA é opcional, os usuários podem construir regras de negociação em uma planilha usando códigos de backtesting pré-fabricados padrão - suporta piramidação, limitação de posições curtas / longas, cálculo de comissão, controle de patrimônio, controle de out-of-money, customização de preço de compra / venda - múltiplos relatórios de desempenho / risco - 74.95 para BacktestingXL Pro Ferramenta de backtesting baseada na Web: - simples de usar Ferramenta de backtesting baseada em web para testar a força relativa e mover estratégias médias em ETFs - vários tipos de estratégias para funcionalidade de backtesting completa e gratuita 34,99 mensal FactorWave é simples de usar ferramenta de backtesting baseada na web para fator de investimento: - permite ao usuário misturar múltiplos ETF / opções / futuros / fatores de capital com alfa comprovada sobre benchmarks de limite de mercado - grátis - ETF / Stock Screener com 5 Fatores - 149 / mês - opções de opções grátis screener, estratégias de futuros, estratégias vix Ferramenta baseada na Web - Free Stock Classificações, Análise Sazonal, Fundamentos de Gráficos - Modelo Freemium gratuito Ferramenta gratuita de backtesting baseada na web para testar estratégias de coleta de ações: - Ações dos EUA, dados da ValueLine de 1986 a 2014 - preço e dados fundamentais , 1700 estoques, teste mensal de granularidadeEscolher uma plataforma para backtesting e execução automatizada Neste artigo, o conceito de execução automatizada será discutido. De um modo geral, este é o processo de permitir que uma estratégia de negociação, através de uma plataforma de negociação eletrônica, gere sinais de execução comercial sem qualquer intervenção humana subsequente. A maioria dos sistemas discutidos no QuantStart até o momento foram projetados para serem implementados como estratégias de execução automatizadas. O artigo descreverá pacotes de software e linguagens de programação que fornecem recursos de backtesting e execução automatizada. A primeira consideração é como backtest uma estratégia. Minha visão pessoal é que o desenvolvimento personalizado de um ambiente de backtesting dentro de uma linguagem de programação de primeira classe fornece a maior flexibilidade. Por outro lado, uma plataforma de backtesting integrada desenvolvida pelo fornecedor sempre terá que fazer suposições sobre como os backtests são realizados. Apesar disso, a escolha de linguagens de programação disponíveis é grande e diversificada, o que muitas vezes pode ser esmagador. Não é óbvio, antes do desenvolvimento, qual idioma é adequado. Ao codificar uma estratégia em regras sistemáticas, o profissional quantitativo deve estar confiante de que seu desempenho futuro refletirá seu desempenho passado. Geralmente, existem duas formas de sistema de backtesting que são utilizadas para testar essa hipótese. Em geral, eles são categorizados como back testers de pesquisa e back testers orientados a eventos. Consideraremos backtesters personalizados versus produtos de fornecedores para esses dois paradigmas e veremos como eles se comparam. Ferramentas de pesquisa Ao identificar estratégias de negociação algorítmica, geralmente é desnecessário simular totalmente todos os aspectos da interação com o mercado. Em vez disso, podem ser feitas aproximações que fornecem determinação rápida do desempenho da estratégia em potencial. Tais ferramentas de pesquisa muitas vezes fazem hipóteses irrealistas sobre os custos de transação, preços de preenchimento provável, restrições de curto prazo, dependência de local, gerenciamento de risco e dimensionamento de posição. Apesar dessas deficiências, o desempenho de tais estratégias ainda pode ser efetivamente avaliado. Ferramentas comuns para pesquisa incluem MATLAB, R, Python e Excel. Esses pacotes de software são fornecidos com recursos de vetorização que permitem velocidade de execução rápida e implementação de estratégia mais fácil. MATLAB e pandas são exemplos de sistemas vetorizados. Com essas ferramentas de pesquisa, é possível testar várias estratégias, combinações e variantes de maneira rápida e iterativa, sem a necessidade de concretizar totalmente uma simulação realística de interação com o mercado. Embora tais ferramentas sejam frequentemente usadas tanto para backtesting quanto para execução, esses ambientes de pesquisa geralmente não são adequados para estratégias que abordam a negociação intradia em frequências mais altas em escala de sub-minuto. Essas bibliotecas não tendem a se conectar efetivamente a fornecedores de dados de mercado em tempo real nem a interagir com APIs de corretagem de maneira robusta. Apesar dessas deficiências executivas, os ambientes de pesquisa são muito utilizados no setor de comércio quantitativo profissional. Eles fornecem o primeiro rascunho de todas as ideias estratégicas antes da promoção para verificações mais rigorosas dentro de um ambiente realista de backtesting. Backtesting orientado a eventos Uma vez que uma estratégia é considerada adequada em pesquisa, deve ser avaliada de forma mais realista. Tal realismo tenta explicar a maioria (se não todas) das questões descritas nos posts anteriores. A situação ideal é poder usar o mesmo código de geração de comércio para o backtesting histórico, bem como a execução ao vivo. Isto é conseguido através de um backtester baseado em eventos. Os sistemas orientados a eventos são amplamente utilizados na engenharia de software, geralmente para manipular a entrada da interface gráfica do usuário (GUI) em sistemas operacionais baseados em janelas. Eles também são ideais para negociação algorítmica, pois a noção de pedidos de mercado em tempo real ou preenchimentos de negociação pode ser encapsulada como um evento. Esses sistemas geralmente são escritos em linguagens de alto desempenho, como C, C e Java. Considere uma situação em que uma estratégia de negociação automatizada está conectada a um feed de mercado em tempo real e a um corretor (esses dois podem ser um e o mesmo). Novas informações de mercado serão enviadas ao sistema, o que acionará um evento para gerar um novo sinal de negociação e, portanto, um evento de execução. Esses sistemas são executados em um loop contínuo, aguardando para receber eventos e manipulá-los adequadamente. É possível gerar subcomponentes, como um manipulador histórico de dados e um simulador de corretagem, que podem imitar suas contrapartes ao vivo. Isso permite estratégias de backtesting de uma maneira extremamente semelhante à da execução ao vivo. A desvantagem de tais sistemas reside no seu projeto complicado quando comparado a uma ferramenta de pesquisa mais simples. Portanto, o tempo de comercialização é maior. Eles são mais propensos a erros e exigem um bom conhecimento de programação e metodologia de desenvolvimento de software. Latência Em termos de engenharia, a latência é definida como o intervalo de tempo entre uma simulação e uma resposta. Em negociação quantitativa, geralmente se refere ao atraso de tempo de ida e volta entre a geração de um sinal de execução e o recebimento das informações de preenchimento de um corretor que executa a execução. Tal latência raramente é um problema em estratégias interdias de baixa frequência. O movimento esperado dos preços durante o período de latência não afetará a estratégia em grande medida. O mesmo não acontece com as estratégias de frequência mais alta, em que a latência se torna extremamente importante. O objetivo final da HFT é reduzir o máximo possível a latência para reduzir o escorregamento. Diminuir a latência envolve minimizar a distância entre o sistema de negociação algorítmica e a troca final na qual uma ordem está sendo executada. Isso pode envolver o encurtamento da distância geográfica entre os sistemas, reduzindo assim os tempos de viagem ao longo do cabeamento da rede. Também pode envolver a redução do processamento realizado em hardware de rede ou a escolha de uma corretora com infraestrutura mais sofisticada. Muitas corretoras competem em latência para conquistar negócios. A diminuição da latência se torna exponencialmente mais cara em função da distância da Internet, que é definida como a distância da rede entre dois servidores. Assim, para um operador de alta frequência, um compromisso deve ser alcançado entre o gasto de redução de latência e o ganho de minimização do escorregamento. Estas questões serão discutidas na seção sobre Colocation abaixo. Opções de idioma Alguns problemas que direcionam a escolha da linguagem já foram descritos. Agora vamos considerar os benefícios e desvantagens de linguagens de programação individuais. Eu categorizei amplamente as linguagens em desenvolvimento de alto desempenho / mais difícil versus desempenho mais baixo / desenvolvimento mais fácil. Estes são termos subjetivos e alguns discordarão dependendo de seu histórico. Um dos aspectos mais importantes da programação de um ambiente de backtesting customizado é que o programador está familiarizado com as ferramentas que estão sendo usadas. Para aqueles que são novos no cenário da linguagem de programação, o seguinte esclarecerá o que tende a ser utilizado no comércio algorítmico. C, C e Java C, C e Java são exemplos de linguagens de programação orientadas a objetos de uso geral. Isso significa que eles podem ser usados ​​sem um ambiente de desenvolvimento integrado (IDE) correspondente, são todos de plataforma cruzada, têm uma ampla variedade de bibliotecas para praticamente todas as tarefas imagináveis ​​e permitem velocidade de execução rápida quando utilizadas corretamente. Se a velocidade de execução final for desejada, então C (ou C) provavelmente será a melhor escolha. Oferece a maior flexibilidade para gerenciar memória e otimizar a velocidade de execução. Essa flexibilidade tem um preço. C é difícil de aprender bem e pode levar a bugs sutis. O tempo de desenvolvimento pode demorar muito mais do que em outros idiomas. Apesar dessas deficiências, é difundida no setor financeiro. C e Java são semelhantes, pois ambos exigem que todos os componentes sejam objetos, com exceção dos tipos de dados primitivos, como floats e inteiros. Eles diferem de C executando a coleta de lixo automática. A coleta de lixo adiciona uma sobrecarga de desempenho, mas leva a um desenvolvimento mais rápido. Essas linguagens são boas escolhas para o desenvolvimento de um backtester, pois possuem recursos de GUI nativos, bibliotecas de análise numérica e velocidade de execução rápida. Pessoalmente, uso o C para criar backtesters acionados por eventos que precisam de velocidade de execução extremamente rápida, como para sistemas HFT. Isto é apenas se eu senti que um sistema orientado a eventos do Python foi afunilado, já que a última linguagem seria minha primeira escolha para tal sistema. MATLAB, R e Python O MATLAB é um IDE comercial para computação numérica. Ele ganhou ampla aceitação nos setores acadêmico, de engenharia e financeiro. Tem muitas bibliotecas numéricas para computação científica. Ele possui uma velocidade de execução rápida sob a suposição de que qualquer algoritmo que esteja sendo desenvolvido está sujeito à vetorização ou paralelização. Apesar dessas vantagens, é caro, tornando-o menos atraente para os comerciantes de varejo em um orçamento. Às vezes, o MATLAB é usado para execução direta em uma corretora como a Interactive Brokers. R é um ambiente de script de estatísticas dedicado. É gratuito, de código aberto, multiplataforma e contém uma grande variedade de pacotes estatísticos disponíveis gratuitamente para a realização de análises extremamente avançadas. R é amplamente utilizado em estatísticas acadêmicas e na indústria quantitativa de hedge funds. Embora seja possível conectar R a uma corretora não é bem adequado para a tarefa e deve ser considerado mais uma ferramenta de pesquisa. Ele também não tem velocidade de execução, a menos que as operações sejam vetorizadas. Eu agrupei o Python sob esse cabeçalho, embora ele esteja em algum lugar entre o MATLAB, R e as linguagens de propósito geral mencionadas anteriormente. É gratuito, de código aberto e multiplataforma. É interpretado em oposição a compilado. o que o torna nativamente mais lento que o C. No entanto, ele contém uma biblioteca para realizar praticamente qualquer tarefa imaginável, desde a computação científica até o design de servidores web de baixo nível. Em particular, ele contém NumPy, SciPy, pandas, matplotlib e scikit-learn, que fornecem um ambiente de pesquisa numérica robusto que, quando vetorizado, é comparável à velocidade de execução da linguagem compilada. O Python também possui bibliotecas para se conectar a corretoras. Isso faz com que seja um local único para criar um backtesting orientado a eventos e um ambiente de execução ao vivo sem ter que entrar em outros idiomas mais complexos. A velocidade de execução é mais do que suficiente para os negociadores intradiários que negociam na escala de tempo de minutos e acima. O Python é muito simples de aprender e aprender quando comparado a linguagens de nível mais baixo como C. Por essas razões, fazemos amplo uso do Python em artigos do QuantStart. Ambientes de Desenvolvimento Integrados O termo IDE possui vários significados dentro da negociação algorítmica. Os desenvolvedores de software usam isso para significar uma GUI que permite a programação com recursos de realce de sintaxe, navegação de arquivos, depuração e execução de código. Os traders algorítmicos usam isso para significar um ambiente de backtesting / negociação totalmente integrado com histórico ou download de dados em tempo real, gráficos, avaliação estatística e execução ao vivo. Para nossos propósitos, eu uso o termo para significar qualquer ambiente de backtest / trading, frequentemente baseado em GUI, que não é considerado uma linguagem de programação de uso geral. Excel Embora alguns comerciantes de quantificação possam considerar o Excel inadequado para negociação, descobri que ele é extremamente útil para a verificação de sanidade dos resultados. O fato de que todos os dados estão diretamente disponíveis à vista facilita a implementação de estratégias muito básicas de sinal / filtro. Corretoras como a Interactive Brokers também permitem plugins DDE que permitem que o Excel receba dados de mercado em tempo real e execute ordens de negociação. Apesar da facilidade de uso, o Excel é extremamente lento para qualquer escala razoável de dados ou nível de computação numérica. Eu só uso para verificação de erros ao desenvolver contra outras estratégias. Em particular, é extremamente útil para verificar se uma estratégia está sujeita a um viés de antecipação. Isso é fácil de detectar no Excel devido à natureza da planilha do software. Se você não se sentir à vontade com as linguagens de programação e estiver executando uma estratégia interdias, o Excel pode ser uma boa escolha. Software de Backtesting Comercial / de Varejo O mercado de software de gráficos de varejo, análise técnica e backtesting é extremamente competitivo. Os recursos oferecidos por esse software incluem gráficos de preços em tempo real, uma variedade de indicadores técnicos, modelos de backtesting personalizados e execução automatizada. Alguns fornecedores fornecem uma solução completa, como a TradeStation. A TradeStation é uma corretora on-line que produz software de negociação (também conhecido como TradeStation) que fornece execução de ordens eletrônicas em várias classes de ativos. Atualmente, não tenho conhecimento de uma API direta para execução automatizada. Em vez disso, os pedidos devem ser feitos através do software da GUI. Isso contrasta com a Interactive Brokers, que tem uma interface de negociação mais enxuta (Trader WorkStation), mas oferece APIs proprietárias de execução de ordens / mercado em tempo real e uma interface FIX. Outra plataforma extremamente popular é o MetaTrader. que é usado na negociação de divisas para criar Expert Advisors. Estes são scripts personalizados escritos em uma linguagem proprietária que pode ser usada para negociação automatizada. Eu não tive muita experiência com a TradeStation ou com o MetaTrader, então não vou gastar muito tempo discutindo seus méritos. Tais ferramentas são úteis se você não estiver confortável com o desenvolvimento de software em profundidade e desejar que muitos dos detalhes sejam atendidos. No entanto, com esses sistemas muita flexibilidade é sacrificada e muitas vezes você está vinculado a uma única corretora. Ferramentas de código aberto e baseadas na Web Os dois sistemas populares de backtesting baseados na web são Quantopian e QuantConnect. O primeiro faz uso do Python (e ZipLine, veja abaixo), enquanto o último utiliza C. Ambos fornecem uma riqueza de dados históricos. A Quantopian atualmente suporta negociação ao vivo com a Interactive Brokers, enquanto a QuantConnect está trabalhando para negociação ao vivo. A Algo-Trader é uma empresa com sede na Suíça que oferece licenças de código aberto e comercial para o seu sistema. Pelo que posso reunir a oferta parece bastante madura e eles têm muitos clientes institucionais. O sistema permite o backtesting histórico completo e o processamento complexo de eventos e eles se conectam a Interactive Brokers. A edição Enterprise oferece substancialmente mais recursos de alto desempenho. O Marketcetera fornece um sistema de backtesting que pode se conectar a muitas outras linguagens, como Python e R, para alavancar o código que você já tenha escrito. O Strategy Studio fornece a capacidade de escrever código de backtesting, bem como algoritmos de execução otimizados e, posteriormente, a transição de um backtest histórico para o live paper trading. Eu não os usei antes. ZipLine é a biblioteca Python que alimenta o serviço Quantopian mencionado acima. É um ambiente de backtest totalmente orientado a eventos e atualmente suporta as ações dos EUA em uma base minuciosa. Eu não fiz uso extensivo do ZipLine, mas conheço outros que acham que é uma boa ferramenta. Ainda há muitas áreas para melhorar, mas a equipe está constantemente trabalhando no projeto e é muito ativamente mantida. Há também alguns projetos hospedados no Github / Google Code que você pode querer examinar. Eu não passei muito tempo investigando-os. Esses projetos incluem o OpenQuant. TradeLink e PyAlgoTrade. Software de Backtesting Institucional Os sistemas de backtesting de nível institucional, como Deltix e QuantHouse, não são frequentemente utilizados por traders algorítmicos de varejo. As licenças de software geralmente estão bem fora do orçamento para infraestrutura. Dito isto, tal software é amplamente utilizado por quant funds, proprietary trading houses, family offices e similares. Os benefícios de tais sistemas são claros. Eles fornecem uma solução completa para coleta de dados, desenvolvimento de estratégias, backtesting histórico e execução ao vivo de vários instrumentos ou portfólios, até o nível de alta frequência. Essas plataformas tiveram testes extensivos e muito no uso em campo e, portanto, são consideradas robustas. Os sistemas são orientados a eventos e os ambientes de backtesting muitas vezes podem simular os ambientes ao vivo com um alto grau de precisão. Os sistemas também suportam algoritmos de execução otimizados, que tentam minimizar os custos de transação. Isto é particularmente útil para os comerciantes com uma base de capital maior. Tenho que admitir que não tive muita experiência com Deltix ou QuantHouse. Dito isto, o orçamento só os coloca fora do alcance da maioria dos comerciantes de varejo, então eu não vou me debruçar sobre esses sistemas. Colocation O cenário de software para negociação algorítmica foi agora pesquisado. Agora podemos voltar nossa atenção para a implementação do hardware que executará nossas estratégias. Um comerciante de varejo provavelmente estará executando sua estratégia em casa durante as horas de mercado. Isso envolverá ligar o PC, conectar-se à corretora, atualizar o software de mercado e permitir que o algoritmo seja executado automaticamente durante o dia. Por outro lado, um fundo quant financeiro profissional com ativos significativos sob gestão (AUM) terá uma infra-estrutura dedicada de servidor com colocação em troca, a fim de reduzir a latência, tanto quanto possível, para executar suas estratégias de alta velocidade. Home Desktop A abordagem mais simples para a implantação de hardware é simplesmente executar uma estratégia algorítmica com um computador desktop doméstico conectado à corretora por meio de uma conexão de banda larga (ou similar). Embora esta abordagem seja simples de começar, ela sofre de muitos inconvenientes. A máquina de mesa está sujeita a falha de energia, a menos que tenha o backup feito por um no-break. Além disso, uma ligação à Internet em casa também está à mercê do ISP. A perda de energia ou falha na conectividade com a Internet pode ocorrer em um momento crucial da negociação, deixando o operador algorítmico com posições abertas que não podem ser fechadas. Esse problema também ocorre com reinicializações obrigatórias do sistema operacional (isso realmente aconteceu comigo em uma configuração profissional) e falha de componente, o que leva aos mesmos problemas. Pelos motivos acima, hesito em recomendar uma abordagem de desktop doméstica para negociação algorítmica. Se você decidir seguir essa abordagem, certifique-se de ter um computador de backup E uma conexão de internet de backup (por exemplo, um dongle 3G) que possa ser usado para fechar posições em uma situação de inatividade. VPS O próximo nível de um desktop doméstico é fazer uso de um servidor virtual privado (VPS). Um VPS é um sistema de servidor remoto geralmente comercializado como um serviço de nuvem. Eles são muito mais baratos que um servidor dedicado correspondente, já que um VPS é na verdade uma partição de um servidor muito maior. Eles possuem um ambiente de sistema operacional virtual isolado, disponível apenas para cada usuário individual. A carga da CPU é compartilhada entre vários VPS e uma parte dos sistemas RAM é alocada para o VPS. Tudo isto é realizado através de um processo conhecido como virtualização. Os provedores comuns de VPS incluem o Amazon EC2 e o Rackspace Cloud. Eles fornecem sistemas de nível de entrada com pouca RAM e uso básico da CPU através de alta RAM pronta para a empresa, servidores de alta CPU. Para a maioria dos comerciantes de varejo algorítmicos, os sistemas de nível de entrada são suficientes para estratégias intraday ou interday de baixa frequência e bancos de dados de dados históricos menores. Os benefícios de um sistema baseado em VPS incluem disponibilidade 24 horas por dia (7 dias por semana), recursos de monitoramento mais robustos, plugins fáceis para serviços adicionais, como armazenamento de arquivos ou bancos de dados gerenciados e uma arquitetura flexível. Uma desvantagem é a despesa contínua. À medida que o sistema cresce, o hardware dedicado torna-se mais barato por unidade de desempenho. Esse ponto de preço pressupõe a colocação fora de uma troca. Em comparação com um sistema de desktop doméstico, a latência nem sempre é melhorada com a escolha de um provedor de VPS. Seu local de residência pode estar mais próximo de uma determinada bolsa financeira do que os datacenters do seu provedor de nuvem. Isso é mitigado pela escolha de uma empresa que ofereça serviços de VPS voltados especificamente para transações algorítmicas que estão localizadas em ou perto de bolsas de valores. Estes provavelmente custarão mais do que um provedor VPS genérico, como Amazon ou Rackspace. Colocation Exchange Para obter a melhor minimização de latência, é necessário colocar servidores dedicados diretamente no data center de troca. Essa é uma opção proibitivamente cara para quase todos os traders algorítmicos de varejo, a menos que estejam muito bem capitalizados. É realmente o domínio do fundo quantitativo profissional ou corretagem. Como mencionei acima, uma opção mais realista é comprar um sistema VPS de um provedor localizado próximo a uma bolsa. Como pode ser visto, existem muitas opções para backtesting, execução automatizada e hospedagem de uma estratégia. A determinação da solução correta depende do orçamento, da capacidade de programação, do grau de customização necessário, da disponibilidade da classe de ativos e se a negociação deve ser realizada em uma base profissional ou varejista. Estratégia Backtesting Platforms Ao ponto, atualmente estou testando vários softwares pacote para estratégias de backtesting para escolher o melhor para usar em um grande projeto. Eu tenho que dizer que eu tenho estado longe de tais detalhes nos últimos 2-3 anos e tenho certeza que minhas informações estão desatualizadas e eu preciso de uma atualização dos especialistas aqui que estão usando os pacotes de software atuais e suas experiências. Eu estou testando / demoing / tentando os seguintes pacotes agora (Então, por favor, se você tiver algum feedback sobre algum deles, seria muito apreciado para postar uma resposta detalhada): 1- Matlab 2- Trading Blox 3- MultiCharts 4- Trade Station 5- AmiBroker 6- NinjaTrader Agora, eu sei que a maioria dos pacotes e plataformas mencionados são principalmente de varejo e eles serão tão bons quanto o uso de varejo para todos os níveis, no entanto, estou aberto a pacotes institucionais também, se houver O membro aqui tem uma experiência anterior com um (só para esclarecer, pacotes institucionais significa plataformas usadas por fundos hedge ou balcões em grandes bancos). Nenhuma conversa sobre MT (Metatrader) ou Metastock por favor, como eu não vou estar usando nenhum deles. MT usa alguma variação de C e eu não estou disposto a aprender C como eu não tenho tempo. Metastock, eu já tentei e tenho que dizer o seu lixo, muito básico, limitado e um monte de restrições, por isso não vai caber até mesmo uma necessidade de varejo de nível intermediário. Eu usei o Matlab em meus antigos dias de engenharia e tenho que dizer que é uma ferramenta muito útil, mas novamente exigirá muito gerenciamento de código e estou tentando minimizar a codificação o máximo possível. Aqui está o que eu estou procurando na plataforma de backtesting, então se você já experimentou isso em uma das acima mencionadas ou em outra plataforma não mencionada, seu feedback é muito apreciado: 1- A plataforma deve ser precisa, precisa e realista O projeto e a construção do sistema devem ser o mais flexíveis possível, permitindo que todos os componentes e condições sejam criados e com a possibilidade de vinculá-los, isto é, o pacote deve ser o mais próximo possível do backtesting. oferecer a possibilidade de dependência de componentes Por exemplo, ao simular entradas, é preciso ter a capacidade de construir as regras das entradas com base em qualquer condição possível ou conjunto de condições, dependentes ou independentes, sem remover a possibilidade de integrar o componente de entrada outros componentes do sistema. Para esclarecer isso, digamos que uma estratégia tem uma regra de entrada simples, que é longa quando o preço cruza acima de seu 20-EMA por 1 em uma base intraday, no entanto, se os 3 últimos negócios consecutivos perderam dinheiro, a regra de entrada deve estaria cruzando acima do 20-EMA por 1.35 e se os 2 últimos negócios consecutivos fossem vencedores com uma média de 15 ou mais de lucro, a regra de entrada deveria estar cruzando acima do 20-EMA apenas por 0.5. Eu espero que você tenha o meu ponto. O mesmo se aplica não apenas às regras de entrada, mas também para parar as saídas de perdas e saídas de lucros. 3- O componente / condições de dimensionamento da posição pode ser construído por qualquer conjunto de condições ou regras. Por exemplo, se eu precisar que o dimensionamento de posição seja dinâmico com base na diferença percentual entre o preço e um 250-EMA, eu devo ser capaz de fazer isso, onde 100 da posição a ser tomada quando o preço está acima / abaixo o 250-EMA por 1 e o tamanho da posição diminui incrementalmente em 10 para cada 1 passo longe do 250-EMA em qualquer direção. Agulhas para dizer que o cálculo da fórmula personalizada de dimensionamento de posição deve ser suportado e eu devo ter a capacidade de usar os dados da curva de capital em série para alterar dinamicamente o tamanho da posição das próximas negociações. Outra coisa muito importante no suporte aos cálculos de dimensionamento de posição é ter a capacidade de usar as probabilidades calculadas a partir dos resultados em um determinado ponto para ajustar o dimensionamento da posição de acordo com uma fórmula. Como exemplo, digamos que eu estarei usando uma certa fórmula de dimensionamento de posição para os primeiros 100 trades e, em seguida, com base no valor da conta após esses 100 trades e na distribuição desses 100 trades, usarei fórmulas diferentes de dimensionamento de posição posteriormente. Para elaborar: Se após os primeiros 100 negócios, o valor da conta cresceu 30 ou mais e os primeiros 100 negócios foram 60 vencedores e 40 perdedores, a razão de ganhos / perdas de 2.5 / 1, eu preciso ter a capacidade de usar outro dimensionamento de posição fórmula neste caso para os próximos 100 trades e assim por diante. A idéia principal por trás disso é que, à medida que você avança, a expectativa do sistema muda com o tempo à medida que você assume cada vez mais negócios e o conceito básico é que, se a expectativa do seu sistema está melhorando, você quer aumentar o tamanho da sua posição o máximo da expectativa aumentada e se a expectativa do seu sistema está piorando, você precisa reduzir o tamanho da sua posição e negociar menos desde quando a expectativa do sistema melhorar, você está praticamente recebendo mais recompensas por cada dólar arriscado e vice-versa . 4- Os detalhes / condições de execução devem ser o mais flexíveis possível e muito próximos das situações da vida real, permitindo um escorregamento baseado em variáveis ​​ou fórmulas. A execução também deve suportar fórmulas para determinar com precisão onde e como entrar, levando em consideração o volume e a liquidez (a ser definido por fórmulas e filtros) 5- Testes múltiplos de sistemas ao mesmo tempo em múltiplos instrumentos devem ser suportados, ou seja, se eu tiver 3 diferentes sistemas de negociação e 100 instrumentos para negociar com base nas condições dos sistemas, o pacote deve permitir o back testing de todos os 3 sistemas de negociação entre os 100 instrumentos ao mesmo tempo, tendo negociações na ordem em que vêm baseadas nas regras dos 3 sistemas e em seguida, combine os resultados em um único portfólio, como se o pacote estivesse simulando uma varredura diariamente para os 100 instrumentos para ver qual sistema gerava sinais e executava os sinais com base nas condições programadas do sistema e assim por diante, gerenciando várias posições ao mesmo tempo. time 6- Os resultados de relatórios e testes devem ser abrangentes e exportáveis ​​para o Excel. Métricas estatísticas básicas devem ser incluídas além da lucratividade do sistema ou da combinação de sistemas sendo testados. Os dados da curva de patrimônio devem ser exportáveis ​​para o Excel também. Medidas básicas de curva de capital, como max. rebaixamento, e reduções médias mensais, variabilidade de retornos e desvio padrão dos dados da curva de capital, etc. são preferidos a estar presentes dentro do pacote 7- Otimização para 1 ou mais variáveis ​​devem ser parte do pacote e o pacote deve ser capaz de otimizar para variáveis ​​não-padrão, como otimizar para alcançar o min. drawdown, etc. 8- O pacote deve ter a capacidade de obter dados de uma fonte em tempo real ou automática, ou manualmente através de arquivos csv ou excel. Ele tem que suportar dados contínuos de contratos futuros, bem como dados de opções. 9- Instrumentos Financeiros a serem suportados são ações, opções, futuros e dados OTC FX e os campos a serem suportados no banco de dados de pacotes são Timestamp, open, high, low, close, volume, lance, volume de oferta, peça, peça volume, preço de liquidação e interesse aberto Finalmente, desculpe pelo correio longo e desculpe que eu o mantive lendo tudo isto. Seu feedback é realmente muito apreciado. Entrou em Jan 2005 Status: Membro do Fórum Happy 1.152 Postagens Muito obrigada por sua resposta e pela sua oferta, muito generosa da sua parte. O tempo é um pouco limitado aqui é por isso que estou deixando a opção de programação como a última se eu não encontrar um pacote pronto que é bom para o que estou procurando. Até agora, de todos os pacotes que eu mencionei, o Trading Blox parece bom para o que estou procurando, não a correspondência exata, mas parece bem, mas eu não vou comprometer a qualidade e os recursos de qualquer maneira, então ainda preciso de mais detalhes teste. Obrigado novamente e manteremos contato. Eu entendo perfeitamente de onde você está vindo com seu primeiro post. Mas, eu realmente acredito que para os requisitos que você afirma, você terá que seguir um caminho diferente. Eu não acho que haverá algum pacote fora da caixa (além dos que você mencionou) que será capaz de atender a esses requisitos. Eu fiz muitos testes e tive a necessidade de fazer backtesting de muitas coisas. No final, eu escrevi meu próprio software de backtesting em c. Eu entendo que você afirmou que você não está interessado em ir por este caminho, mas. Estou realmente com medo.

Комментариев нет:

Отправить комментарий