Biblioteca de Negociação Algorítmica Python.
O PyAlgoTrade é uma Biblioteca de Negociação Algorítmica Python, com foco em backtesting e suporte para negociação de papéis e negociação ao vivo. Digamos que você tenha uma ideia para uma estratégia de negociação e gostaria de avaliá-la com dados históricos e ver como ela se comporta. O PyAlgoTrade permite que você faça isso com o mínimo de esforço.
Principais características.
Totalmente documentado. Evento dirigido. Suporta ordens Market, Limit, Stop e StopLimit. Suporta o Yahoo! Arquivos Finanças, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados de séries temporais no formato CSV, por exemplo, o Quandl. Suporte de negociação Bitcoin através do Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas de Bollinger, expoente de Hurst e outros. Métricas de desempenho como a taxa de Sharpe e a análise de rebaixamento. Manipulando eventos do Twitter em tempo real. Criador de perfil de eventos. Integração TA-Lib.
Muito fácil de dimensionar horizontalmente, isto é, usando um ou mais computadores para fazer backtest de uma estratégia.
O PyAlgoTrade é gratuito, de código aberto e está licenciado sob a Licença Apache, Versão 2.0.
Estratégias de negociação em python
Se você é um profissional ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativa, você está no lugar certo.
O curso de Negociação com o Python fornecerá as melhores ferramentas e práticas para pesquisa de negociação quantitativa, incluindo funções e scripts escritos por especialistas em negociações quantitativas. O curso dá o máximo impacto ao seu tempo e dinheiro investidos. Centra-se na aplicação prática da programação à negociação, em vez da informática teórica. O curso se pagará rapidamente economizando seu tempo no processamento manual de dados. Você passará mais tempo pesquisando sua estratégia e implementando negociações lucrativas.
Visão geral do curso.
Parte 1: Noções básicas Você aprenderá por que o Python é uma ferramenta ideal para negociações quantitativas. Começaremos configurando um ambiente de desenvolvimento e, em seguida, apresentaremos as bibliotecas científicas.
Parte 2: Manipulando os dados Aprenda como obter dados de várias fontes gratuitas como Yahoo Finance, CBOE e outros sites. Leia e escreva vários formatos de dados, incluindo arquivos CSV e Excel.
Parte 3: Pesquisando estratégias Aprenda a calcular P & L e acompanhar as métricas de desempenho como Sharpe e Drawdown. Construa uma estratégia de negociação e otimize seu desempenho. Vários exemplos de estratégias são discutidos nesta parte.
Parte 4: Indo ao vivo! Esta parte é centralizada em torno da API Interactive Brokers. Você aprenderá como obter dados de estoque em tempo real e fazer pedidos ao vivo.
Muito código de exemplo.
O material do curso consiste em 'cadernos' que contêm texto juntamente com código interativo como este. Você poderá aprender interagindo com o código e modificando-o ao seu gosto. Será um ótimo ponto de partida para escrever suas próprias estratégias.
Embora alguns tópicos sejam explicados detalhadamente para ajudá-lo a entender os conceitos subjacentes, na maioria dos casos você não precisará escrever seu próprio código de baixo nível, devido ao suporte de bibliotecas de código aberto existentes:
A biblioteca TradingWithPython combina grande parte da funcionalidade discutida neste curso como uma função pronta para uso e será usada durante todo o curso. Os pandas fornecerão a você todo o poder de levantamento pesado necessário para a compactação de dados.
Todo o código é fornecido sob a licença BSD, permitindo seu uso em aplicações comerciais.
Classificação do curso.
Um piloto do curso foi realizado na primavera de 2013, isso é o que os alunos puderam dizer:
Matej curso bem planejado e bom treinador. Definitivamente vale seu preço e meu tempo Lave Jev obviamente sabia suas coisas. A profundidade da cobertura foi perfeita. Se Jev executar algo assim novamente, eu serei o primeiro a me inscrever. John Phillips Seu curso realmente me fez começar a considerar o python para análise de sistemas de estoque.
Estratégias de negociação em python
Olá, bem-vindo à parte 13 da série de tutoriais do Python for Finance. Neste tutorial, vamos começar a falar sobre back-testing de estratégia. O campo de testes de volta e os requisitos para fazer o certo são muito grandes. Basicamente, o que é necessário para nós é criar um sistema que receba dados históricos de preços e simule transações nesse ambiente, e depois nos forneça os resultados. Isso pode parecer simples, mas, para analisar a estratégia, precisamos rastrear um monte de métricas como o que vendemos, quando, com que frequência trocamos, o que são nossos Beta e Alpha, além de outras métricas como rebaixamento, Sharpe Proporção, Volatilidade, alavancagem e muito mais. Junto com isso, geralmente queremos ser capazes de visualizar tudo isso. Então, podemos escrever tudo isso por nós mesmos ou podemos usar uma plataforma para nos ajudar com isso.
. É por isso que vamos apresentar o Quantopian, que é uma plataforma que nos permite escrever e fazer back-teste de estratégias de negociação baseadas em Python com muita facilidade.
O que o Quantopian faz é adicionar uma camada de GUI no topo da biblioteca de teste de retorno do Zipline para Python, junto com um monte de fontes de dados, muitas das quais são completamente livres para trabalhar. Você também pode obter alocações de capital da Quantopian licenciando sua estratégia para eles se atender a determinados critérios. Geralmente, um beta entre -0,3 e +0,3 é um bom ponto de partida, mas você também precisa ter outras métricas saudáveis para competir. Mais sobre isso mais tarde, vamos aprender sobre os fundamentos do primeiro Quantopian. Como o Quantopian é desenvolvido principalmente por bibliotecas de código aberto, como Zipline, Alphalens e Pyfolio, você também pode executar uma plataforma semelhante à Quantopian localmente, se quiser. Eu acho que a maioria das pessoas que estão interessadas em correr localmente estão interessadas nisso para manter seus algoritmos privados. O Quantopian não vê seus algoritmos, a menos que você lhes dê permissão, e a comunidade só vê seus algoritmos se você os compartilhar. Eu recomendo fortemente que você veja seu relacionamento com a Quantopian não como um adversário, mas sim como uma parceria. Se você inventar algo de alta qualidade, a Quantopian está muito interessada em trabalhar e tem o financiamento para investir em você. Nessa relação, a Quantopian está trazendo a plataforma, o financiamento e outros especialistas no campo para ajudá-lo, é um bom negócio na minha opinião.
Para começar, dirija-se a Quantopian, crie uma conta se você não tiver uma, e entre. Sinta-se à vontade para dar uma olhada. Os fóruns comunitários da Quantopian são um ótimo lugar para absorver algum conhecimento. A Quantopian também realiza uma competição frequente pelos preços à vista. Nós vamos começar com algoritmos. Uma vez lá, escolha o botão azul "novo algoritmo". Por enquanto, vamos passar a maior parte do nosso tempo em dois lugares, que podem ser encontrados no botão "Meu Código". Para começar, vamos para algoritmos e criar um novo algoritmo usando o botão azul "Novo Algoritmo".
Quando você cria o algoritmo, você deve ser levado para a página de algoritmos de edição ativa com o algoritmo clonado, que se parece com isso (menos as caixas coloridas), e algumas alterações possivelmente para a interface do usuário.
Python Editor - É onde você codifica sua lógica Python para o algoirthm. Resultados de algoritmos construídos - Quando você cria o algoritmo, os resultados gráficos aparecerão aqui. Saída de log / erro - Qualquer informação de saída / registro do console virá aqui. É comum que o seu programa envie vários pedaços de texto para depuração ou apenas para mais informações. Algoritmo de construção - Use isso para testar rapidamente o que você escreveu. Os resultados não serão salvos, mas você pode ver o resultado na seção de resultados do algoritmo construído. Backtest completo - Isso executará um teste completo com base em seu algoritmo atual. Os testes de back-back vêm com um pouco mais de análise, os resultados são salvos e o algoritmo que gerou esses resultados também é salvo, para que você possa voltar aos testes anteriores e visualizar o código exato que gerou um resultado específico.
O código de amostra inicial é algo como:
O que é ótimo, mas talvez um pouco demais para começar. O Quantopian também fornece alguns exemplos de algoritmos se sua conta for nova. Sinta-se livre para verificar isso, mas você pode achar que eles são confusos. As únicas duas funções que você precisa em todos os algoritmos são: initialize e handle_data. A função de inicialização é executada uma vez, no início do seu script. Você vai usar isso para configurar globals como regras, funções para usar mais tarde e vários parâmetros. Em seguida, a função handle_data que é executada a cada minuto em relação aos dados de mercado.
Vamos escrever nossa própria estratégia simples para nos familiarizarmos com o Quantopian. Vamos implementar uma estratégia de crossover de média móvel simples e ver como isso acontece.
Se você não estiver familiarizado com as médias móveis, o que elas fazem é obter um certo número de "janelas" de dados. No caso de correr contra os preços diários, uma janela seria um dia. Se você pegasse uma média móvel de 20, isso significaria uma média móvel de 20 dias. A partir daqui, a ideia é dizer que você tem uma média móvel de 20 e uma média móvel de 50. Plotar isso em um gráfico pode ser algo como:
Aqui, a linha azul é o preço das ações, a linha vermelha é a média móvel de 20 e a linha amarela é a média móvel de 50. A ideia é que, quando a média móvel de 20, que reage mais rápido, se mover acima da média móvel de 50, isso significa que o preço pode estar subindo, e podemos querer investir. Inversamente, se a média móvel de 20 cair abaixo da média móvel de 50, isso sinaliza talvez que o preço está tendendo para baixo, e que poderíamos querer vender ou investir ou mesmo vender a empresa em curto, que é onde você aposta contra isso.
Para nossos propósitos aqui, vamos aplicar uma estratégia de crossover de média móvel à Apple (AAPL), entre as datas de 7 de outubro de 2015 e 7 de outubro de 2016. Para esse período, as ações da AAPL caíram e aumentaram, com muito pouca mudança líquida global . Nossa estratégia de crossover deve ficar longe ou curta (apostar contra) quando o preço cair, e depois saltar quando o preço estiver subindo. Encurtar uma empresa implica emprestar ações de outra pessoa, vendê-las e, em seguida, recomprar as ações em uma data posterior. Sua esperança é que o preço das ações caia, e você volte a comprá-las de volta muito mais barato, e devolva as ações ao dono original, embolsando a diferença. Para começar, vamos construir o método initialize:
Por enquanto, vamos definir nossas ações da Apple. Se você realmente começar a digitar sid (, o Quantopian tem uma boa funcionalidade de preenchimento automático onde você pode começar a digitar o nome da empresa ou o símbolo para encontrar seu sid. A razão para usar sid é porque os tickers da empresa podem mudar em períodos de tempo Esta é uma maneira de garantir que você está recebendo o ticker que você está realmente pretendendo obter. Você também pode usar symbol () para usar o ticker e tornar seu código um pouco mais fácil de ler, mas isso não é recomendado , já que o ticker pode mudar.
Toda vez que você criar um algoritmo com Zipline ou Quantopian, você precisará ter os métodos initialize e handle_data.
O método initialize é executado uma vez no início do algoritmo (ou uma vez por dia, se você estiver executando o algoritmo ao vivo em tempo real). Handle_data é executado uma vez por minuto.
Dentro do nosso método initialize, passamos esse parâmetro de contexto. Contexto é um Dicionário Python, que é o que vamos usar para rastrear o que poderíamos usar para variáveis globais. Simplificando, a variável de contexto é usada para rastrear nossa atual situação de investimento, com coisas como nosso portfólio e dinheiro.
Em seguida, ainda precisamos da nossa função handle_data. Essa função usa o contexto e os dados como parâmetros.
O parâmetro de contexto já foi explicado e a variável de dados é usada para rastrear o ambiente fora de nosso portfólio real. Isso rastreia coisas como preços de ações e outras informações sobre empresas em que podemos estar investindo, ou não, mas são empresas que estamos rastreando.
Para começar a função handle_data:
Podemos usar o método. history para obter preços históricos para a Apple, nos últimos 50 dias, em intervalos de 1 dia. Agora podemos fazer:
O valor sma_50 é exatamente o que a média / média é para os dados do histórico que acabamos de extrair. O sma_20 é os últimos 20 dias de dados. Observe que isso está contido no método handle_data, que é executado para cada período, então é tudo o que precisamos fazer para rastrear os valores diários das 50 e 20 médias móveis simples.
No próximo tutorial, vamos falar sobre como fazer pedidos.
US Search Desktop.
Agradecemos seus comentários sobre como melhorar a Pesquisa do Yahoo. Este fórum é para você fazer sugestões de produtos e fornecer feedback atencioso. Estamos sempre tentando melhorar nossos produtos e podemos usar o feedback mais popular para fazer uma mudança positiva!
Se você precisar de assistência de qualquer tipo, visite nosso fórum de suporte à comunidade ou encontre ajuda individualizada em nosso site de ajuda. Este fórum não é monitorado por nenhum problema relacionado a suporte.
O fórum de comentários do produto do Yahoo agora exige um ID e uma senha válidos do Yahoo para participar.
Agora você precisa fazer login usando sua conta de e-mail do Yahoo para nos fornecer feedback e enviar votos e comentários para as ideias existentes. Se você não tiver um ID do Yahoo ou a senha do seu ID do Yahoo, inscreva-se para obter uma nova conta.
Se você tiver um ID e uma senha válidos do Yahoo, siga estas etapas se quiser remover suas postagens, comentários, votos e / ou perfil do fórum de comentários do produto do Yahoo.
Vote em uma ideia existente () ou publique uma nova ideia…
Idéias quentes Idéias superiores Novas ideias Categoria Status Meu feedback.
Xnxx vedios.
Trazer de volta o layout antigo com pesquisa de imagens.
sim: a única possibilidade (eu acho) enviar todas as informações para (alienvault.
Desinformação na ordem DVD.
Eu pedi DVD / Blueray "AL. A confidencial" tudo que eu consegui foi Blue ray & amp; um contato # para obter o DVD que não funcionou. Eu encomendo minha semana com Marilyn ____DVD / blue ray & amp; Eu peguei os dois - tolamente, assumi que o mesmo se aplicaria a L. A.___ETC não. Eu não tenho uma máquina de raio azul ----- Eu não quero uma máquina de raio azul Eu não quero filmes blueray. Como obtenho minha cópia de DVD de L. A. Confidential?
yahoo, pare de bloquear email.
Passados vários meses agora, o Yahoo tem bloqueado um servidor que pára nosso e-mail.
O Yahoo foi contatado pelo dono do servidor e o Yahoo alegou que ele não bloquearia o servidor, mas ainda está sendo bloqueado. CEASE & amp; DESISTIR.
Não consigo usar os idiomas ingleses no e-mail do Yahoo.
Por favor, me dê a sugestão sobre isso.
Motor de busca no Yahoo Finance.
Um conteúdo que está no Yahoo Finance não aparece nos resultados de pesquisa do Yahoo ao pesquisar por título / título da matéria.
Existe uma razão para isso, ou uma maneira de reindexar?
Procure por "turkey ******" imagens sem ser avisado de conteúdo adulto ou que o mostre.
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usar a palavra "******" em QUALQUER contexto significa que provavelmente vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como 'câncer' ou 'peru' ou 'galinha' em uma frase que inclua a palavra '******' e não assuma automaticamente que a digitação "***** * "significa que estou procurando por ***********.
Descobrir uma maneira de fazer com que as pessoas que ESTÃO procurando *********** busquem ativamente por si mesmas, sem assumir que o resto de nós deve querer ************************************************ uma palavra comum - ****** - que qualquer um pode ver qualquer dia em qualquer seção de carne em qualquer supermercado em todo o país. :(
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usar a palavra "******" em QUALQUER contexto significa que provavelmente vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como 'câncer' ou 'peru' ou 'galinha' em uma frase que inclua a palavra '******' e não assuma automaticamente que a digitação "***** * "significa que estou procurando por mais ...
Por que, quando eu faço login no YahooGroups, todos os grupos aparecem em francês ?!
Quando entro no YahooGroups e ligo para um grupo, de repente tudo começa a aparecer em francês? O que diabos está acontecendo lá ?! Por alguma razão, o sistema está automaticamente me transferindo para o fr. groups. yahoo. Alguma ideia?
consertar o que está quebrado.
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que como ele não faz e agora eu obter a nova política aparecer em cada turno - as empresas costumam pagar muito caro pela demografia que os usuários fornecem para você, sem custo, pois não sabem o que você está fazendo - está lá, mas não está bem escrito - e ninguém pode responder a menos que concordem com a política. Já é ruim o suficiente você empilhar o baralho, mas depois não fornece nenhuma opção de lidar com ele - o velho era bom o suficiente - todas essas mudanças para o pod de maré comendo mofos não corta - vou relutantemente estar ativamente olhando - estou cansado do mudanças em cada turno e mesmo aqueles que não funcionam direito, eu posso apreciar o seu negócio, mas o Ameri O homem de negócios pode vender-nos ao licitante mais alto por muito tempo - desejo-lhe boa sorte com sua nova safra de guppies - tente fazer algo realmente construtivo para aqueles a quem você serve - a cauda está abanando o cachorro novamente - isso é como um replay de Washington d c
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que isso acontece e agora eu recebo a nova política em cada turno - as empresas costumam pagar muito pela demografia que os usuários fornecem para você ... mais.
Bibliotecas de backtesting de Python para estratégias de negociação Quant.
Escrito por Khang Nguyen Vo, khangvo88 @ gmail, para o blog RobustTechHouse (Mobile App Development Singapore). Khang é formado pelo programa de Mestrado em Finanças Quantitativas e Computacionais, John Von Neumann Institute 2014. Ele é apaixonado por pesquisa em aprendizado de máquina, modelagem preditiva e backtesting de estratégias de negociação.
Bibliotecas de Backtesting de Python frequentemente mencionadas.
É essencial fazer backtest de estratégias de negociação de quant antes de negociá-las com dinheiro real. Aqui, revisamos as bibliotecas de backtesting Python usadas com frequência. Nós as examinamos em termos de flexibilidade (pode ser usada para backtesting, negociação de papéis e negociação ao vivo), facilidade de uso (boa documentação, boa estrutura) e escalabilidade (velocidade, simplicidade e compatibilidade com outras bibliotecas).
Zipline: Esta é uma estrutura de backtesting baseada em eventos usada pela Quantopian. O Zipline tem uma ótima comunidade, boa documentação, ótimo suporte para a integração Interactive Broker (IB) e Pandas. A sintaxe é clara e fácil de aprender. Tem muitos exemplos. Se o seu principal objetivo para a negociação é o patrimônio dos EUA, então este framework pode ser o melhor candidato. A Quantopian permite que alguém faça backtest, compartilhe e discuta estratégias de negociação em sua comunidade. No entanto, em nosso experimento, o Zipline é extremamente lento. Essa é a maior desvantagem dessa biblioteca. O Quantopian tem alguma solução alternativa, como executar a biblioteca do Zipline em paralelo na nuvem. Você pode dar uma olhada neste post se isso lhe interessa. Zipline também parece funcionar mal com arquivos locais e dados não-americanos. É difícil usar essa estrutura para diferentes classes de ativos financeiros. PyAlgoTrade: Esta é outra biblioteca orientada a eventos que é ativa e suporta backtesting, negociação de papéis e negociação ao vivo. Ele é bem documentado e também suporta a integração do TA-Lib (biblioteca de análise técnica). Supera o Zipline em termos de velocidade e flexibilidade. No entanto, uma grande desvantagem do PyAlgoTrade é que ele não suporta os módulos Pandas-objeto e Pandas. pybacktest: estrutura de backtesting vetorizada em Python que é muito simples e leve. Este projeto pareceu reviver novamente em 21 de maio de 2015. TradingWithPython: Jev Kuznetsov estendeu a biblioteca de pybacktest e construiu seu próprio backtester. Esta biblioteca parece atualizada recentemente em fevereiro de 2015. No entanto, a documentação e o curso dessa biblioteca custa US $ 395. Alguns outros projetos: ultra-finance.
As bibliotecas de backtesting do Python estão resumidas na tabela a seguir:
No nosso radar.
No nosso radar.
Negociação algorítmica em menos de 100 linhas de código Python.
Se você estiver familiarizado com a negociação financeira e conhecer o Python, poderá iniciar a negociação algorítmica básica em pouco tempo.
Se você quiser saber mais sobre como analisar dados financeiros com o Python, confira o Python for Finance de Yves Hilpisch.
Negociação Algorítmica.
O comércio algorítmico refere-se à negociação informatizada e automatizada de instrumentos financeiros (com base em algum algoritmo ou regra) com pouca ou nenhuma intervenção humana durante as horas de negociação. Quase todos os tipos de instrumentos financeiros - sejam ações, moedas, commodities, produtos de crédito ou volatilidade - podem ser negociados dessa maneira. Não só isso, em certos segmentos de mercado, os algoritmos são responsáveis pela maior parte do volume de negociação. Os livros The Quants, de Scott Patterson, e More Money Than God, de Sebastian Mallaby, pintam uma imagem vívida dos primórdios do comércio algorítmico e das personalidades por trás de sua ascensão.
As barreiras à entrada para negociação algorítmica nunca foram menores. Não muito tempo atrás, apenas investidores institucionais com orçamentos de TI na casa dos milhões de dólares poderiam participar, mas hoje mesmo indivíduos equipados apenas com um notebook e uma conexão com a Internet podem começar em poucos minutos. Algumas tendências importantes estão por trás desse desenvolvimento:
Software de código aberto: todo software que um trader precisa para iniciar em negociação algorítmica está disponível na forma de código aberto; especificamente, o Python se tornou a linguagem e o ecossistema de escolha. Fontes de dados abertas: Mais e mais conjuntos de dados valiosos estão disponíveis em fontes abertas e gratuitas, fornecendo uma variedade de opções para testar hipóteses e estratégias de negociação. Plataformas de negociação on-line: há um grande número de plataformas de negociação on-line que fornecem acesso fácil e padronizado a dados históricos (via RESTful APIs) e dados em tempo real (via APIs de streaming de soquete) e também oferecem recursos de negociação e portfólio (via APIs programáticas). ).
Este artigo mostra como implementar um projeto de comércio algorítmico completo, desde o backtesting da estratégia até a realização de negociações automatizadas em tempo real. Aqui estão os principais elementos do projeto:
Estratégia: Eu escolhi uma estratégia de momentum para as séries temporais (cf. Moskowitz, Tobias, Yao Hua Ooi e Lasse Heje Pedersen (2012): "Momento Momento Temporal". Journal of Financial Economics, Vol. 104, 228-250.), Que basicamente pressupõe que um instrumento financeiro que tenha funcionado bem / mal continuará a fazê-lo. Plataforma: Eu escolhi Oanda; Ele permite que você negocie uma variedade de contratos alavancados para diferenças (CFDs), que essencialmente permitem apostas direcionais em um conjunto diversificado de instrumentos financeiros (por exemplo, moedas, índices de ações, commodities). Dados: receberemos todos os dados históricos e dados de streaming da Oanda. Software: usaremos o Python em combinação com os poderosos pandas da biblioteca de análise de dados, além de alguns pacotes adicionais do Python.
O seguinte pressupõe que você tenha uma instalação do Python 3.5 disponível com as principais bibliotecas de análise de dados, como NumPy e pandas, incluídas. Se não, você deve, por exemplo, baixar e instalar a distribuição do Anaconda Python.
Conta Oanda.
Na oanda, qualquer pessoa pode registrar-se para uma conta de demonstração gratuita ("negociação de papel") em poucos minutos. Depois de ter feito isso, para acessar a API do Oanda programaticamente, você precisa instalar o pacote relevante do Python:
Para trabalhar com o pacote, você precisa criar um arquivo de configuração com o nome de arquivo oanda. cfg que tenha o seguinte conteúdo:
Substitua as informações acima pelo ID e token que você encontra em sua conta na plataforma Oanda.
A execução deste código prepara você com o objeto principal para trabalhar programaticamente com a plataforma Oanda.
Backtesting
Já criamos tudo o que é necessário para começar com o backtesting da estratégia de momentum. Em particular, somos capazes de recuperar dados históricos da Oanda. O instrumento que usamos é EUR_USD e é baseado na taxa de câmbio EUR / USD.
A primeira etapa do backtesting é recuperar os dados e convertê-los em um objeto DataFrame do pandas. O conjunto de dados é para os dois dias 8 e 9 de dezembro de 2016 e tem uma granularidade de um minuto. A saída no final do bloco de código a seguir fornece uma visão geral detalhada do conjunto de dados. Ele é usado para implementar o backtesting da estratégia de negociação.
Segundo, formalizamos a estratégia de momentum informando ao Python para fazer o retorno médio do log ao longo das últimas barras de 15, 30, 60 e 120 minutos para derivar a posição no instrumento. Por exemplo, o retorno médio do log das últimas barras de 15 minutos fornece o valor médio das últimas 15 observações de retorno. Se esse valor for positivo, nós ficamos / permanecemos longos no instrumento negociado; se for negativo, nós ficamos curtos. Para simplificar o código que se segue, apenas confiamos nos valores de closeAsk que recuperamos através do nosso bloco de código anterior:
Terceiro, para derivar o desempenho absoluto da estratégia de momentum para os diferentes intervalos de momentum (em minutos), você precisa multiplicar os posicionamentos derivados acima (desviado em um dia) pelos retornos de mercado. Veja como fazer isso:
A inspeção do gráfico acima revela que, durante o período do conjunto de dados, o instrumento negociado em si tem um desempenho negativo de cerca de -2%. Entre as estratégias de momentum, a baseada em 120 minutos apresenta um desempenho melhor com um retorno positivo de cerca de 1,5% (ignorando o spread bid / ask). Em princípio, essa estratégia mostra "alfa real": gera um retorno positivo mesmo quando o próprio instrumento mostra um negativo.
Negociação Automatizada.
Depois de ter decidido qual estratégia de negociação implementar, você está pronto para automatizar a operação de negociação. Para acelerar as coisas, estou implementando a negociação automatizada baseada em doze barras de cinco segundos para a estratégia de momentum de série temporal, em vez de barras de um minuto usadas para backtesting. Uma única classe bastante concisa faz o truque:
O código abaixo permite que a classe MomentumTrader faça seu trabalho. A negociação automatizada ocorre no momento calculado em 12 intervalos de duração de cinco segundos. A classe interrompe automaticamente a negociação após 250 ticks de dados recebidos. Isso é arbitrário, mas permite uma rápida demonstração da classe MomentumTrader.
A saída acima mostra as negociações individuais executadas pela classe MomentumTrader durante uma execução de demonstração. A captura de tela abaixo mostra o aplicativo de área de trabalho fxTradePractice da Oanda, onde uma negociação da execução da classe MomentumTrader em EUR_USD está ativa.
Todas as saídas de exemplo mostradas neste artigo são baseadas em uma conta demo (onde somente papel-moeda é usado em vez de dinheiro real) para simular negociações algorítmicas. Para mudar para uma operação de negociação real com dinheiro real, você simplesmente precisa criar uma conta real com a Oanda, fornecer fundos reais e ajustar o ambiente e os parâmetros da conta usados no código. O código em si não precisa ser alterado.
Conclusões
Este artigo mostra que você pode iniciar uma operação de negociação algorítmica básica com menos de 100 linhas de código Python. Em princípio, todas as etapas desse projeto são ilustradas, como a recuperação de dados para fins de backtesting, o backtesting de uma estratégia de momentum ea automatização da negociação com base em uma especificação de estratégia de momentum. O código apresentado fornece um ponto de partida para explorar muitas direções diferentes: usando estratégias de negociação algorítmicas alternativas, negociando instrumentos alternativos, negociando múltiplos instrumentos de uma vez, etc.
A popularidade do comércio algorítmico é ilustrada pela ascensão de diferentes tipos de plataformas. Por exemplo, a Quantopian - uma plataforma de backtesting baseada na Web e baseada em Python para estratégias de negociação algorítmica - informou no final de 2016 que atraiu uma base de usuários de mais de 100.000 pessoas. Plataformas de negociação on-line como a Oanda ou aquelas para criptomoedas como a Gemini permitem que você comece em mercados reais em poucos minutos e atenda a milhares de traders ativos em todo o mundo.
Se você quiser saber mais sobre como analisar dados financeiros com o Python, confira o Python for Finance de Yves Hilpisch.
Estratégia de negociação Python na plataforma Quantiacs.
O comércio algorítmico tem sido um grande atrativo nos últimos anos e o número de estudantes, graduados em engenharia e profissionais de finanças que procuram explorar esse lucrativo domínio vem crescendo exponencialmente a cada ano que passa.
Você está entre os que querem aprender habilidades quânticas e também ganhar dinheiro com suas ideias de negociação? Vamos explorar a plataforma Quantiacs, que permite criar, executar e implementar sua estratégia de negociação em Python. Quantiacs oferece ótimas oportunidades de ganho para quantos anos de sucesso.
Quantiacs Toolbox.
A caixa de ferramentas Quantiacs é gratuita e de código aberto. A Quantiacs fornece até 25 anos de dados gratuitos para 49 futuros e ações S & P 500. O kit de ferramentas permite que o usuário crie uma estratégia de negociação e backtest com dados desde 1990. Além dos dados de futuros, a Quantiacs adicionou recentemente dados macroeconômicos que podem ser usados em conjunto com os dados de série de preços para melhorar a negociação. algoritmos. Quantiacs suporta Python e Matlab. Neste post, vamos explorar a caixa de ferramentas Python e ilustrar uma estratégia de brinquedo usando-a.
Quantiacs Python Toolbox.
A Quantiacs criou um framework Python simples, mas poderoso, que pode ser usado para criar diferentes tipos de estratégias algorítmicas. Ele fornece para definir as configurações do sistema de negociação, como carregar dados de mercado, custos de negociação, campos personalizados, capital etc. Outros recursos da caixa de ferramentas Python incluem avaliação do sistema de negociação, otimização, visualização de resultados, etc. Vamos explorar alguns recursos do framework Python aqui .
Negociações quantitativas nos mercados de ações e futuros. Aqui está como são os campos de dados para um estoque:
Podemos carregar os dados de estoque no Python usando a função quantiacsToolbox. loadData.
Como pode ser visto, os dados estão na forma de um dicionário Python. Vamos verificar o tipo de dados dos pares de valores-chave.
Para criar uma estratégia de negociação em Python, teremos que manipular o array numpy e é necessário que você tenha uma boa compreensão dos arrays numpy do Python e das inúmeras funções que ele suporta. Aqui está uma lista de algumas funções úteis.
Estratégia High-Low Python da vela.
Agora, vamos pegar uma estratégia muito simples e tentar codificá-la usando a caixa de ferramentas Quantiacs. O processo passo-a-passo foi ilustrado abaixo.
Etapa 1: defina as configurações.
Testamos nossa estratégia de amostra nos estoques da Apple Inc. (AAPL) e Amazon Inc. (AMZN). O período de backtest é definido nas configurações [& # 8216; beginInSample & # 8217;] e nas variáveis de configuração [& # 8216; endInSample & # 8217;]. Também definimos os dias de lookback, capital e o slippage.
Etapa 2: Estratégia de negociação do Python.
Nós mantivemos nossa estratégia simples. Na primeira etapa, definimos o número de velas que representam o número dos preços anteriores que serão considerados para gerar um sinal de compra / venda. Em seguida, calculamos a diferença de preço das últimas "n" velas. Se todas as diferenças de preço são positivas, nós esperamos um comportamento de reversão à média. Se todas as diferenças de preço forem negativas, nós nos alongamos.
A posição longa é indicada pelo valor 1, enquanto a posição curta assume o valor de -1.
Etapa 3: execute a estratégia.
Para executar nossa estratégia, usamos o comando quantiacsToolbox. runts e especificamos o respectivo arquivo Python.
Etapa 4: visualize os resultados.
Após a execução, a estrutura do Python exibe um gráfico muito informativo que inclui os mercados, uma opção para selecionar o tipo de exposição, várias métricas de desempenho, etc.
Como pode ser visto, o framework Quantiacs Python é fácil de usar e pode ser usado para desenvolver estratégias de negociação variadas.
Se você quiser aprender vários aspectos do comércio algorítmico, confira o Programa Executivo em Algorithmic Trading (EPAT ™). O curso abrange módulos de treinamento como o Statistics & amp; Econometria, Computação Financeira & amp; Tecnologia e Algoritmica & amp; Negociação Quantitativa. EPAT ™ prepara você com os conjuntos de habilidades necessárias para ser um profissional bem sucedido. Inscreva-se agora!
Você também pode conferir nosso curso interativo, "Python for Trading", você terá experiência prática em codificação Python. Você poderá codificar sua própria estratégia e fazer backtest, além de uma certificação conjunta da QuantInsti e da MCX.
Disclaimer: Todos os investimentos e negociação no mercado de ações envolvem risco. Quaisquer decisões de negociar nos mercados financeiros, incluindo negociação de ações ou opções ou outros instrumentos financeiros, são uma decisão pessoal que só deve ser tomada após uma pesquisa completa, incluindo risco pessoal e avaliação financeira e o envolvimento de assistência profissional na medida em que você Acredito necessário. As estratégias de negociação ou informações relacionadas mencionadas neste artigo são apenas para fins informativos.
Estratégias de negociação em python
Se você é um profissional ou um investidor e gostaria de adquirir um conjunto de habilidades de negociação quantitativa, você está no lugar certo.
O curso de Negociação com o Python fornecerá as melhores ferramentas e práticas para pesquisa de negociação quantitativa, incluindo funções e scripts escritos por especialistas em negociações quantitativas. O curso dá o máximo impacto ao seu tempo e dinheiro investidos. Centra-se na aplicação prática da programação à negociação, em vez da informática teórica. O curso se pagará rapidamente economizando seu tempo no processamento manual de dados. Você passará mais tempo pesquisando sua estratégia e implementando negociações lucrativas.
Visão geral do curso.
Parte 1: Noções básicas Você aprenderá por que o Python é uma ferramenta ideal para negociações quantitativas. Começaremos configurando um ambiente de desenvolvimento e, em seguida, apresentaremos as bibliotecas científicas.
Parte 2: Manipulando os dados Aprenda como obter dados de várias fontes gratuitas como Yahoo Finance, CBOE e outros sites. Leia e escreva vários formatos de dados, incluindo arquivos CSV e Excel.
Parte 3: Pesquisando estratégias Aprenda a calcular P & L e acompanhar as métricas de desempenho como Sharpe e Drawdown. Construa uma estratégia de negociação e otimize seu desempenho. Vários exemplos de estratégias são discutidos nesta parte.
Parte 4: Indo ao vivo! Esta parte é centralizada em torno da API Interactive Brokers. Você aprenderá como obter dados de estoque em tempo real e fazer pedidos ao vivo.
Muito código de exemplo.
O material do curso consiste em 'cadernos' que contêm texto juntamente com código interativo como este. Você poderá aprender interagindo com o código e modificando-o ao seu gosto. Será um ótimo ponto de partida para escrever suas próprias estratégias.
Embora alguns tópicos sejam explicados detalhadamente para ajudá-lo a entender os conceitos subjacentes, na maioria dos casos você não precisará escrever seu próprio código de baixo nível, devido ao suporte de bibliotecas de código aberto existentes:
A biblioteca TradingWithPython combina grande parte da funcionalidade discutida neste curso como uma função pronta para uso e será usada durante todo o curso. Os pandas fornecerão a você todo o poder de levantamento pesado necessário para a compactação de dados.
Todo o código é fornecido sob a licença BSD, permitindo seu uso em aplicações comerciais.
Classificação do curso.
Um piloto do curso foi realizado na primavera de 2013, isso é o que os alunos puderam dizer:
Matej curso bem planejado e bom treinador. Definitivamente vale seu preço e meu tempo Lave Jev obviamente sabia suas coisas. A profundidade da cobertura foi perfeita. Se Jev executar algo assim novamente, eu serei o primeiro a me inscrever. John Phillips Seu curso realmente me fez começar a considerar o python para análise de sistemas de estoque.
Olá, bem-vindo à parte 13 da série de tutoriais do Python for Finance. Neste tutorial, vamos começar a falar sobre back-testing de estratégia. O campo de testes de volta e os requisitos para fazer o certo são muito grandes. Basicamente, o que é necessário para nós é criar um sistema que receba dados históricos de preços e simule transações nesse ambiente, e depois nos forneça os resultados. Isso pode parecer simples, mas, para analisar a estratégia, precisamos rastrear um monte de métricas como o que vendemos, quando, com que frequência trocamos, o que são nossos Beta e Alpha, além de outras métricas como rebaixamento, Sharpe Proporção, Volatilidade, alavancagem e muito mais. Junto com isso, geralmente queremos ser capazes de visualizar tudo isso. Então, podemos escrever tudo isso por nós mesmos ou podemos usar uma plataforma para nos ajudar com isso.
. É por isso que vamos apresentar o Quantopian, que é uma plataforma que nos permite escrever e fazer back-teste de estratégias de negociação baseadas em Python com muita facilidade.
O que o Quantopian faz é adicionar uma camada de GUI no topo da biblioteca de teste de retorno do Zipline para Python, junto com um monte de fontes de dados, muitas das quais são completamente livres para trabalhar. Você também pode obter alocações de capital da Quantopian licenciando sua estratégia para eles se atender a determinados critérios. Geralmente, um beta entre -0,3 e +0,3 é um bom ponto de partida, mas você também precisa ter outras métricas saudáveis para competir. Mais sobre isso mais tarde, vamos aprender sobre os fundamentos do primeiro Quantopian. Como o Quantopian é desenvolvido principalmente por bibliotecas de código aberto, como Zipline, Alphalens e Pyfolio, você também pode executar uma plataforma semelhante à Quantopian localmente, se quiser. Eu acho que a maioria das pessoas que estão interessadas em correr localmente estão interessadas nisso para manter seus algoritmos privados. O Quantopian não vê seus algoritmos, a menos que você lhes dê permissão, e a comunidade só vê seus algoritmos se você os compartilhar. Eu recomendo fortemente que você veja seu relacionamento com a Quantopian não como um adversário, mas sim como uma parceria. Se você inventar algo de alta qualidade, a Quantopian está muito interessada em trabalhar e tem o financiamento para investir em você. Nessa relação, a Quantopian está trazendo a plataforma, o financiamento e outros especialistas no campo para ajudá-lo, é um bom negócio na minha opinião.
Para começar, dirija-se a Quantopian, crie uma conta se você não tiver uma, e entre. Sinta-se à vontade para dar uma olhada. Os fóruns comunitários da Quantopian são um ótimo lugar para absorver algum conhecimento. A Quantopian também realiza uma competição frequente pelos preços à vista. Nós vamos começar com algoritmos. Uma vez lá, escolha o botão azul "novo algoritmo". Por enquanto, vamos passar a maior parte do nosso tempo em dois lugares, que podem ser encontrados no botão "Meu Código". Para começar, vamos para algoritmos e criar um novo algoritmo usando o botão azul "Novo Algoritmo".
Quando você cria o algoritmo, você deve ser levado para a página de algoritmos de edição ativa com o algoritmo clonado, que se parece com isso (menos as caixas coloridas), e algumas alterações possivelmente para a interface do usuário.
Python Editor - É onde você codifica sua lógica Python para o algoirthm. Resultados de algoritmos construídos - Quando você cria o algoritmo, os resultados gráficos aparecerão aqui. Saída de log / erro - Qualquer informação de saída / registro do console virá aqui. É comum que o seu programa envie vários pedaços de texto para depuração ou apenas para mais informações. Algoritmo de construção - Use isso para testar rapidamente o que você escreveu. Os resultados não serão salvos, mas você pode ver o resultado na seção de resultados do algoritmo construído. Backtest completo - Isso executará um teste completo com base em seu algoritmo atual. Os testes de back-back vêm com um pouco mais de análise, os resultados são salvos e o algoritmo que gerou esses resultados também é salvo, para que você possa voltar aos testes anteriores e visualizar o código exato que gerou um resultado específico.
O código de amostra inicial é algo como:
O que é ótimo, mas talvez um pouco demais para começar. O Quantopian também fornece alguns exemplos de algoritmos se sua conta for nova. Sinta-se livre para verificar isso, mas você pode achar que eles são confusos. As únicas duas funções que você precisa em todos os algoritmos são: initialize e handle_data. A função de inicialização é executada uma vez, no início do seu script. Você vai usar isso para configurar globals como regras, funções para usar mais tarde e vários parâmetros. Em seguida, a função handle_data que é executada a cada minuto em relação aos dados de mercado.
Vamos escrever nossa própria estratégia simples para nos familiarizarmos com o Quantopian. Vamos implementar uma estratégia de crossover de média móvel simples e ver como isso acontece.
Se você não estiver familiarizado com as médias móveis, o que elas fazem é obter um certo número de "janelas" de dados. No caso de correr contra os preços diários, uma janela seria um dia. Se você pegasse uma média móvel de 20, isso significaria uma média móvel de 20 dias. A partir daqui, a ideia é dizer que você tem uma média móvel de 20 e uma média móvel de 50. Plotar isso em um gráfico pode ser algo como:
Aqui, a linha azul é o preço das ações, a linha vermelha é a média móvel de 20 e a linha amarela é a média móvel de 50. A ideia é que, quando a média móvel de 20, que reage mais rápido, se mover acima da média móvel de 50, isso significa que o preço pode estar subindo, e podemos querer investir. Inversamente, se a média móvel de 20 cair abaixo da média móvel de 50, isso sinaliza talvez que o preço está tendendo para baixo, e que poderíamos querer vender ou investir ou mesmo vender a empresa em curto, que é onde você aposta contra isso.
Para nossos propósitos aqui, vamos aplicar uma estratégia de crossover de média móvel à Apple (AAPL), entre as datas de 7 de outubro de 2015 e 7 de outubro de 2016. Para esse período, as ações da AAPL caíram e aumentaram, com muito pouca mudança líquida global . Nossa estratégia de crossover deve ficar longe ou curta (apostar contra) quando o preço cair, e depois saltar quando o preço estiver subindo. Encurtar uma empresa implica emprestar ações de outra pessoa, vendê-las e, em seguida, recomprar as ações em uma data posterior. Sua esperança é que o preço das ações caia, e você volte a comprá-las de volta muito mais barato, e devolva as ações ao dono original, embolsando a diferença. Para começar, vamos construir o método initialize:
Por enquanto, vamos definir nossas ações da Apple. Se você realmente começar a digitar sid (, o Quantopian tem uma boa funcionalidade de preenchimento automático onde você pode começar a digitar o nome da empresa ou o símbolo para encontrar seu sid. A razão para usar sid é porque os tickers da empresa podem mudar em períodos de tempo Esta é uma maneira de garantir que você está recebendo o ticker que você está realmente pretendendo obter. Você também pode usar symbol () para usar o ticker e tornar seu código um pouco mais fácil de ler, mas isso não é recomendado , já que o ticker pode mudar.
Toda vez que você criar um algoritmo com Zipline ou Quantopian, você precisará ter os métodos initialize e handle_data.
O método initialize é executado uma vez no início do algoritmo (ou uma vez por dia, se você estiver executando o algoritmo ao vivo em tempo real). Handle_data é executado uma vez por minuto.
Dentro do nosso método initialize, passamos esse parâmetro de contexto. Contexto é um Dicionário Python, que é o que vamos usar para rastrear o que poderíamos usar para variáveis globais. Simplificando, a variável de contexto é usada para rastrear nossa atual situação de investimento, com coisas como nosso portfólio e dinheiro.
Em seguida, ainda precisamos da nossa função handle_data. Essa função usa o contexto e os dados como parâmetros.
O parâmetro de contexto já foi explicado e a variável de dados é usada para rastrear o ambiente fora de nosso portfólio real. Isso rastreia coisas como preços de ações e outras informações sobre empresas em que podemos estar investindo, ou não, mas são empresas que estamos rastreando.
Para começar a função handle_data:
Podemos usar o método. history para obter preços históricos para a Apple, nos últimos 50 dias, em intervalos de 1 dia. Agora podemos fazer:
O valor sma_50 é exatamente o que a média / média é para os dados do histórico que acabamos de extrair. O sma_20 é os últimos 20 dias de dados. Observe que isso está contido no método handle_data, que é executado para cada período, então é tudo o que precisamos fazer para rastrear os valores diários das 50 e 20 médias móveis simples.
No próximo tutorial, vamos falar sobre como fazer pedidos.
US Search Desktop.
Agradecemos seus comentários sobre como melhorar a Pesquisa do Yahoo. Este fórum é para você fazer sugestões de produtos e fornecer feedback atencioso. Estamos sempre tentando melhorar nossos produtos e podemos usar o feedback mais popular para fazer uma mudança positiva!
Se você precisar de assistência de qualquer tipo, visite nosso fórum de suporte à comunidade ou encontre ajuda individualizada em nosso site de ajuda. Este fórum não é monitorado por nenhum problema relacionado a suporte.
O fórum de comentários do produto do Yahoo agora exige um ID e uma senha válidos do Yahoo para participar.
Agora você precisa fazer login usando sua conta de e-mail do Yahoo para nos fornecer feedback e enviar votos e comentários para as ideias existentes. Se você não tiver um ID do Yahoo ou a senha do seu ID do Yahoo, inscreva-se para obter uma nova conta.
Se você tiver um ID e uma senha válidos do Yahoo, siga estas etapas se quiser remover suas postagens, comentários, votos e / ou perfil do fórum de comentários do produto do Yahoo.
Vote em uma ideia existente () ou publique uma nova ideia…
Idéias quentes Idéias superiores Novas ideias Categoria Status Meu feedback.
Xnxx vedios.
Trazer de volta o layout antigo com pesquisa de imagens.
sim: a única possibilidade (eu acho) enviar todas as informações para (alienvault.
Desinformação na ordem DVD.
Eu pedi DVD / Blueray "AL. A confidencial" tudo que eu consegui foi Blue ray & amp; um contato # para obter o DVD que não funcionou. Eu encomendo minha semana com Marilyn ____DVD / blue ray & amp; Eu peguei os dois - tolamente, assumi que o mesmo se aplicaria a L. A.___ETC não. Eu não tenho uma máquina de raio azul ----- Eu não quero uma máquina de raio azul Eu não quero filmes blueray. Como obtenho minha cópia de DVD de L. A. Confidential?
yahoo, pare de bloquear email.
Passados vários meses agora, o Yahoo tem bloqueado um servidor que pára nosso e-mail.
O Yahoo foi contatado pelo dono do servidor e o Yahoo alegou que ele não bloquearia o servidor, mas ainda está sendo bloqueado. CEASE & amp; DESISTIR.
Não consigo usar os idiomas ingleses no e-mail do Yahoo.
Por favor, me dê a sugestão sobre isso.
Motor de busca no Yahoo Finance.
Um conteúdo que está no Yahoo Finance não aparece nos resultados de pesquisa do Yahoo ao pesquisar por título / título da matéria.
Existe uma razão para isso, ou uma maneira de reindexar?
Procure por "turkey ******" imagens sem ser avisado de conteúdo adulto ou que o mostre.
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usar a palavra "******" em QUALQUER contexto significa que provavelmente vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como 'câncer' ou 'peru' ou 'galinha' em uma frase que inclua a palavra '******' e não assuma automaticamente que a digitação "***** * "significa que estou procurando por ***********.
Descobrir uma maneira de fazer com que as pessoas que ESTÃO procurando *********** busquem ativamente por si mesmas, sem assumir que o resto de nós deve querer ************************************************ uma palavra comum - ****** - que qualquer um pode ver qualquer dia em qualquer seção de carne em qualquer supermercado em todo o país. :(
O Yahoo está tão empenhado em atender os gostos lascivos das pessoas que nem posso procurar imagens de uma marca de "peitos de peru" sem ser avisado sobre conteúdo adulto? Apenas usar a palavra "******" em QUALQUER contexto significa que provavelmente vou pegar seios humanos em toda a página e ter que ser avisado - e passar por etapas para evitá-lo?
Aqui está minha sugestão Yahoo:
Invente um programa de computador que reconheça palavras como 'câncer' ou 'peru' ou 'galinha' em uma frase que inclua a palavra '******' e não assuma automaticamente que a digitação "***** * "significa que estou procurando por mais ...
Por que, quando eu faço login no YahooGroups, todos os grupos aparecem em francês ?!
Quando entro no YahooGroups e ligo para um grupo, de repente tudo começa a aparecer em francês? O que diabos está acontecendo lá ?! Por alguma razão, o sistema está automaticamente me transferindo para o fr. groups. yahoo. Alguma ideia?
consertar o que está quebrado.
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que como ele não faz e agora eu obter a nova política aparecer em cada turno - as empresas costumam pagar muito caro pela demografia que os usuários fornecem para você, sem custo, pois não sabem o que você está fazendo - está lá, mas não está bem escrito - e ninguém pode responder a menos que concordem com a política. Já é ruim o suficiente você empilhar o baralho, mas depois não fornece nenhuma opção de lidar com ele - o velho era bom o suficiente - todas essas mudanças para o pod de maré comendo mofos não corta - vou relutantemente estar ativamente olhando - estou cansado do mudanças em cada turno e mesmo aqueles que não funcionam direito, eu posso apreciar o seu negócio, mas o Ameri O homem de negócios pode vender-nos ao licitante mais alto por muito tempo - desejo-lhe boa sorte com sua nova safra de guppies - tente fazer algo realmente construtivo para aqueles a quem você serve - a cauda está abanando o cachorro novamente - isso é como um replay de Washington d c
Eu não deveria ter que concordar com coisas que eu não concordo com a fim de dizer o que eu acho - eu não tive nenhum problema resolvido desde que comecei a usar o Yahoo - fui forçado a jogar meu antigo mensageiro, trocar senhas, obter novas messenger, disse para usar o meu número de telefone para alertar as pessoas que era o meu código de segurança, receber mensagens diárias sobre o bloqueio de yahoo tentativas de uso (por mim) para quem sabe por que isso acontece e agora eu recebo a nova política em cada turno - as empresas costumam pagar muito pela demografia que os usuários fornecem para você ... mais.
Bibliotecas de backtesting de Python para estratégias de negociação Quant.
Escrito por Khang Nguyen Vo, khangvo88 @ gmail, para o blog RobustTechHouse (Mobile App Development Singapore). Khang é formado pelo programa de Mestrado em Finanças Quantitativas e Computacionais, John Von Neumann Institute 2014. Ele é apaixonado por pesquisa em aprendizado de máquina, modelagem preditiva e backtesting de estratégias de negociação.
Bibliotecas de Backtesting de Python frequentemente mencionadas.
É essencial fazer backtest de estratégias de negociação de quant antes de negociá-las com dinheiro real. Aqui, revisamos as bibliotecas de backtesting Python usadas com frequência. Nós as examinamos em termos de flexibilidade (pode ser usada para backtesting, negociação de papéis e negociação ao vivo), facilidade de uso (boa documentação, boa estrutura) e escalabilidade (velocidade, simplicidade e compatibilidade com outras bibliotecas).
Zipline: Esta é uma estrutura de backtesting baseada em eventos usada pela Quantopian. O Zipline tem uma ótima comunidade, boa documentação, ótimo suporte para a integração Interactive Broker (IB) e Pandas. A sintaxe é clara e fácil de aprender. Tem muitos exemplos. Se o seu principal objetivo para a negociação é o patrimônio dos EUA, então este framework pode ser o melhor candidato. A Quantopian permite que alguém faça backtest, compartilhe e discuta estratégias de negociação em sua comunidade. No entanto, em nosso experimento, o Zipline é extremamente lento. Essa é a maior desvantagem dessa biblioteca. O Quantopian tem alguma solução alternativa, como executar a biblioteca do Zipline em paralelo na nuvem. Você pode dar uma olhada neste post se isso lhe interessa. Zipline também parece funcionar mal com arquivos locais e dados não-americanos. É difícil usar essa estrutura para diferentes classes de ativos financeiros. PyAlgoTrade: Esta é outra biblioteca orientada a eventos que é ativa e suporta backtesting, negociação de papéis e negociação ao vivo. Ele é bem documentado e também suporta a integração do TA-Lib (biblioteca de análise técnica). Supera o Zipline em termos de velocidade e flexibilidade. No entanto, uma grande desvantagem do PyAlgoTrade é que ele não suporta os módulos Pandas-objeto e Pandas. pybacktest: estrutura de backtesting vetorizada em Python que é muito simples e leve. Este projeto pareceu reviver novamente em 21 de maio de 2015. TradingWithPython: Jev Kuznetsov estendeu a biblioteca de pybacktest e construiu seu próprio backtester. Esta biblioteca parece atualizada recentemente em fevereiro de 2015. No entanto, a documentação e o curso dessa biblioteca custa US $ 395. Alguns outros projetos: ultra-finance.
As bibliotecas de backtesting do Python estão resumidas na tabela a seguir:
No nosso radar.
No nosso radar.
Negociação algorítmica em menos de 100 linhas de código Python.
Se você estiver familiarizado com a negociação financeira e conhecer o Python, poderá iniciar a negociação algorítmica básica em pouco tempo.
Se você quiser saber mais sobre como analisar dados financeiros com o Python, confira o Python for Finance de Yves Hilpisch.
Negociação Algorítmica.
O comércio algorítmico refere-se à negociação informatizada e automatizada de instrumentos financeiros (com base em algum algoritmo ou regra) com pouca ou nenhuma intervenção humana durante as horas de negociação. Quase todos os tipos de instrumentos financeiros - sejam ações, moedas, commodities, produtos de crédito ou volatilidade - podem ser negociados dessa maneira. Não só isso, em certos segmentos de mercado, os algoritmos são responsáveis pela maior parte do volume de negociação. Os livros The Quants, de Scott Patterson, e More Money Than God, de Sebastian Mallaby, pintam uma imagem vívida dos primórdios do comércio algorítmico e das personalidades por trás de sua ascensão.
As barreiras à entrada para negociação algorítmica nunca foram menores. Não muito tempo atrás, apenas investidores institucionais com orçamentos de TI na casa dos milhões de dólares poderiam participar, mas hoje mesmo indivíduos equipados apenas com um notebook e uma conexão com a Internet podem começar em poucos minutos. Algumas tendências importantes estão por trás desse desenvolvimento:
Software de código aberto: todo software que um trader precisa para iniciar em negociação algorítmica está disponível na forma de código aberto; especificamente, o Python se tornou a linguagem e o ecossistema de escolha. Fontes de dados abertas: Mais e mais conjuntos de dados valiosos estão disponíveis em fontes abertas e gratuitas, fornecendo uma variedade de opções para testar hipóteses e estratégias de negociação. Plataformas de negociação on-line: há um grande número de plataformas de negociação on-line que fornecem acesso fácil e padronizado a dados históricos (via RESTful APIs) e dados em tempo real (via APIs de streaming de soquete) e também oferecem recursos de negociação e portfólio (via APIs programáticas). ).
Este artigo mostra como implementar um projeto de comércio algorítmico completo, desde o backtesting da estratégia até a realização de negociações automatizadas em tempo real. Aqui estão os principais elementos do projeto:
Estratégia: Eu escolhi uma estratégia de momentum para as séries temporais (cf. Moskowitz, Tobias, Yao Hua Ooi e Lasse Heje Pedersen (2012): "Momento Momento Temporal". Journal of Financial Economics, Vol. 104, 228-250.), Que basicamente pressupõe que um instrumento financeiro que tenha funcionado bem / mal continuará a fazê-lo. Plataforma: Eu escolhi Oanda; Ele permite que você negocie uma variedade de contratos alavancados para diferenças (CFDs), que essencialmente permitem apostas direcionais em um conjunto diversificado de instrumentos financeiros (por exemplo, moedas, índices de ações, commodities). Dados: receberemos todos os dados históricos e dados de streaming da Oanda. Software: usaremos o Python em combinação com os poderosos pandas da biblioteca de análise de dados, além de alguns pacotes adicionais do Python.
O seguinte pressupõe que você tenha uma instalação do Python 3.5 disponível com as principais bibliotecas de análise de dados, como NumPy e pandas, incluídas. Se não, você deve, por exemplo, baixar e instalar a distribuição do Anaconda Python.
Conta Oanda.
Na oanda, qualquer pessoa pode registrar-se para uma conta de demonstração gratuita ("negociação de papel") em poucos minutos. Depois de ter feito isso, para acessar a API do Oanda programaticamente, você precisa instalar o pacote relevante do Python:
Para trabalhar com o pacote, você precisa criar um arquivo de configuração com o nome de arquivo oanda. cfg que tenha o seguinte conteúdo:
Substitua as informações acima pelo ID e token que você encontra em sua conta na plataforma Oanda.
A execução deste código prepara você com o objeto principal para trabalhar programaticamente com a plataforma Oanda.
Backtesting
Já criamos tudo o que é necessário para começar com o backtesting da estratégia de momentum. Em particular, somos capazes de recuperar dados históricos da Oanda. O instrumento que usamos é EUR_USD e é baseado na taxa de câmbio EUR / USD.
A primeira etapa do backtesting é recuperar os dados e convertê-los em um objeto DataFrame do pandas. O conjunto de dados é para os dois dias 8 e 9 de dezembro de 2016 e tem uma granularidade de um minuto. A saída no final do bloco de código a seguir fornece uma visão geral detalhada do conjunto de dados. Ele é usado para implementar o backtesting da estratégia de negociação.
Segundo, formalizamos a estratégia de momentum informando ao Python para fazer o retorno médio do log ao longo das últimas barras de 15, 30, 60 e 120 minutos para derivar a posição no instrumento. Por exemplo, o retorno médio do log das últimas barras de 15 minutos fornece o valor médio das últimas 15 observações de retorno. Se esse valor for positivo, nós ficamos / permanecemos longos no instrumento negociado; se for negativo, nós ficamos curtos. Para simplificar o código que se segue, apenas confiamos nos valores de closeAsk que recuperamos através do nosso bloco de código anterior:
Terceiro, para derivar o desempenho absoluto da estratégia de momentum para os diferentes intervalos de momentum (em minutos), você precisa multiplicar os posicionamentos derivados acima (desviado em um dia) pelos retornos de mercado. Veja como fazer isso:
A inspeção do gráfico acima revela que, durante o período do conjunto de dados, o instrumento negociado em si tem um desempenho negativo de cerca de -2%. Entre as estratégias de momentum, a baseada em 120 minutos apresenta um desempenho melhor com um retorno positivo de cerca de 1,5% (ignorando o spread bid / ask). Em princípio, essa estratégia mostra "alfa real": gera um retorno positivo mesmo quando o próprio instrumento mostra um negativo.
Negociação Automatizada.
Depois de ter decidido qual estratégia de negociação implementar, você está pronto para automatizar a operação de negociação. Para acelerar as coisas, estou implementando a negociação automatizada baseada em doze barras de cinco segundos para a estratégia de momentum de série temporal, em vez de barras de um minuto usadas para backtesting. Uma única classe bastante concisa faz o truque:
O código abaixo permite que a classe MomentumTrader faça seu trabalho. A negociação automatizada ocorre no momento calculado em 12 intervalos de duração de cinco segundos. A classe interrompe automaticamente a negociação após 250 ticks de dados recebidos. Isso é arbitrário, mas permite uma rápida demonstração da classe MomentumTrader.
A saída acima mostra as negociações individuais executadas pela classe MomentumTrader durante uma execução de demonstração. A captura de tela abaixo mostra o aplicativo de área de trabalho fxTradePractice da Oanda, onde uma negociação da execução da classe MomentumTrader em EUR_USD está ativa.
Todas as saídas de exemplo mostradas neste artigo são baseadas em uma conta demo (onde somente papel-moeda é usado em vez de dinheiro real) para simular negociações algorítmicas. Para mudar para uma operação de negociação real com dinheiro real, você simplesmente precisa criar uma conta real com a Oanda, fornecer fundos reais e ajustar o ambiente e os parâmetros da conta usados no código. O código em si não precisa ser alterado.
Conclusões
Este artigo mostra que você pode iniciar uma operação de negociação algorítmica básica com menos de 100 linhas de código Python. Em princípio, todas as etapas desse projeto são ilustradas, como a recuperação de dados para fins de backtesting, o backtesting de uma estratégia de momentum ea automatização da negociação com base em uma especificação de estratégia de momentum. O código apresentado fornece um ponto de partida para explorar muitas direções diferentes: usando estratégias de negociação algorítmicas alternativas, negociando instrumentos alternativos, negociando múltiplos instrumentos de uma vez, etc.
A popularidade do comércio algorítmico é ilustrada pela ascensão de diferentes tipos de plataformas. Por exemplo, a Quantopian - uma plataforma de backtesting baseada na Web e baseada em Python para estratégias de negociação algorítmica - informou no final de 2016 que atraiu uma base de usuários de mais de 100.000 pessoas. Plataformas de negociação on-line como a Oanda ou aquelas para criptomoedas como a Gemini permitem que você comece em mercados reais em poucos minutos e atenda a milhares de traders ativos em todo o mundo.
Se você quiser saber mais sobre como analisar dados financeiros com o Python, confira o Python for Finance de Yves Hilpisch.
Estratégia de negociação Python na plataforma Quantiacs.
O comércio algorítmico tem sido um grande atrativo nos últimos anos e o número de estudantes, graduados em engenharia e profissionais de finanças que procuram explorar esse lucrativo domínio vem crescendo exponencialmente a cada ano que passa.
Você está entre os que querem aprender habilidades quânticas e também ganhar dinheiro com suas ideias de negociação? Vamos explorar a plataforma Quantiacs, que permite criar, executar e implementar sua estratégia de negociação em Python. Quantiacs oferece ótimas oportunidades de ganho para quantos anos de sucesso.
Quantiacs Toolbox.
A caixa de ferramentas Quantiacs é gratuita e de código aberto. A Quantiacs fornece até 25 anos de dados gratuitos para 49 futuros e ações S & P 500. O kit de ferramentas permite que o usuário crie uma estratégia de negociação e backtest com dados desde 1990. Além dos dados de futuros, a Quantiacs adicionou recentemente dados macroeconômicos que podem ser usados em conjunto com os dados de série de preços para melhorar a negociação. algoritmos. Quantiacs suporta Python e Matlab. Neste post, vamos explorar a caixa de ferramentas Python e ilustrar uma estratégia de brinquedo usando-a.
Quantiacs Python Toolbox.
A Quantiacs criou um framework Python simples, mas poderoso, que pode ser usado para criar diferentes tipos de estratégias algorítmicas. Ele fornece para definir as configurações do sistema de negociação, como carregar dados de mercado, custos de negociação, campos personalizados, capital etc. Outros recursos da caixa de ferramentas Python incluem avaliação do sistema de negociação, otimização, visualização de resultados, etc. Vamos explorar alguns recursos do framework Python aqui .
Negociações quantitativas nos mercados de ações e futuros. Aqui está como são os campos de dados para um estoque:
Podemos carregar os dados de estoque no Python usando a função quantiacsToolbox. loadData.
Como pode ser visto, os dados estão na forma de um dicionário Python. Vamos verificar o tipo de dados dos pares de valores-chave.
Para criar uma estratégia de negociação em Python, teremos que manipular o array numpy e é necessário que você tenha uma boa compreensão dos arrays numpy do Python e das inúmeras funções que ele suporta. Aqui está uma lista de algumas funções úteis.
Estratégia High-Low Python da vela.
Agora, vamos pegar uma estratégia muito simples e tentar codificá-la usando a caixa de ferramentas Quantiacs. O processo passo-a-passo foi ilustrado abaixo.
Etapa 1: defina as configurações.
Testamos nossa estratégia de amostra nos estoques da Apple Inc. (AAPL) e Amazon Inc. (AMZN). O período de backtest é definido nas configurações [& # 8216; beginInSample & # 8217;] e nas variáveis de configuração [& # 8216; endInSample & # 8217;]. Também definimos os dias de lookback, capital e o slippage.
Etapa 2: Estratégia de negociação do Python.
Nós mantivemos nossa estratégia simples. Na primeira etapa, definimos o número de velas que representam o número dos preços anteriores que serão considerados para gerar um sinal de compra / venda. Em seguida, calculamos a diferença de preço das últimas "n" velas. Se todas as diferenças de preço são positivas, nós esperamos um comportamento de reversão à média. Se todas as diferenças de preço forem negativas, nós nos alongamos.
A posição longa é indicada pelo valor 1, enquanto a posição curta assume o valor de -1.
Etapa 3: execute a estratégia.
Para executar nossa estratégia, usamos o comando quantiacsToolbox. runts e especificamos o respectivo arquivo Python.
Etapa 4: visualize os resultados.
Após a execução, a estrutura do Python exibe um gráfico muito informativo que inclui os mercados, uma opção para selecionar o tipo de exposição, várias métricas de desempenho, etc.
Como pode ser visto, o framework Quantiacs Python é fácil de usar e pode ser usado para desenvolver estratégias de negociação variadas.
Se você quiser aprender vários aspectos do comércio algorítmico, confira o Programa Executivo em Algorithmic Trading (EPAT ™). O curso abrange módulos de treinamento como o Statistics & amp; Econometria, Computação Financeira & amp; Tecnologia e Algoritmica & amp; Negociação Quantitativa. EPAT ™ prepara você com os conjuntos de habilidades necessárias para ser um profissional bem sucedido. Inscreva-se agora!
Você também pode conferir nosso curso interativo, "Python for Trading", você terá experiência prática em codificação Python. Você poderá codificar sua própria estratégia e fazer backtest, além de uma certificação conjunta da QuantInsti e da MCX.
Disclaimer: Todos os investimentos e negociação no mercado de ações envolvem risco. Quaisquer decisões de negociar nos mercados financeiros, incluindo negociação de ações ou opções ou outros instrumentos financeiros, são uma decisão pessoal que só deve ser tomada após uma pesquisa completa, incluindo risco pessoal e avaliação financeira e o envolvimento de assistência profissional na medida em que você Acredito necessário. As estratégias de negociação ou informações relacionadas mencionadas neste artigo são apenas para fins informativos.
Комментариев нет:
Отправить комментарий