Sunday 19 November 2017

Quantopian volta teste forex


Em vez de dizer-lhe a melhor ferramenta ou processo que você pode usar para backtesting, deixe-me em vez focar os maiores erros que você precisa evitar, a fim de fazer um backtest confiável. Estes são alguns dos fatores mais importantes que você precisa para manter em mente quando backtesting stock trading estratégias - Overfitting dados: Este é, de longe, o maior erro a maioria das pessoas fazem na busca de criar uma estratégia que dá espetacular backtested resultados. Ao criar a estratégia, se você começar a ajustar seus parâmetros de uma forma que maximiza os retornos, então essa estratégia provavelmente falhará miseravelmente em condições reais. Existem 2 maneiras de superar isso - fora da amostra de testes e criação de estratégias baseadas na lógica, em vez de ajustes parâmetros de entrada. Previsões à vista para a frente: Isso acontece quando você usa dados para gerar sinais que de outra forma não estariam disponíveis naquele momento no passado. Por exemplo, se o fim do ano financeiro de uma empresa é março e você usar seus dados de ganhos para o ano anterior em 1 de abril, é muito provável que a empresa não teria anunciado que os dados antes de maio ou junho. Isso resultaria em um viés prospectivo. Preconceito de sobrevivência. Este é um daqueles difícil de notar erros. Vamos dizer que você tem uma estratégia que negocia a partir de uma lista de 500 ações de pequena capitalização com base em alguns indicadores técnicos. As chances são de que, se você tentar se apossar de 10 anos de dados de preços históricos para estas 500 ações para o seu backtesting, você não irá incluir os dados para todas as ações que foram retiradas da lista nesse período de 10 anos. Quando você testar sua estratégia, você não contabilizaria os negócios possíveis que teriam sido gerados em qualquer um desses estoques ruins se você tivesse realmente executado essa estratégia durante esse período. Concentrando-se puramente em retornos. Há um número de parâmetros que você precisa considerar para julgar a qualidade de uma estratégia. Concentrar-se puramente em retornos pode levar a vir questões importantes. Por exemplo, se a Estratégia A dá 10 retornos ao longo de um determinado período com um máximo de -2, ea estratégia B dá 12 retornos com um drawdown de -10, então B não é claramente uma estratégia superior para A. Existem outros parâmetros importantes Tais como redução, taxa de sucesso, taxa de sharpe, etc Impacto de mercado, encargos de transação. Ao olhar para a viabilidade de uma estratégia, é muito importante considerar o possível impacto no mercado do comércio e também os encargos de transação incorridos. Você pode ser tentado a criar uma estratégia que compra / vende grandes volumes de algumas ações de baixa liquidez que tendem a dar retornos excepcionais. Mas quando você entra no mercado para executar esta estratégia, uma grande ordem em um estoque ilíquido irá mover o preço que você wouldnt ter fatorado em seus testes. Além disso, os custos de transação também podem alterar os retornos substancialmente para que você deve sempre olhar para os lucros líquidos. Mineração de dados . Isso é bastante semelhante ao problema de overfitting de dados. Se você tortura os dados o suficiente, confessará a qualquer coisa. Esta é uma piada comum entre os cientistas de dados que acreditam que, se você gastar tempo suficiente, você pode encontrar um padrão em quase qualquer conjunto de dados que não significa necessariamente que este padrão será válido no futuro. Os fundamentos mudam. Poderia muito bem acontecer que você encontrar uma estratégia que executa excepcionalmente bem em dados passados. Mas uma mudança fundamental na dinâmica do mercado pode fazer com que essa mesma estratégia falhe no futuro. É sabido que praticamente qualquer boa estratégia precisa continuar evoluindo com as mudanças nas condições do mercado. Quadro de tempo pequeno. É fundamental testar a estratégia durante um período de tempo suficientemente longo e em condições de mercado em mudança. Isto é especialmente verdadeiro para as estratégias de negociação de ações que podem executar excepcionalmente bem em um mercado em alta, mas iria acabar com sua conta bancária em um lado ou mercado de baixa. Há muitas outras coisas a considerar quando backtesting. Mas, eventualmente, a única maneira de garantir que uma estratégia funciona em condições reais é testá-lo em condições reais. Tauro Riqueza é uma empresa de tecnologia financeira (Riqueza Tauro), que está olhando para resolver os problemas enfrentados pela Tauro Riqueza. Varejistas na Índia. Esperamos fornecer soluções abrangentes de investimento a longo prazo em uma fração dos custos tradicionais. 1.9k Vistas middot Ver Upvotes middot Não é para Reprodução Não há nada como superior como Amibroker quando se trata de Backtesting. É uma das ferramentas mais versáteis para o desenvolvimento de sistemas de Trading e testes. Tem um backtest muito robusto e motor de otimização fora da caixa. Além disso, ele também fornece interface de backtester personalizada usando o qual você pode jogar em torno das regras e métricas padrão de backtest. Confira abaixo alguns artigos que gira em torno de Amibroker backtesting: 1.8k Vistas middot Ver Upvotes middot Não é para reproduçãoChoosing 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 electrónica, gere sinais de execução comercial sem qualquer intervenção humana subsequente. A maioria dos sistemas discutidos no QuantStart até à data foram projetados para serem implementados como estratégias de execução automatizada. O artigo descreverá pacotes de software e linguagens de programação que oferecem backtesting e capacidades de execução automatizadas. A primeira consideração é como backtest uma estratégia. Minha opiniã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 das linguagens de programação disponíveis é grande e diversificada, o que muitas vezes pode ser esmagador. Não é óbvio antes do desenvolvimento qual linguagem é provável ser apropriada. Ao codificar uma estratégia em regras sistemáticas, o comerciante quantitativo deve ter certeza de que seu desempenho futuro será reflexo de seu desempenho passado. Existem geralmente duas formas de backtesting sistema que são utilizados para testar esta hipótese. Em geral, eles são categorizados como testadores de back-back de pesquisa e testadores de back-driven. Vamos considerar backtesters personalizados versus produtos de fornecedores para esses dois paradigmas e ver como eles se comparam. Ferramentas de Pesquisa Ao identificar estratégias de negociação algorítmicas, geralmente desnecessário para simualte completamente todos os aspectos da interação do mercado. Em vez disso, podem ser feitas aproximações que proporcionam uma rápida determinação do desempenho potencial da estratégia. Essas ferramentas de pesquisa muitas vezes fazem suposições irrealistas sobre os custos de transação, os prováveis ​​preços de preenchimento, restrições de curto prazo, dependência 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 vêm com capacidades 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 vectorizados. Com tais ferramentas de pesquisa, é possível testar várias estratégias, combinações e variantes de uma maneira rápida e iterativa, sem a necessidade de desenvolver completamente uma simulação de interação de mercado realista. Embora essas ferramentas sejam freqüentemente usadas tanto para backtesting quanto para execução, esses ambientes de pesquisa geralmente não são adequados para estratégias que se aproximam do comércio intraday em freqüências mais altas na escala de sub-minutos. Essas bibliotecas não tendem a ser capazes de se conectar efetivamente a fornecedores de dados de mercado em tempo real ou interagir com APIs de corretagem de forma robusta. Apesar dessas deficiências de execução, os ambientes de pesquisa são fortemente utilizados dentro da indústria profissional de negociação quantitativa. Eles fornecem o primeiro rascunho para todas as idéias de estratégia antes da promoção para controlos mais rigorosos dentro de um ambiente de backtesting realista. Backtesting conduzido por eventos Uma vez que uma estratégia é considerada adequada na pesquisa, ela deve ser avaliada de forma mais realista. Tal realismo tenta explicar a maioria (se não todas) das questões descritas em postagens anteriores. A situação ideal é ser capaz de usar o mesmo código de geração comercial para backtesting histórico, bem como execução ao vivo. Isto é conseguido através de um backtestter movido a eventos. Os sistemas de eventos são amplamente utilizados na engenharia de software, comumente para manipular a entrada de interface gráfica do usuário (GUI) dentro de sistemas operacionais baseados em janelas. Eles também são ideais para negociação algorítmica como a noção de ordens de mercado em tempo real ou preenchimentos comerciais podem ser encapsulados como um evento. Esses sistemas são freqüentemente 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 (estes dois podem ser um e o mesmo). Novas informações de mercado serão enviadas para o sistema, o que aciona um evento para gerar um novo sinal de negociação e, portanto, um evento de execução. Esses sistemas funcionam em um loop contínuo esperando para receber eventos e lidar com eles adequadamente. É possível gerar subcomponentes, como um manipulador de dados históricos e simulador de corretagem, que pode imitar suas contrapartes vivas. Isso permite backtesting estratégias de uma forma extremamente semelhante à de execução ao vivo. A desvantagem de tais sistemas reside na sua concepção complicada quando comparada com uma ferramenta de pesquisa mais simples. Daí o tempo para o mercado é mais longo. Eles são mais propensos a bugs e exigem um bom conhecimento de programação e metodologia de desenvolvimento de software. Em termos de engenharia, a latência é definida como o intervalo de tempo entre uma simulação e uma resposta. Na negociação quantitativa, refere-se geralmente ao atraso de tempo de ida e volta entre a geração de um sinal de execução ea recepção das informações de preenchimento a partir de um corretor que executa a execução. Essa latência raramente é um problema nas estratégias de interdias de baixa frequência. O movimento de preços esperado 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 maior freqüência, onde a latência se torna extremamente importante. O objetivo final em HFT é reduzir a latência, tanto quanto possível, para reduzir o deslizamento. A latência decrescente envolve a minimização da distância entre o sistema de negociação algorítmica ea 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 infra-estrutura mais sofisticada. Muitas corretoras competem em latência para ganhar negócios. Diminuir latência torna-se exponencialmente mais caro em função da distância à Internet, que é definida como a distância de rede entre dois servidores. Assim, para um comerciante de alta frequência, um compromisso deve ser alcançado entre a despesa de redução de latência eo ganho de minimizar o deslizamento. Essas questões serão discutidas na seção sobre Colocação abaixo. Escolhas de Idioma Alguns problemas que direcionam a escolha de idioma já foram descritos. Agora vamos considerar os benefícios e desvantagens de linguagens de programação individuais. Eu categorizei amplamente as línguas em desenvolvimento de alto desempenho / mais duro contra desempenho mais baixo / desenvolvimento mais fácil. Estes são termos subjetivos e alguns discordarão dependendo de seu fundo. Um dos aspectos mais importantes da programação de um ambiente de backtesting personalizado é que o programador está familiarizado com as ferramentas utilizadas. Para aqueles que são novos para o cenário de linguagem de programação, o seguinte vai esclarecer o que tende a ser utilizado dentro de negociação algorítmica. 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 correspondente ambiente de desenvolvimento integrado (IDE), são todos cruz-plataforma, têm uma ampla gama de bibliotecas para quase qualquer tarefa imaginável e permitir velocidade de execução rápida quando utilizados corretamente. Se a velocidade de execução final é desejada, então C (ou C) é provável que seja a melhor escolha. Oferece a maior flexibilidade para gerenciar a memória e otimizar a velocidade de execução. Esta flexibilidade tem um preço. C é complicado para aprender bem e muitas vezes pode levar a bugs sutis. O tempo de desenvolvimento pode levar muito mais tempo do que em outras linguagens. Apesar dessas deficiências, ela é generalizada no setor financeiro. C e Java são semelhantes, uma vez que ambos exigem que todos os componentes sejam objetos com exceção de tipos de dados primitivos, como flutuadores e inteiros. Diferem de C executando a coleta automática de lixo. 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 GUI nativos, bibliotecas de análise numérica e velocidade de execução rápida. Pessoalmente, eu uso de C para a criação de backersters evento-driven que precisa de velocidade de execução extremamente rápida, como para sistemas HFT. Isso é somente se eu senti que um sistema de evento Python foi gargalo, como o último idioma seria a minha primeira escolha para tal sistema. MATLAB, R e Python MATLAB é um IDE comercial para computação numérica. Ganhou ampla aceitação nos setores acadêmico, de engenharia e financeiro. Tem muitas bibliotecas numéricas para computação científica. Possui uma velocidade de execução rápida sob o pressuposto de que qualquer algoritmo a ser desenvolvido está sujeito a vectorização ou paralelização. Apesar dessas vantagens, é caro torná-lo menos atraente para os comerciantes de varejo com um orçamento. MATLAB é usado às vezes para a execução direta a uma corretora tal como corretores interativos. R é um ambiente dedicado de scripts de estatísticas. É livre, open-source, multi-plataforma e contém uma riqueza de livremente disponíveis pacotes estatísticos para a realização de análise extremamente avançada. R é muito utilizado nas estatísticas acadêmicas e na indústria de fundos de hedge quantitativos. Embora seja possível conectar R a uma corretora não é bem adequado para a tarefa e deve ser considerado mais de uma ferramenta de pesquisa. Também não tem velocidade de execução a menos que as operações sejam vectorizadas. Ive agrupados Python sob este título, embora ele fica em algum lugar entre MATLAB, R e as linguagens de finalidade geral acima mencionados. É livre, open-source e multi-plataforma. É interpretado como oposto a compilado. O que o torna nativamente mais lento do que C. No entanto, ele contém uma biblioteca para realizar quase todas as tarefas imagináveis, desde a computação científica até o design de servidor web de baixo nível. Em particular, contém NumPy, SciPy, pandas, matplotlib e scikit-learn, que fornecem um ambiente de pesquisa numérica robusta que, quando vectorizada, é comparável à velocidade de execução de linguagem compilada. Python também possui bibliotecas para conexão com corretoras. Isso faz com que seja um balcão único para criar um backtesting orientado a eventos e um ambiente de execução ao vivo sem ter que entrar em outras linguagens mais complexas. Velocidade de execução é mais do que suficiente para comerciantes intraday trading na escala de tempo de minutos e acima. Python é muito simples de pegar e aprender quando comparado a linguagens de nível inferior como C. Por estas razões, fazemos uso extensivo de Python dentro de artigos QuantStart. Ambientes de Desenvolvimento Integrados O termo IDE tem múltiplos significados dentro da negociação algorítmica. Desenvolvedores de software usá-lo para significar uma GUI que permite a programação com realce de sintaxe, navegação de arquivos, depuração e execução de código recursos. Os traders algorítmicos usam isso para significar um ambiente de backtesting / trading totalmente integrado com dados históricos ou 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, muitas vezes baseado em GUI, que não é considerado uma linguagem de programação de propósito geral. Enquanto alguns comerciantes quant podem considerar Excel para ser inadequado para negociação, eu achei que fosse extremamente útil para verificação de sanidade dos resultados. O fato de que todos os dados estão disponíveis diretamente à vista torna fácil a implementação de estratégias de sinal / filtro muito básicas. Corretoras como Interactive Brokers também permitem plugins DDE que permitem ao Excel receber dados de mercado em tempo real e executar ordens de negociação. Apesar da facilidade de uso do Excel é extremamente lento para qualquer escala razoável de dados ou nível de computação numérica. Eu só usá-lo para verificar erros ao desenvolver contra outras estratégias. Em particular, é extremamente útil para verificar se uma estratégia está sujeita a viés prospectivo. Isso é fácil de detectar no Excel devido à natureza da planilha do software. Se você está desconfortável com linguagens de programação e estão realizando uma estratégia interday, em seguida, Excel pode ser uma boa escolha. Comercial / Retail Backtesting Software O mercado de gráficos de varejo, análise técnica e backtesting software é extremamente competitivo. As características oferecidas por tal software incluem a cartografia em tempo real dos preços, uma riqueza dos indicadores técnicos, do backtesting personalizado langauges e da execução automatizada. Alguns fornecedores oferecem uma solução tudo-em-um, como o TradeStation. TradeStation são uma corretora on-line que produzem software comercial (também conhecido como TradeStation) que fornece a 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, as ordens devem ser feitas através do software GUI. Isso contrasta com os Interactive Brokers, que possuem uma interface de negociação mais simples (Trader WorkStation), mas oferecem tanto as APIs proprietárias de execução de ordens de mercado em tempo real como uma interface FIX. Outra plataforma extremamente popular é o MetaTrader. Que é usado no comércio de câmbio para a criação de 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 o TradeStation ou o MetaTrader assim que eu não gastarei demasiado tempo que discute seus méritos. Essas ferramentas são úteis se você não está confortável com o desenvolvimento de software em profundidade e desejo um monte de detalhes a serem atendidos. No entanto, com tais sistemas um monte de flexibilidade é sacrificado e você está muitas vezes vinculado a uma corretora única. Ferramentas abertas e baseadas na Web Os dois sistemas populares de backtesting baseados na web são Quantopian e QuantConnect. O primeiro faz uso de Python (e ZipLine, veja abaixo), enquanto o último utiliza C. Ambos fornecem uma riqueza de dados históricos. Quantopian atualmente suporta negociação ao vivo com Interactive Brokers, enquanto o QuantConnect está trabalhando para negociação ao vivo. A Algo-Trader é uma empresa sediada na Suíça que oferece uma licença de código aberto e comercial para seu sistema. Do que eu posso reunir a oferta parece bastante maduro e eles têm muitos clientes institucionais. O sistema permite backtesting histórico completo e processamento de eventos complexos e eles se ligam em Interactive Brokers. A edição Enterprise oferece recursos substancialmente mais de alto desempenho. Marketcetera fornecer um sistema de backtesting que pode amarrar em muitas outras línguas, como Python e R, a fim de aproveitar o código que você já pode ter escrito. O Estúdio de Estratégia fornece a capacidade de escrever backtesting código, bem como algoritmos de execução otimizada e, posteriormente, a transição de um histórico backtest ao papel vivo trading. I havent utilizado antes. ZipLine é a biblioteca Python que alimenta o serviço de Quantopian mencionado acima. É um ambiente de backtest totalmente voltado para eventos e atualmente suporta ações dos EUA em uma base minuciosa. I havent fez uso extensivo de ZipLine, mas eu sei que outros que sentem 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 Github / Google Code hospedado projetos que você pode querer olhar. Eu não passei muito tempo investigando-os. Tais projetos incluem OpenQuant. TradeLink e PyAlgoTrade. Software de backtesting institucional Sistemas de backtesting de nível institucional como Deltix e QuantHouse não são freqüentemente utilizados por comerciantes de algoritmos de varejo. As licenças de software são geralmente bem fora do orçamento para infra-estrutura. Dito isto, esse software é amplamente utilizado por fundos quant, casas comerciais proprietárias, 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égia, backtesting histórico e execução ao vivo em instrumentos únicos ou carteiras, até o nível de alta freqüência. Tais plataformas tiveram testes extensivos e muitos do uso de campo e por isso são considerados robustos. Os sistemas são orientados a eventos e os ambientes de backtesting podem freqüentemente simular os ambientes ao vivo para 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 comerciantes com uma base de capital maior. Eu tenho que admitir que eu não tive muita experiência de Deltix ou QuantHouse. Dito isto, o orçamento sozinho os coloca fora do alcance da maioria dos comerciantes de varejo, então eu não vou me debruçar sobre esses sistemas. Colocação O cenário de software para negociação algorítmica foi agora pesquisado. Podemos agora voltar nossa atenção para a implementação do hardware que irá executar nossas estratégias. Um comerciante do varejo provavelmente estará executando sua estratégia do repouso durante horas do mercado. Isso envolveu ligar o PC, conectar-se à corretora, atualizar seu software de mercado e, em seguida, permitir que o algoritmo para executar automaticamente durante o dia. Por outro lado, um fundo de quantos profissionais com ativos significativos sob gestão (AUM) terá uma infra-estrutura dedicada de servidor de troca-colocated, a fim de reduzir a latência, na medida do possível, para executar suas estratégias de alta velocidade. Home Desktop A abordagem mais simples para a implantação de hardware é simplesmente realizar uma estratégia algorítmica com um computador de secretária conectado à corretora através de uma conexão de banda larga (ou similar). Embora esta abordagem é simples de começar, sofre de muitas desvantagens. A máquina de mesa está sujeita a falha de energia, a menos que seja copiada por uma UPS. Além disso, uma conexão à Internet em casa também está à mercê do ISP. Perda de energia ou falha de conexão à internet pode ocorrer em um momento crucial na negociação, deixando o comerciante 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 um ambiente profissional) e falha de componente, o que leva aos mesmos problemas. Pelas razões acima, eu hesito em recomendar uma abordagem de desktop doméstico 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 você pode usar para fechar as posições em uma situação de inatividade. O próximo nível acima de um desktop em casa é fazer uso de um servidor virtual privado (VPS). Um VPS é um sistema de servidor remoto, muitas vezes comercializado como um serviço de nuvem. Eles são muito mais baratos do que um servidor dedicado correspondente, uma vez que um VPS é realmente 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 porção dos sistemas que a RAM é alocada ao VPS. Tudo isso é realizado através de um processo conhecido como virtualização. Fornecedores comuns de VPS incluem Amazon EC2 e Rackspace Cloud. Eles fornecem sistemas de nível de entrada com baixa RAM e uso básico de CPU até a RAM de alta 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 de baixa frequência intraday ou interday e bases de dados de dados históricos menores. Os benefícios de um sistema baseado em VPS incluem disponibilidade 24/7 (embora com um certo tempo real de inatividade), capacidades de monitoramento mais robustas, plugins simples para serviços adicionais, como armazenamento de arquivos ou bancos de dados gerenciados e uma arquitetura flexível. Um inconveniente é a despesa contínua. À medida que o sistema cresce, o hardware dedicado torna-se mais barato por unidade de desempenho. Este ponto de preço assume colocation longe de uma troca. Comparado com um sistema de desktop doméstico latência nem sempre é melhorado, escolhendo um provedor VPS. Seu local de origem pode estar mais perto de uma determinada troca financeira do que os centros de dados de seu provedor de nuvem. Isso é mitigado pela escolha de uma empresa que presta serviços VPS orientada especificamente para negociação algorítmica que estão localizados em ou perto de trocas. Estes provavelmente vão custar mais do que um provedor VPS genérico, como Amazon ou Rackspace. Exchange Colocation Para obter a melhor minimização de latência é necessário colocar servidores dedicados diretamente no centro de dados de troca. Esta é uma opção proibitivamente cara para quase todos os comerciantes algorítmicos de varejo a menos que eles sejam muito bem capitalizados. É realmente o domínio do fundo quantitativo profissional ou corretora. Como eu mencionei acima uma opção mais realista é comprar um sistema VPS de um provedor que está localizado perto de uma troca. Como pode ser visto, existem muitas opções para backtesting, execução automatizada e hospedagem de uma estratégia. Determinar a solução certa depende do orçamento, da capacidade de programação, do grau de personalização necessário, da disponibilidade da classe de ativos e se a negociação deve ser realizada em uma base de varejo ou profissional. Obtendo seus resultados de backtesting fora do Quantopian e no QQPat Durante o passado Dois anos tenho sido um ávido fã da plataforma quantopian. Não só eles permitem que você back-test suas estratégias de ações com a qualidade de dados 1M, mas eles também permitem que você viver o comércio de suas estratégias em Interactive Brokers ou Robin contas de negociação ao vivo. No entanto, uma coisa que sempre me incomodou é como simplesmente não há recurso para exportar os resultados de back-testing da plataforma e you8217re simplesmente preso com os gráficos e análise de sua página de back-testing que são bastante limitados e difíceis de adaptar à apresentação Precisa de 8212 pelo menos da minha perspectiva. No post de today8217s vou compartilhar com você um truque que permite exportar seus resultados de back-testing de retorno diário de quantopian e também mostrarei como você pode analisar os resultados em um ambiente mais flexível, como um script executando qqpat . Obtenha seus resultados de um Notebook de Quantopian Analisar os resultados de back-testing em um ambiente personalizado é fundamental para o sucesso comercial. Embora a plataforma quantopiana forneça alguns dados fundamentais, como a comparação com o SPY, o Sharpe, os coeficientes beta e alfa, não fornece algumas outras informações fundamentais como R, os retornos anuais, os heatmaps de retorno mensais, etc. Curso um único programa vai lutar para dar qualquer usuário tudo o que ele ou ela quer para a análise estatística e esta é a razão pela qual ser capaz de exportar resultados é tão importante. Mesmo quando se usa o notebook, a análise é limitada pelas bibliotecas que permitem importar e, infelizmente, uma biblioteca útil, como o qqpat, ainda não está disponível (eles oferecem píleo, mas novamente é difícil dar a todos, tudo o que eles querem). Para poder exportar dados de quantpian eu usei um truque simples usando seu notebook 8212 mostrado acima. Uma vez que eles permitem que você importe os resultados de retorno diário de backtests eu usei um loop simples para imprimir todos os valores dos retornos de uma maneira que gera um bloco de texto com todas as informações que precisamos. Você pode então tomar aquele bloco de texto gerado e copiá-lo para um arquivo em branco e salvá-lo como um csv. O arquivo gerado contém uma coluna com os valores de data e outra com os retornos correspondentes a essa data. Vale a pena mencionar que eu não conseguia encontrar nada nos TPS quantopianos usando esse tipo de procedimento. Seria surpreendente se houvesse dado que os dados de retorno gerados de seus próprios sistemas de negociação quase não valem a pena proteger de você 8212 quem criou o sistema. Depois de gerar o arquivo, você pode então proceder a analisar os resultados usando qqpat. O script python acima carrega os dados do csv (altere o caminho para o caminho do seu arquivo) e cria alguns gráficos importantes. O gráfico acima do PerformanceAnalytics é gerado usando a função de retornos de plotanálise, enquanto as seguintes funções geram a análise de desempenho de rolamento de 12 meses, o mapa de retorno mensal e o gráfico de retorno anual (mostrado abaixo). Acho que os gráficos de retorno anual e os mapas de aquecimento mensais são especialmente úteis, uma vez que permitem entender como uma estratégia é homogênea no tempo. O enredo subaquático no gráfico de retornos também é muito útil, pois permite que você facilmente ver onde os puxos menores foram localizados historicamente. É claro que você não se limita a apenas usar essas funções dentro do script, mas você pode usar qualquer uma das funções disponíveis no qq-pat. Por exemplo, você pode facilmente usar getmcstatisticsforcurrentdd para ver se o período de levantamento atual se enquadra dentro de um cenário Monte Carlo pior caso calculado no intervalo de confiança especificado. Você também pode usar a função plotmclimits para obter um gráfico dos piores e melhores casos valores em cada ponto Em tempo para a última retirada na confiança especificada (esta parcela também é mostrada abaixo). Com este lote você pode dar uma olhada na linha vermelha e instantaneamente ver se sua estratégia nunca foi além de um cenário de pior cenário equilíbrio dentro do seu último período de levantamento. O mais importante agora que os dados estão dentro de um arquivo csv você está limitado apenas pela sua imaginação em como você pode analisá-lo. Você pode usar qq-pat para alguma análise poderosa, mas você também pode obter seus resultados em R e analisá-los usando uma biblioteca como quantmod ou PerformanceAnalytics ou você poderia codificar suas próprias funções com qualquer bibliotecas que você deseja importar em python para chegar a Sua própria idéia de como a análise perfeita se parece. Em qualquer caso, ter os dados permite uma flexibilidade que simplesmente não é possível se você estiver limitado a usar cadernos python dentro da plataforma quantopian. Se você gostaria de aprender mais sobre meu trabalho e como você também pode aprender a projetar, analisar e estratégias de comércio, por favor considere se juntar a Asirikuy. Um site cheio de vídeos educacionais, sistemas de negociação, desenvolvimento e uma abordagem sólida, honesta e transparente para trading. strategies automatizado.

No comments:

Post a Comment