Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Os últimos recursos de backtesting do IBridgePy por Dr. Hui Liu - 9 de agosto de 2019
Os últimos recursos de backtesting do IBridgePy por Dr. Hui Liu - 9 de agosto de 2019
O Dr. Hui Liu, o criador do iBridgePy, fornece uma visão geral detalhada dos recursos e funcionalidades de backtesting mais recentes oferecidos pelo iBridgePy. Ele começa discutindo as funções fundamentais do iBridgePy e explicando as etapas fundamentais envolvidas na construção de estratégias de negociação algorítmica.
O Dr. Liu enfoca o sistema de backtesting do iBridgePy e apresenta dois exemplos de códigos para demonstrar seu uso. O primeiro código de amostra utiliza dados históricos de Interactive Brokers, enquanto o segundo código de amostra ilustra como os usuários podem melhorar sua experiência de backtesting fornecendo seus próprios dados históricos. Ele enfatiza a importância de analisar o desempenho do backtesting para identificar áreas para melhorias futuras.
Durante a apresentação, o Dr. Liu apresenta o recurso Hybrid Pie, que permite aos usuários negociar vários valores mobiliários ou commodities oferecidos por corretores consultores e gerenciar várias contas simultaneamente. Ele destaca os benefícios para os consultores de investimentos, como executar várias estratégias de negociação e executar algoritmos de consultoria durante o backtesting.
Para se conectar com corretores e recuperar dados em tempo real, o Dr. Liu demonstra como alternar entre diferentes arquivos no iBridgePy, como "Exemplo de posições de exibição", "Exemplo de preços em tempo real" e "Obter dados históricos". Os usuários podem personalizar códigos de conta, nomes de arquivos e acessar saldos de contas e pedidos pendentes. A função de inicialização no iBridgePy declara variáveis globais, e os usuários podem utilizar caixas de código e buscar assistência da equipe iBridgePy relatando versões de pacotes híbridos. O Dr. Liu também fornece orientação sobre como fechar o IBGateway e abrir o TWS Trade Workstation.
O alto-falante cobre as principais funções do iBridgePy, começando com a função de inicialização que é executada no início do código. A função de manipulação de dados, que toma decisões de negociação, pode ser programada para ser executada a cada minuto ou em um intervalo configurável. Os usuários podem utilizar a função de agendamento para agendamento de eventos em vez de lidar com dados. Os preços em tempo real para títulos específicos podem ser acessados usando a função show_real_time_price, enquanto os dados históricos podem ser recuperados com a função request_historical_data. Para comprar ou vender títulos, a função place_order é utilizada. O Dr. Liu inclui uma demonstração ao vivo da função do visualizador de ações, mostrando sua funcionalidade.
O Dr. Liu discute o recurso de rastreador de ações no iBridgePy, que permite aos usuários pesquisar ações com base no sentimento e no preço da mídia social. Os usuários podem definir seus parâmetros de pesquisa, como tipo de instrumento, código de localização e código de varredura. Um exemplo é dado usando a rede de sentimento social como o código de varredura para uma pesquisa das principais ações dos EUA com preços acima de US$ 100. O palestrante demonstra o rastreador de ações em ação, apresentando uma lista das ações mais ativas e enfatizando como o sentimento da mídia social pode fornecer informações sobre a popularidade das ações. Ele conclui destacando a importância de selecionar contratos e definir diretrizes de gerenciamento de risco ao criar estratégias de negociação algorítmica.
As etapas básicas para criar estratégias de negociação algorítmica usando o iBridgePy são explicadas pelo Dr. Liu. Ele discute a seleção de uma ação, determinando o intervalo de tempo para tomar decisões de negociação, calculando indicadores técnicos por meio de dados históricos, selecionando tipos de ordens e tratando de exceções. Como exemplo, ele apresenta uma estratégia de reversão simples baseada na entrada manual do contrato SPY e na tomada de decisões de negociação usando os preços de fechamento diários. O código de amostra inclui funções agendadas e uma função diária para tomar decisões de negociação.
O Dr. Liu investiga os recursos de backtesting do iBridgePy, enfatizando a capacidade de recuperar dados históricos e utilizar um dataframe do pandas para analisar os preços de fechamento dos títulos. Ele demonstra um código de amostra para uma estratégia de tendência empregando um cruzamento de média móvel e explica os fundamentos do backtesting. O backtesting envolve a implementação de uma estratégia prática baseada em dados históricos para informar as decisões de negociação e testar seu desempenho em relação aos dados históricos. Ele também destaca o uso alternativo da função handle data para controlar o tempo de execução da função, fornecendo uma opção para a função agendada com base nos horários de abertura e fechamento do mercado americano.
Dr. Liu fornece informações sobre o sistema de backtesting iBridgePy e o processo envolvido. Ele explica que no modo de backtesting usando o iBridgePy, a cápsula do tempo ou as velas usadas são muito semelhantes às negociações ao vivo. Cada castiçal contém informações como hora de início, preço de abertura, preço alto, preço baixo, preço de fechamento e volume. No entanto, a cápsula do tempo não inclui o preço de compra ou venda, pois o spread não pode ser modelado com precisão no backtesting.
O Dr. Liu menciona que o modo de backtesting oferece suporte a ordens de mercado, ordens de limite e ordens de parada, mas as ordens à direita não são suportadas atualmente, pois podem não fornecer resultados significativos. Os detalhes da transação durante o backtesting são armazenados na pasta de saída, com o nome do arquivo contendo a hora em que o backtesting foi iniciado.
Seguindo em frente, o Dr. Liu explica o processo básico de configuração de um período de backtesting no iBridgePy. Os usuários podem definir o período de tempo para recuperar dados históricos de ações específicas e especificar a frequência do ponto de tempo como um minuto, uma hora ou um dia. Dados históricos de contratos mais antigos podem ser recuperados usando tickers como SPY ou AAPL. O código deve ser executado especificamente no último horário local, garantindo que os dados dentro do período de tempo desejado estejam disponíveis. Por padrão, o dinheiro começa em $ 10.000. O Dr. Liu passa a demonstrar como exibir o saldo e a posição da conta usando uma demonstração.
Em sua apresentação, o Dr. Liu demonstra como usar os recursos de backtesting do iBridgePy para simular um código de demonstração para reversão de preços próximos. Ele mostra como usar preços em tempo real com base em dados históricos e como executar o alvo para observar seu desempenho. Ele também mostra como o intervalo pode ser alterado para executar o código a cada hora em vez de a cada minuto. No geral, o vídeo fornece uma demonstração útil de como utilizar os recursos de backtesting do iBridgePy para estratégias de investimento.
Dr. Liu passa a discutir a importância de fazer melhorias no processo de backtesting usando iBridgePy. Ele sugere evitar executar o mesmo código repetidamente para buscar exatamente os mesmos dados, pois isso desperdiça recursos e viola as regras de espaçamento do IB. Em vez disso, ele recomenda buscar dados históricos usando um plano definido com o mesmo nome de arquivo, reduzindo a quantidade de código que precisa ser executado. Outra sugestão é usar dados históricos fornecidos pelo usuário ao invés de buscar dados de Interactive Brokers, o que pode tornar o processo de backtesting mais eficiente.
Além disso, o Dr. Liu apresenta o recurso de fornecer dados locais para backtesting no iBridgePy. Os usuários podem fornecer um arquivo CSV com todas as colunas necessárias, como preço de abertura, preço alto, preço de fechamento, volume, etc. O iBridgePy irá ingerir os dados do arquivo local e simular o backtesting de acordo. Se o volume estiver indisponível, os usuários podem inserir '-1' como valor. Esse recurso garante resultados precisos para as estratégias pessoais dos usuários e aumenta a eficiência das simulações.
O Dr. Liu também destaca os recursos adicionais de backtesting no iBridgePy, como geradores de tempo personalizados e a capacidade de usar números aleatórios para testar o código. Ele demonstra como criar uma série temporal usando um pacote Python e uma lista personalizada e como testar o código usando números aleatórios em vez de preços em tempo real. Ele discute ainda a importância da análise de desempenho e apresenta o uso de um arquivo de log para rastrear e analisar o desempenho do backtesting. Esses novos recursos fornecem maneiras mais rápidas e eficientes de testar e analisar o código no iBridgePy.
Além disso, o Dr. Liu discute outros recursos do backtesting do iBridgePy, incluindo o log de saldo, que fornece mais detalhes sobre o valor do portfólio e o caixa, bem como o log de transações. Ele demonstra como visualizar e analisar resultados de backtesting usando métricas como a proporção de Sharpe e o pacote matplotlib para criar gráficos. O Dr. Liu observa que, uma vez que os usuários estejam satisfeitos com seus resultados em uma conta de papel, eles podem mudar para uma conta real para negociação real.
Durante a sessão de perguntas e respostas do webinar, o Dr. Liu responde a várias perguntas dos participantes sobre os recursos mais recentes do iBridgePy. Uma questão diz respeito ao gerenciamento de contas de investimento de outras pessoas com o iBridgePy. O Dr. Liu explica que os indivíduos podem se tornar um consultor de portfólio e configurar uma conta de gerenciamento com a Interactive Brokers para gerenciar as contas de investimento de outras pessoas usando o iBridgePy.
Outra questão levantada é sobre o download de código de amostra para uma estratégia específica. O Dr. Liu sugere que os participantes possam obter o código de exemplo necessário no site iBridgePy ou entrando em contato com o fórum da comunidade iBridgePy. Além disso, ele aconselha os participantes sobre como obter preços históricos de opções e dados gregos para backtesting. O Dr. Liu menciona que os indivíduos podem obter preços históricos de opções da Interactive Brokers e escrever código Python para utilizar dados gregos se tiverem acesso a eles.
Um participante pergunta se o iBridgePy oferece suporte a uma API para recuperar uma lista de observação. O Dr. Liu esclarece que, atualmente, o iBridgePy não fornece uma API específica para obter uma lista de observação. No entanto, ele sugere que os usuários possam criar manualmente uma lista de observação na plataforma da Interactive Brokers.
Em conclusão, o Dr. Liu conclui o webinar incentivando os participantes a postar quaisquer outras perguntas que tenham no fórum da comunidade iBridgePy ou a enviar um e-mail para ele. Ele garante aos participantes que uma gravação da apresentação estará disponível mediante solicitação. O Dr. Liu também lembra aos usuários que visitem o site iBridgePy para baixar o software e acessar a documentação da API. Ele expressa sua gratidão aos participantes por sua presença e atenção durante o webinar.
Negociação programática em mercados indianos com Python | API do Kite Connect | Algo Trading Zerodha
Negociação programática em mercados indianos com Python | API do Kite Connect | Algo Trading Zerodha
O palestrante apresenta o Kite Connect, uma plataforma que permite aos usuários acessar suas contas de negociação programaticamente usando Python. Eles explicam que a motivação por trás do Kite Connect era enfrentar o desafio de aumentar a participação no mercado da Índia. Eles introduziram o conceito de corretagem como um serviço, permitindo que as startups usassem as APIs do Kite Connect para criar experiências de negociação personalizadas para seus clientes. Isso, por sua vez, visa atrair os próximos 10 a 20 milhões de indianos para investir nos mercados. O palestrante também destaca a Zerodha como uma corretora líder na Índia, com mais de 175.000 clientes e uma contribuição significativa para o giro do mercado de ações indiano.
O palestrante fornece informações sobre as origens do Kite Connect, que foi desenvolvido para fornecer uma plataforma de negociação on-line simples e acessível para milhares de clientes na Índia. Reconhecendo o grande grupo de engenheiros de software na Índia que muitas vezes carecem de oportunidades para utilizar suas habilidades, a Kite Connect disponibilizou suas APIs para engenheiros de software para testar estratégias e gerenciar posições. Embora a plataforma cobre uma taxa pelo uso da API, ela também oferece um código de desconto para novos desenvolvedores que se inscreverem. O palestrante então apresenta um colega que passa a demonstrar como é fácil construir uma plataforma de negociação personalizada usando o Kite Connect. A demonstração se concentra em colocar ordens, recuperar posições mantidas e, eventualmente, desenvolver uma estratégia de negociação.
O palestrante oferece um guia passo a passo sobre como obter uma chave API para a API Kite Connect, que é crucial para negociação programática no mercado indiano usando Python. Eles também explicam o conceito de uma URL postback, que é usada para notificar os usuários sobre o status de seus pedidos e confirmações comerciais. Além disso, o palestrante enfatiza a importância da instalação da biblioteca Kite Connect Python, que simplifica o uso da API com apenas algumas linhas de código. Eles discutem as funcionalidades essenciais de um aplicativo de negociação, a importância das respostas de solicitação e tratamento de exceções durante o processo de desenvolvimento do aplicativo e a importância da autenticação segura para qualquer aplicativo de negociação.
Em seguida, o palestrante explica como o Python pode ser usado para negociação programática nos mercados indianos usando a API Kite Connect da Zerodha. O processo começa com o uso da chave API para redirecionar para a plataforma Kite e fazer login na conta do usuário. Uma vez logado, um token de solicitação é enviado de volta, que é usado para autenticar o usuário e obter um token de acesso. O palestrante fornece uma demonstração prática do uso da API do Kite Connect, abrangendo etapas como importar a biblioteca, armazenar a chave da API e obter um token de solicitação. Finalmente, o token de solicitação é hash com o segredo da API para obter um token de acesso.
O vídeo continua discutindo como usar o Python e a API Kite Connect para negociação programática nos mercados indianos. Ele percorre o processo de configuração de acesso e tokens públicos, que são usados para estabelecer uma conexão com a API Kite Connect para transmitir informações de mercado. O vídeo explica como fazer um pedido, incluindo a especificação do símbolo de negociação, quantidade, tipo de transação, tipo de pedido e produto. Ele também aborda como recuperar detalhes de pedidos, participações e posições. O palestrante destaca que há muitas chamadas de API adicionais além do que é abordado no vídeo, mas todas estão bem documentadas no site da Kite Connect.
O palestrante aborda a importância dos instrumentos ao usar a API Kite Connect para negociação programática nos mercados indianos. Os instrumentos são usados para lidar com vários símbolos e contratos de ações e exigem um ID de instrumento exclusivo para assinar ou cancelar a assinatura de dados de streaming. O palestrante explica que o ID do instrumento pode ser obtido de um arquivo CSV abrangente e também é usado para acessar dados históricos. O streaming de WebSocket é discutido, incluindo diferentes modos de recepção de dados, como modo LTP, modo de código e modo de texto completo. O palestrante fornece um exemplo de como os dados de streaming funcionam por meio do WebSocket e como os retornos de chamada podem ser usados para receber dados. Além disso, o palestrante explica o uso do postback e a exigência de uma URL pública para sua implementação.
O palestrante aborda a implementação de uma estratégia de negociação usando dados históricos e enfatiza a facilidade de fazer um pedido usando a API Kite Connect. Eles discutem como uma startup pode ter um endpoint para receber postbacks do servidor Kite, habilitando notificações para pedidos bem-sucedidos ou com falha, entre outras coisas. O processo de obtenção de dados históricos usando a API é demonstrado, com ênfase na assinatura do recurso de dados históricos do Kite antes de solicitar os dados. Por fim, uma estratégia básica de média móvel é apresentada para ilustrar a simplicidade de fazer pedidos com a API do Kite.
O palestrante compartilha sua própria estratégia para negociação programática nos mercados indianos usando Python e a API Kite Connect. A estratégia envolve calcular a média móvel e colocar uma negociação sempre que houver um cruzamento. Eles mostram a função de colocar ordens, destacando que apenas uma linha de código é necessária para a negociação real. Embora reconheçam que sua estratégia pode não ser a melhor, eles enfatizam sua facilidade de implementação e modificação para diferentes símbolos de negociação e tipos de transação. O palestrante menciona que a API do Kite Connect é de código aberto, permitindo a personalização e o uso na criação de plataformas de negociação. Eles também mencionam a extensa documentação e o fórum ativo disponível no site da Kite Connect para dar suporte aos usuários com quaisquer dúvidas ou problemas.
O CEO do Quant Institute (QuantInsti) apresenta sua empresa, que está ativamente envolvida em negociações algorítmicas e quantitativas desde 2010. Eles fornecem programas de treinamento e eventos para milhares de estudantes em todo o mundo. O CEO expressa alinhamento com o uso programático de Python nas estratégias de negociação discutidas no webinar e pede desculpas por não ser capaz de responder a todas as perguntas, mas garante ao público que sua equipe está pesquisando e respondendo a todas as perguntas com diligência.
O palestrante discute o impacto do programa EPAT da QuantInsti, um curso on-line abrangente de seis meses focado em negociação quantitativa e algorítmica. O programa abrange uma ampla gama de tópicos, incluindo estatística, econometria, computação financeira, Python, MATLAB, ferramentas de backtesting e vários paradigmas de estratégia de negociação. Eles destacam que o curso é ministrado por um grupo diversificado de profissionais experientes de todo o mundo. Os graduados do programa estão bem preparados para entrar no mercado de trabalho, e o QuantInsti oferece serviços de carreira e orientação para os interessados em montar suas próprias mesas de negociação. O alcance global do programa é enfatizado, com ex-alunos em mais de 30 países em seis continentes.
O palestrante convida os espectadores a participar de uma próxima sessão informativa sobre negociação algorítmica agendada para 3 de novembro de 2016, às 18h30 IST. Eles incentivam o público a seguir a empresa em plataformas de mídia social como Facebook, Twitter, LinkedIn e YouTube, onde podem encontrar recursos educacionais e participar de discussões. Eles se oferecem para enviar links aos participantes interessados e os convidam a enviar qualquer dúvida através do formulário fornecido no borninstorms. Por fim, o palestrante conclui afirmando que agora passará a abordar as questões da plateia.
|
Negociação com corretores interativos usando Python | Por Dr. Hui Liu
Negociação com corretores interativos usando Python | Por Dr. Hui Liu
Boa noite a todos! Bem-vindo ao webinar sobre implementação de estratégias de negociação algorítmica no mercado online, apresentado por Kuantan Ste. Meu nome é Slow Me e sou gerente de programa sênior aqui. Estamos muito satisfeitos por ter participantes de todo o mundo se juntando a nós hoje, incluindo aqueles do Havaí que conseguiram se juntar a nós bem cedo pela manhã. Seu entusiasmo é verdadeiramente inspirador!
Nosso estimado orador para o webinar de hoje é o Dr. Hoyle Yu, um renomado autor e especialista em negociação. Dr. Yu tem um histórico impressionante com vasta experiência em ações dos EUA e no mercado cambial. Ele também desenvolveu uma popular plataforma de negociação Python que permite que os comerciantes implementem facilmente suas estratégias. Com um PhD da Universidade da Virgínia e ex-alunos da Universidade de Xangai, o Dr. Yu traz uma riqueza de conhecimento para este webinar. Temos a honra de tê-lo aqui conosco.
Antes de começarmos, deixe-me fornecer uma breve visão geral do que abordaremos no webinar de hoje. O Dr. Yu discutirá primeiro as vantagens de usar o Interactive Brokers como uma plataforma de negociação. Ele então se aprofundará nos benefícios do uso do Python para negociação e apresentará sua própria ferramenta, IBPY, que simplifica a negociação com corretores interativos. O webinar se concentrará nos principais aspectos da negociação em tempo real, incluindo acesso a dados de preços em tempo real, recuperação de dados históricos e colocação de pedidos. Dr. Yu também apresentará a estratégia de negociação Moving Average Crossover.
Estamos entusiasmados por ter um palestrante tão estimado e um público diversificado para este webinar. Sem mais delongas, convido o Dr. Hoyle Yu a falar e compartilhar sua experiência em negociação com corretores interativos usando Python e IBPY.
Hoje, discutirei negociação com corretores interativos usando Python, especificamente utilizando IBPY, uma ferramenta que desenvolvi. Antes de mergulharmos nos detalhes, vamos começar explorando as vantagens do Interactive Brokers como plataforma de negociação.
A Interactive Brokers é uma corretora bem estabelecida com sede nos Estados Unidos. Ele oferece várias vantagens importantes que o tornam uma escolha popular entre os traders. Em primeiro lugar, a Interactive Brokers fornece uma API robusta para negociação automatizada, que será nosso foco principal hoje. Essa API capacita os traders a executar suas estratégias de maneira eficiente e eficaz. Em segundo lugar, a Interactive Brokers oferece custos de negociação competitivos, tornando-se uma opção econômica para os comerciantes. Você pode facilmente comparar seus custos de negociação em seu site. Com base na minha experiência pessoal, eles fornecem opções de negociação de baixo custo. Em terceiro lugar, a Interactive Brokers tem uma extensa presença global, oferecendo acesso a mais de cem centros de mercado em 24 países. Este alcance global permite que os comerciantes explorem vários mercados internacionais, permitindo a diversificação e ampliando as oportunidades comerciais. Por fim, a Interactive Brokers oferece suporte a uma ampla gama de produtos, incluindo ações, opções, futuros e forex, atendendo às diversas necessidades dos traders. Essas vantagens tornam a Interactive Brokers a escolha preferida de muitos traders.
Agora, vamos explorar os benefícios de usar o Python para negociação. O Python oferece inúmeras vantagens, especialmente para iniciantes. Comparado a outras linguagens de programação como Java ou C++, o Python é relativamente fácil de aprender. Com algum conhecimento introdutório, pode-se compreender rapidamente os fundamentos do Python e começar a implementar estratégias de negociação. Além disso, Python é uma linguagem de código aberto, fornecendo acesso a uma vasta coleção de módulos e bibliotecas. Esses recursos podem ser facilmente baixados e integrados aos seus sistemas de negociação, oferecendo ferramentas poderosas para análise de dados, visualização e negociação algorítmica. O ecossistema expansivo do Python o torna uma linguagem flexível e versátil para os traders.
Agora que entendemos as vantagens do Interactive Brokers e do Python, vamos explorar os recursos do IBPY. O IBPY simplifica a negociação com corretores interativos, fornecendo uma interface amigável para desenvolvedores Python. Ele agiliza tarefas como acessar dados de preços em tempo real, recuperar dados históricos e fazer pedidos. O IBPY preenche a lacuna entre a API Interactive Brokers e o Python, tornando mais fácil para os traders implementar suas estratégias sem lidar com códigos complexos.
Um dos principais recursos do IBPY é sua capacidade de acessar dados de preços em tempo real. Os comerciantes podem recuperar dados de mercado ao vivo, incluindo cotações de ações, cadeias de opções e preços futuros, diretamente em seu ambiente Python. Esses dados em tempo real permitem que os traders tomem decisões informadas com base nas informações mais recentes do mercado, melhorando suas chances de sucesso.
O IBPY também permite que os traders recuperem dados históricos, o que é essencial para backtesting e análise de estratégias de negociação. Ao acessar dados históricos de preços, os traders podem avaliar o desempenho de suas estratégias em diferentes condições de mercado e fazer ajustes baseados em dados. O IBPY fornece uma interface conveniente para buscar dados históricos para uma ampla gama de instrumentos, prazos e tipos de dados, permitindo uma análise completa e o refinamento da estratégia.
Colocar ordens é outro aspecto crucial da negociação algorítmica, e o IBPY simplifica esse processo. Os comerciantes podem usar a API IBPY para enviar vários tipos de ordens, incluindo ordens de mercado, ordens de limite e ordens de parada. Eles podem especificar parâmetros como quantidade, preço e tipo de pedido, e o IBPY lida com a execução perfeitamente. Essa funcionalidade permite que os traders automatizem suas estratégias de negociação, economizando tempo e reduzindo o risco de erros manuais.
Além desses recursos, o IBPY oferece suporte a uma variedade de operações comerciais avançadas. Os comerciantes podem recuperar informações da conta, gerenciar posições e portfólios, monitorar a atividade da conta e receber notificações de negociação em tempo real. Este conjunto abrangente de funcionalidades permite que os traders tenham controle total sobre suas atividades de negociação e tomem decisões oportunas.
Agora, vamos discutir brevemente a estratégia de negociação Moving Average Crossover, que o Dr. Yu abordará em detalhes posteriormente no webinar. Essa estratégia é baseada no conceito de médias móveis, amplamente utilizadas em análises técnicas. A estratégia Moving Average Crossover envolve o monitoramento de duas médias móveis de diferentes períodos de tempo, normalmente uma média móvel de curto prazo e uma média móvel de longo prazo. Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, gera um sinal de compra, indicando uma possível tendência de alta. Por outro lado, quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo, gera um sinal de venda, indicando uma possível tendência de queda. Essa estratégia visa capturar tendências e aproveitar os movimentos de preços.
Em conclusão, o webinar de hoje fornecerá informações valiosas sobre negociação com corretores interativos usando Python e IBPY. O Dr. Hoyle Yu, com seu amplo conhecimento e experiência, nos guiará pelas vantagens dos corretores interativos, pelos benefícios do uso do Python para negociação, pelas capacidades do IBPY e pela estratégia de negociação Moving Average Crossover. Esperamos que você ache este webinar informativo e envolvente. Sem mais delongas, entrego-o ao Dr. Yu para iniciar sua apresentação. Obrigado a todos por se juntarem a nós hoje e aproveitem o webinar!
Negociação Automatizada com Python | Webinar do Dr. Yves J. Hilpisch
Negociação Automatizada com Python | Webinar do Dr. Yves J. Hilpisch
O Dr. Yves J. Hilpisch é apresentado como o fundador e sócio-gerente do Python Course Group, uma empresa focada em Python e tecnologias de código aberto no setor financeiro, particularmente nas áreas de finanças computacionais e ciência de dados financeiros. Ele é autor de vários livros sobre Python e finanças e desenvolveu uma plataforma chamada DataPark, que permite que os cientistas de dados trabalhem com dados estruturados diretamente no navegador. O Dr. Hilpisch menciona que lançará um novo livro ainda este ano e também apresentará o TPQ, uma rede global de quants e empresas Python.
O webinar começa com o Dr. Hilpisch reconhecendo o crescente número de consultas que recebeu sobre o uso do Python em finanças, principalmente de start-ups com o objetivo de atrair desenvolvedores de Python para projetos relacionados a finanças. Ele anuncia um novo recurso que permite aos usuários baixar dados históricos da Comm Trading Platform e descreve os três principais tópicos que serão abordados no webinar: download de dados históricos, codificação e backtesting de uma estratégia de negociação e trabalho com dados de streaming para negociação algorítmica . Ele enfatiza a importância dos dados e do backtesting no desenvolvimento de estratégias de negociação sensatas.
Dr. Hilpisch passa a demonstrar como recuperar dados históricos usando Python, focando no índice alemão DAX como um exemplo. Ele explica que os usuários podem selecionar entre mais de 100 instrumentos diferentes, incluindo pares de moedas e commodities como ouro ou prata. Ao recuperar dados em blocos e anexá-los a um objeto DataFrame, os usuários podem armazenar os dados em disco para uma recuperação eficiente sem a necessidade de downloads repetidos. Ele enfatiza o papel dos dados no backtesting e sua importância na avaliação de estratégias de negociação.
Em seguida, o Dr. Hilpisch mostra um exemplo de uma estratégia de negociação simples baseada em duas médias móveis: uma mais curta (5 minutos) e uma mais longa (15 minutos). Ele explica que quando a tendência mais curta cruza acima da tendência mais longa, gera um sinal de compra, e quando a tendência mais curta cruza abaixo da tendência mais longa, gera um sinal de venda. Ele esclarece que não é um conselho de investimento, mas demonstra como implementar a estratégia em Python usando uma abordagem vetorizada, tornando o código eficiente e conciso.
O Dr. Hilpisch passa a calcular o desempenho de uma estratégia de negociação usando retornos logarítmicos previamente calculados. Ele explica como os traders podem determinar o desempenho de sua estratégia multiplicando sua posição pelo retorno realizado. Ele usa um exemplo de investimento longo no mercado e espera por um dia para ilustrar o cálculo. Ele destaca a importância de testar a estratégia de negociação para evitar o viés in-sample e adverte que o desempenho positivo em um período não garante o sucesso em outros períodos.
A discussão então muda para comparar o desvio padrão dos retornos entre uma estratégia de investimento de mercado e uma estratégia de sinalização de investimento baseada em tendências baseada em blocos de minutos. O Dr. Hilpisch demonstra que a estratégia baseada em tendências exibe desvios padrão mais baixos de retornos. Ele enfatiza a necessidade de trabalhar com dados de streaming ao implementar estratégias de negociação automatizadas e apresenta a API Plotly para gerar gráficos em tempo real.
Dr. Hilpisch demonstra o uso de uma API falsa que gera dados em formato de tempo real. Embora a demonstração atual não seja verdadeiramente streaming, ele menciona que pode ser feito para transmitir com algum esforço adicional, instanciando objetos adicionais e incorporando-os no Jupyter Notebook. Ele fornece um exemplo de loop for que coleta dados da API e os mostra em uma área de visualização interativa em tempo real, ponto a ponto.
A negociação automatizada usando dados em tempo real ou streaming é então discutida. O Dr. Hilpisch apresenta as funções "comprar" e "vender", que colocam ordens de mercado e exigem o número de unidades a serem negociadas. Ele apresenta a classe "TrendTrader", que é baseada em estratégias de acompanhamento de tendências e herda da classe streamer da API Wonder. Ele explica os atributos personalizados da classe, como um quadro de dados vazio e o número de tiques definido inicialmente como 0. A classe permite definir a primeira e a segunda tendências como parâmetros.
O Dr. Hilpisch explica que o método "onsuccess" é chamado quando novos dados são recebidos da API de streaming, mesmo que cheguem esporadicamente. Os dados são anexados ao quadro de dados previamente instanciado e convertidos para o fuso horário europeu. As tendências de curto e longo prazo são calculadas com base nas observações e as ações de negociação apropriadas são tomadas de acordo. Ele esclarece que, embora a estratégia apresentada possa não ser sensata, seu foco é ilustrar o processo. Ele também discute o método "onerror", que lida com quaisquer erros que possam ocorrer durante o processo de streaming e desconecta da API.
Em conclusão, o Dr. Hilpisch mostra a implementação de uma estratégia de negociação automatizada usando Python. Ele demonstra como um programa Python pode gerar ordens de compra e venda automaticamente com base na comparação de médias móveis. Ele enfatiza que a negociação algorítmica bem-sucedida requer uma combinação de habilidades financeiras e tecnológicas, um profundo conhecimento dos mercados, proficiência em estatísticas de big data e a capacidade de automatizar processos de negociação. O webinar serve como um recurso educacional para indivíduos interessados em adquirir o conhecimento e as habilidades necessárias para uma carreira em negociação algorítmica.
Negociação Algorítmica Usando Python - Introdução
Negociação Algorítmica Usando Python - Introdução
Olá e bem-vindo de volta ao primeiro vídeo da nova série de vídeos sobre negociação. Neste vídeo, exploraremos o propósito e o conteúdo do stream de vídeo deste século. O principal objetivo desta série de vídeos é fornecer a você uma compreensão abrangente da negociação algorítmica. Cobriremos tudo, desde o básico até a implementação avançada, teste e otimização de algoritmos de negociação.
A série foi projetada para ajudá-lo a aprender e utilizar a programação Python no contexto da negociação algorítmica. Exploraremos vários tópicos, como geração de sinais de negociação, implementação de estratégias, backtesting e implantação de algoritmos em ambientes de negociação ao vivo. Para facilitar isso, apresentaremos a você uma poderosa plataforma de negociação algorítmica chamada Contact Platform.
A Contact Platform é um ambiente de desenvolvimento integrado que permite criar, testar e implantar seus algoritmos de negociação. Ele oferece uma interface amigável e oferece suporte a várias linguagens de programação, incluindo Python, que usaremos extensivamente nesta série. Você pode acessar a plataforma online através do site Contato ou baixar o software para Windows ou Mac.
Para acompanhar a série de vídeos, criamos uma página dedicada no YouTube onde você pode encontrar recursos adicionais e exemplos de código. Esses exemplos abrangem uma variedade de tópicos, incluindo técnicas de agrupamento, criação de scripts para ações, títulos, forex, CFDs, opções e muito mais. Seja você um iniciante ou um trader experiente, esta série é o ponto de partida perfeito para mergulhar na negociação algorítmica.
É crucial entender a importância de desenvolver e testar algoritmos de negociação antes de implantá-los em cenários reais de negociação. Este é um dos aspectos mais demorados da negociação algorítmica. No entanto, tornamos mais fácil para você, fornecendo acesso a dados históricos de mercado gratuitos com dados em nível de minuto de alta resolução para opções de ações europeias e outros grandes mercados internacionais. Este será um recurso valioso para pesquisadores e desenvolvedores de algoritmos.
Ao longo da série, usaremos bibliotecas e ferramentas poderosas para aprendizado de máquina, análise de sentimento e backtesting. Essas bibliotecas, como Pandas e NumPy, são amplamente utilizadas na comunidade comercial e serão essenciais para nossa análise. Ao utilizar essas bibliotecas e a Contact Platform, você terá flexibilidade para criar e testar várias estratégias de negociação.
Nos próximos vídeos, faremos uma abordagem passo a passo para codificar algoritmos de negociação. Você me acompanhará enquanto discutimos e implementamos diferentes estratégias. Além disso, compartilharei materiais complementares, como trechos de código e vídeos, em meu canal do YouTube e nos artigos que o acompanham.
No próximo vídeo, vamos nos aprofundar no processo de desenvolvimento e explorar como funcionam os algoritmos de negociação. Fique ligado e junte-se a nós nesta emocionante jornada no mundo da negociação algorítmica.
Negociação algorítmica usando Python #2
Negociação algorítmica usando Python #2
Bem-vindo ao segundo vídeo do nosso curso de negociação algorítmica. Neste vídeo, vamos nos aprofundar no processo de desenvolvimento de algoritmos, focando no nível conceitual. Orientaremos você em cada etapa, desde a geração da ideia até a implantação ao vivo, abrangendo aspectos essenciais como pesquisa, implementação, backtesting e otimização.
O processo de desenvolvimento do algoritmo começa com a geração de ideias. Exploraremos várias fontes de ideias, incluindo observações de mercado, análise fundamental, indicadores técnicos e modelos quantitativos. Compreender como gerar e refinar ideias de negociação é crucial para o desenvolvimento de algoritmos bem-sucedidos.
Uma vez que temos uma ideia promissora, passamos para a fase de pesquisa. Isso envolve a coleta de dados relevantes, a realização de análises estatísticas e a realização de backtesting completo. Discutiremos a importância da qualidade dos dados e como ela afeta a confiabilidade de nossos algoritmos. Além disso, exploraremos diferentes métricas de desempenho e medidas de risco para avaliar a eficácia de nossas estratégias.
Depois de realizar uma pesquisa minuciosa, passamos para a fase de implementação. Aqui, traduzimos nossas ideias de negociação em código. Usaremos linguagens de programação como Python para escrever algoritmos que podem analisar dados, gerar sinais de negociação e executar negociações automaticamente. Você aprenderá sobre as melhores práticas de codificação e como estruturar seu código para manutenção e escalabilidade.
Uma vez implementado o algoritmo, passamos para a fase de backtesting. O backtesting envolve a simulação do desempenho do algoritmo usando dados históricos. Discutiremos diferentes metodologias de backtesting, incluindo testes dentro e fora da amostra, para validar o desempenho do algoritmo e avaliar sua robustez.
A otimização é outra etapa crítica no desenvolvimento de algoritmos. Exploraremos várias técnicas para ajustar nossos algoritmos e otimizar seu desempenho. Isso inclui otimização de parâmetros, análise de sensibilidade e estratégias de gerenciamento de risco. Ao otimizar nossos algoritmos, pretendemos melhorar sua lucratividade e reduzir riscos.
Por fim, abordaremos a implantação ao vivo de nossos algoritmos. Discutiremos considerações como conectividade com dados de mercado, execução de ordens e gerenciamento de risco em um ambiente de negociação ao vivo. Compreender os desafios e considerações da implantação ao vivo é essencial para uma negociação algorítmica bem-sucedida.
Ao longo deste vídeo, forneceremos insights e dicas práticas para guiá-lo no processo de desenvolvimento de algoritmos. No final, você terá uma compreensão abrangente de como conceituar, pesquisar, implementar, testar, otimizar e implantar algoritmos de negociação de forma eficaz.
Agora, vamos mergulhar no fascinante mundo da negociação algorítmica e explorar o processo de desenvolvimento de algoritmos em detalhes.
Como usar níveis de resistência de suporte e RSI para negociação de moeda lucrativa
Como usar níveis de resistência de suporte e RSI para negociação de moeda lucrativa
Na criação da estratégia de negociação RSI, o método convencional de identificação de áreas de sobrecompra e sobrevenda é considerado ineficaz. Em vez disso, é proposta uma abordagem mais eficaz, que combina os níveis de suporte e resistência com o RSI para melhorar os pontos de entrada. Este método alternativo contradiz o que é comumente ensinado em tutoriais de negociação clássicos. No entanto, quando testado usando Python, os resultados foram mais promissores.
Para implementar essa estratégia, o primeiro passo é identificar os níveis de suporte e resistência usando fractais ou velas que exibem valores extremamente altos ou baixos em comparação com as velas vizinhas. O número de velas para comparar é uma variável no código, permitindo flexibilidade no intervalo de comparação. Além disso, pode ser aplicada uma condição para considerar velas com movimentos de rejeição significativos, indicados por um comprimento de pavio superior a um determinado limite.
Uma vez detectados os níveis de suporte e resistência, eles podem precisar ser mesclados se estiverem muito próximos um do outro. Isso pode ser feito calculando a diferença ou distância entre os níveis. Se a distância estiver abaixo de um limite especificado, os níveis podem ser mesclados substituindo-os pelo valor médio ou eliminando níveis duplicados.
Depois de obter os níveis-chave, os sinais de reversão podem ser calculados com base em três suposições. Primeiro, uma vela deve ter um pavio próximo a um nível de suporte ou resistência, com seu corpo contido pelo nível. Se for um suporte, o corpo deve ficar acima do nível, e se for uma resistência, o corpo deve ficar abaixo do nível. As velas anteriores também devem estar contidas pelo mesmo nível de suporte ou resistência. Isso garante que o comportamento da vela atual se alinhe com a tendência indicada pelas velas ao redor.
Ao testar dados históricos, os sinais gerados podem ser plotados em um gráfico. Um sinal de reversão de alta é representado por um ponto de sinal roxo abaixo da vela, enquanto um sinal de reversão de baixa é representado por um ponto de sinal roxo acima da vela. No entanto, nem todos os sinais no gráfico podem ser negociados, pois alguns podem ser mais eficazes do que outros. Para filtrar os sinais, o RSI é usado. Se o RSI estiver acima de um valor limite, indicando um momento de tendência de alta, apenas os sinais de alta serão considerados. Por outro lado, se o RSI estiver abaixo de um limite inferior, indicando um momento de tendência de baixa, apenas os sinais de baixa serão considerados. Dessa forma, os sinais são alinhados com a tendência e os sinais que vão contra a tendência são filtrados.
Para automatizar os indicadores em Python e avaliar a estratégia, pode ser utilizado um arquivo Jupyter Notebook. Os dados de velas Euro/dólar americano para o período de uma hora entre 2003 e 2023 são carregados usando a biblioteca pandas. Os dados são filtrados para remover velas de volume zero e fins de semana, e o RSI é calculado usando a biblioteca de análise técnica do pandas. Os níveis de suporte e resistência são detectados usando funções que comparam a vela atual com as velas vizinhas, e a proximidade dos níveis é verificada usando funções adicionais. Essas funções consideram o corpo e o pavio da vela em relação aos níveis, assim como as velas anteriores.
Uma vez definidas todas as funções necessárias, uma função chamada "check_candle_signal" é criada para calcular os sinais. Esta função leva o índice da vela atual, o número de velas à esquerda e à direita a serem consideradas, o número de velas traseiras a serem verificadas e o quadro de dados como entradas. Ele usa as funções definidas anteriormente para calcular os níveis de suporte e resistência, mesclá-los se necessário e gerar sinais com base nas condições definidas e nos limites do RSI.
Os sinais são então contados e impressos para avaliar o desempenho da estratégia. Para visualizar os sinais no gráfico, as velas correspondentes são selecionadas e plotadas, com os sinais representados por pontos roxos. O gráfico permite uma avaliação visual dos sinais e seu alinhamento com os níveis de suporte e resistência identificados.
Depois de carregar os dados do castiçal e executar as etapas de limpeza de dados necessárias, como remover velas de volume zero e fins de semana, o próximo passo é calcular o Índice de Força Relativa (RSI).
O RSI é um oscilador de momentum popular usado para identificar condições de sobrecompra e sobrevenda em um mercado. Ele mede a magnitude das mudanças de preços recentes para determinar se um ativo está sobrecomprado ou sobrevendido. Os valores do RSI variam de 0 a 100, onde valores acima de 70 são normalmente considerados sobrecomprados e valores abaixo de 30 são considerados sobrevendidos.
Para calcular o RSI, você precisa definir um tamanho de janela, que representa o número de velas anteriores a serem consideradas ao calcular o indicador. O tamanho de janela mais comum é 14, mas você pode ajustá-lo com base em seus requisitos e nas características do ativo que está analisando.
O cálculo do RSI envolve as seguintes etapas:
Calcule a variação de preço para cada vela. Esta é a diferença entre o preço de fechamento da vela atual e a vela anterior.
Divida as mudanças de preço em duas séries separadas: ganhos e perdas. Ganhos representam mudanças de preço positivas, enquanto perdas representam mudanças de preço negativas. Se uma mudança de preço for positiva, é considerada um ganho. Se for negativo, é considerado uma perda.
Suavize as séries de ganhos e perdas substituindo valores negativos por zeros e valores positivos por seus valores absolutos.
Calcule o ganho médio e a perda média sobre o tamanho de janela definido. Isso geralmente é feito usando o método de média móvel simples (SMA).
Calcule a força relativa (RS) dividindo o ganho médio pela perda média.
Calcule o RSI aplicando a fórmula: RSI = 100 - (100 / (1 + RS))
Ao plotar os valores do RSI ao longo do tempo, você pode analisar visualmente as condições de sobrecompra e sobrevenda do ativo. Os comerciantes costumam usar o RSI como um sinal para possíveis reversões de tendência ou como confirmação para pontos de entrada e saída.
É importante observar que o RSI é apenas um dos muitos indicadores técnicos usados na análise financeira. Sua eficácia depende de vários fatores, como condições de mercado, ativo em análise e prazo considerado.
Backtest de estratégias de média móvel e tendência VWAP em Python
Backtest de estratégias de média móvel e tendência VWAP em Python
Olá, hoje vamos comparar o V-WAP (Volume-Weighted Average Price) e os indicadores de Média Móvel para negociação e negociação algorítmica. Usaremos ambos os indicadores para construir um bot de negociação e testá-lo novamente usando dados do Bitcoin.
Os retornos de lucro das estratégias que usaremos neste vídeo podem variar de cerca de 200% até impressionantes 473% em três anos de dados. Se você estiver interessado na parte de codificação, o backtest é feito usando a linguagem Python e você pode baixar o arquivo do Jupyter Notebook no link fornecido na descrição.
Além de ser meu indicador favorito na negociação, o V-WAP é importante porque ajuda os traders a determinar se um título está sendo negociado a um valor justo ou não. Esta informação é crucial porque se um preço está sendo negociado acima da curva V-WAP ou muito acima da curva V-WAP, isso pode indicar que está supervalorizado. Por outro lado, se o preço atual estiver sendo negociado abaixo da curva V-WAP, isso pode indicar que o título está subvalorizado. Em poucas palavras, sempre esperamos que o preço volte ao nível V-WAP em algum momento. Isso pode ser observado em um exemplo em que a diferença entre as velas de preço e a curva V-WAP amarela aumentou antes que o preço convergisse de volta ao nível V-WAP e rebatesse a curva amarela novamente. Há uma clara diferença entre a curva de média móvel e a curva amarela V-WAP.
Para calcular o V-WAP, podemos usar a seguinte expressão: V-WAP = Preço médio acumulado * Volume / Volume acumulado. O preço médio é o preço médio entre os preços máximo, mínimo e de fechamento. A parte cumulativa significa a soma total desde a abertura do pregão. A sessão de negociação pode ser redefinida diariamente, semanalmente ou mensalmente, dependendo do período que pretendemos. O cálculo do V-WAP é diferente de uma média móvel simples, pois incorpora mais informações sobre o volume de negociação.
Também podemos usar o V-WAP para determinar os pontos ideais de entrada e saída para negociações, pois ele atua como um nível dinâmico de suporte e resistência que se move junto com o preço. É para isso que usaremos o V-WAP na estratégia mostrada neste vídeo.
A estratégia que usaremos é a seguinte: primeiro, veremos uma série de velas que estão abaixo ou acima do V-WAP ou da curva de média móvel, dependendo de qual indicador estamos usando para a comparação. Se as velas estiverem abaixo da curva, estamos procurando um sinal curto e o ponto de entrada será determinado quando uma vela estiver perto o suficiente da curva. Se as velas estiverem acima da curva, estamos procurando um sinal longo e o ponto de entrada será determinado quando uma vela estiver perto o suficiente da curva. Estaremos aplicando a mesma estratégia usando a curva de média móvel e a curva V-WAP para comparação.
No arquivo Jupiter Notebook, carregamos os dados do candelabro do dólar americano Bitcoin com um período de 15 minutos entre 2019 e 2022. Limpamos os formatos de dados e usamos o módulo de análise técnica pandas para calcular o V-WAP e o EMA (Exponential Moving Average ). Em seguida, calculamos o sinal para o EMA e o V-WAP usando um certo número de back candles. Os valores de sinal são armazenados em novas colunas no quadro de dados. Visualizamos os pontos de sinalização para melhor entendimento.
Para backtesting, podemos usar diferentes abordagens de gerenciamento comercial. Nesse caso, usamos o ATR (Average True Range) para definir os níveis de stop-loss e take-profit. O nível de take-profit é definido com base na distância de stop-loss, com uma taxa de take-profit para stop-loss de 2,5. O stop-loss é calculado como 0,8 vezes o ATR.
No backtest, iteramos cada vela no quadro de dados e verificamos as condições de entrada e saída com base no sinal gerado pelo V-WAP e pelos indicadores de média móvel. Se uma negociação for iniciada, calculamos os níveis de stop-loss e take-profit com base no ATR. Se o preço atingir o nível de stop-loss ou take-profit, saímos da negociação e registramos o lucro ou prejuízo.
Após a conclusão do backtest, calculamos o lucro e a perda cumulativos e geramos métricas de desempenho, como retorno total, retorno anualizado, rebaixamento máximo e índice de Sharpe.
Os resultados do backtest mostram o desempenho da estratégia de negociação usando os indicadores V-WAP e de média móvel. Comparando os resultados, podemos avaliar qual indicador tem melhor desempenho em termos de rentabilidade e gestão de risco.
Observe que os resultados do backtest dependerão de vários fatores, como os parâmetros específicos usados, o período de tempo selecionado e as condições do mercado. É importante analisar minuciosamente a estratégia e realizar testes robustos antes de aplicá-la à negociação real.
Master Price Action Trading com Doji Automatizado e Engulfing Patterns usando Python
Master Price Action Trading com Doji Automatizado e Engulfing Patterns usando Python
Hoje, vamos comparar dois padrões de velas: as velas Doji e as velas Engulfing. Usaremos uma estratégia simples combinada com as bandas de Bollinger e testaremos esses padrões usando dados históricos do ano passado no período de uma hora. Nosso objetivo é demonstrar como a combinação de padrões de ação de preço com outros indicadores pode ser uma ferramenta poderosa para negociações puramente técnicas.
Para implementar essa estratégia, disponibilizamos o código Python, que está disponível para download no link da descrição do vídeo. Se você achar o conteúdo útil, apoie nosso canal curtindo e seguindo. Além disso, se você tiver alguma ideia que gostaria de explorar, podemos discuti-la na seção de comentários.
Para o propósito desta demonstração, vamos nos concentrar em dois conjuntos de padrões: uma vela Doji precedida por uma vela de baixa e seguida por uma tendência de alta ou vela de alta, indicando uma futura tendência de alta. O segundo padrão é o padrão Engulfing, onde os preços de abertura e fechamento de uma vela são maiores e menores, respectivamente, do que os da vela anterior. Essencialmente, a vela atual envolve a anterior, determinando a tendência prevista para os preços futuros. Examinaremos especificamente exemplos de configurações de alta para esses dois padrões. Também vale a pena considerar as configurações de baixa, onde um Doji é seguido por uma vela de baixa ou, no caso do padrão Engulfing, a vela engulfing tem uma direção de baixa. Essas configurações indicariam uma tendência de baixa futura.
Agora, vamos nos aprofundar em como usamos esses padrões em nossa estratégia. Primeiro, esperamos que uma vela de preço feche acima ou abaixo das linhas da Banda de Bollinger. Se um padrão de alta se formar abaixo da linha inferior da Bollinger Band, definimos um sinal de compra. Por outro lado, se uma configuração de vela de baixa ocorrer acima da linha superior da Banda de Bollinger, definimos um sinal de venda ou curto. Em termos mais simples, se observarmos um padrão de alta abaixo das Bandas de Bollinger, esperamos que o preço suba. Por outro lado, se detectarmos um padrão de baixa acima das Bandas de Bollinger, prevemos que o preço caia. Este é o aspecto que exploraremos usando Python.
O notebook Jupyter fornecido demonstra o backtesting deste indicador. O código emprega o módulo Y Finance e pandas para recuperação e análise de dados, respectivamente. Os dados da taxa de câmbio do euro para o dólar americano de 1º de abril de 2021 a 19 de março de 2023 são baixados em um período de hora em hora.
Para calcular as bandas de Bollinger, utilizamos o módulo de análise técnica pandas, definindo um comprimento de 30 e um desvio padrão de 1,5. Esses parâmetros podem ser ajustados para experimentação posterior.
Em seguida, definimos a função "Bollinger Doji Signal", que leva o dataframe com preços de abertura, fechamento, alta e baixa, bem como os dados das Bandas de Bollinger. Verificamos a primeira condição, que envolve um sinal de alta. Nesse caso, procuramos um preço de fechamento da vela atual abaixo da linha inferior da Banda de Bollinger. Simultaneamente, o preço de fechamento atual deve ser maior que o preço de abertura, indicando uma vela verde ou de tendência de alta precedida por uma vela Doji. Além disso, a vela anterior deve ser de baixa, com o preço de fechamento abaixo do preço de abertura. Essa combinação representa um padrão de reversão. Se essas condições forem atendidas e o padrão ocorrer abaixo da linha inferior da Bollinger Band, definimos um sinal de compra. Por outro lado, para um sinal de baixa, o preço de fechamento deve estar acima da linha superior da Bollinger Band e a vela atual deve ser de baixa, com o preço de fechamento abaixo do preço de abertura. Precedendo isso, deve haver uma tendência de alta ou vela verde com o preço de fechamento superior ao preço de abertura.
Nesse caso, a combinação representa um padrão de reversão de baixa e, se essas condições forem atendidas e o padrão ocorrer acima da linha superior da Bollinger Band, definimos um sinal de venda.
A função "Bollinger Doji Signal" calcula os sinais com base nas condições mencionadas acima e retorna um dataframe com os dados originais junto com a coluna de sinais indicando se comprar (1), vender (-1) ou manter (0) a cada vela.
Em seguida, aplicamos essa função aos nossos dados históricos e armazenamos os resultados em um novo dataframe chamado "signals_df".
Para avaliar o desempenho de nossa estratégia, calculamos os retornos multiplicando os sinais pela variação percentual no preço de fechamento e somando-os cumulativamente. Também calculamos os retornos cumulativos de uma estratégia de buy-and-hold, em que simplesmente mantemos o ativo durante todo o período.
Por fim, plotamos os retornos cumulativos de ambas as estratégias em um gráfico para visualizar o desempenho.
Ao analisar os resultados do backtest, podemos avaliar a eficácia dos padrões de vela Doji e Engulfing combinados com o indicador Bollinger Bands na geração de sinais de negociação. É importante observar que este é um exemplo simplificado e não deve ser considerado como aconselhamento financeiro. Além disso, a estratégia e seus parâmetros podem ser otimizados e personalizados com base nas preferências individuais e tolerância ao risco.
Para entender e replicar totalmente o código, é recomendável baixar e executar o notebook Jupyter fornecido, que contém o código completo e as explicações.
Lembre-se de que as estratégias de negociação devem ser exaustivamente testadas e validadas antes de implementá-las em cenários reais de negociação. É sempre recomendável consultar um consultor financeiro ou realizar uma extensa pesquisa antes de tomar qualquer decisão de investimento.
Esperamos que esta explicação o ajude a entender melhor a implementação dos padrões de velas Doji e Engulfing combinados com o indicador Bollinger Bands em uma estratégia de negociação.BackTest de estratégia do canal de preço Break Out em Python
BackTest de estratégia do canal de preço Break Out em Python
Olá e bem-vindo de volta ao meu canal. No vídeo de hoje, vamos nos concentrar no desenvolvimento e no backtesting de uma estratégia baseada em rompimentos de canais de preços. Se você é novo aqui, recomendo assistir nosso episódio anterior, onde apresentei e expliquei o código para nosso indicador de canal de preço personalizado baseado em Python. Vou deixar um link na descrição abaixo. Agora, vamos mergulhar no tópico de hoje e realizar a parte do backtesting.
No vídeo anterior, apresentamos o código para detectar os canais de preços. Para recapitular, detectamos os fractais, que são os pontos altos e baixos das velas. Um fractal é um ponto na vela que é mais alto ou mais baixo que todas as velas vizinhas ao mesmo tempo. Detectamos diferentes fractais, tanto altos quanto baixos, e os ajustamos em inclinações usando regressão. Essas inclinações representam o canal que define o canal de preços. Em seguida, tentamos detectar rompimentos quando o preço sai desse canal, assumindo que o preço continuará na mesma direção.
Visualmente, o indicador parece estar funcionando bem, mas estamos curiosos para ver como ele se comporta em uma estratégia de longo prazo. É por isso que estamos conduzindo o backtesting completo hoje. Usaremos o Python para o backtest e você pode baixar o código no link da descrição.
Para começar, carregamos nossos dados, pegando 10 a 20 anos de dados de 2003 a 2023, que também usamos no último vídeo. Definimos o número de back candles para 45, que é a janela na qual detectaremos os fractais (máximos e mínimos) e definiremos nosso canal.
Temos uma função chamada is_pivot que detecta se uma vela é um ponto pivô ou um ponto fractal. São necessários dois parâmetros: o índice da vela e o tamanho da janela. Ele verifica se a vela está acima ou abaixo de todas as máximas ou mínimas das velas vizinhas dentro da janela especificada. Ele retorna um valor baseado no tipo de pivô: 1 para pivô alto, 2 para pivô baixo, 3 para ambos e 0 para os demais casos. Aplicamos essa função a cada vela em nosso quadro de dados e salvamos os resultados em uma nova coluna chamada "is_pivot".
Em seguida, precisamos coletar os canais ou detectar os canais. Observamos as 45 velas antes da vela atual e verificamos os fractais altos e baixos. Se tivermos pelo menos três máximos e três mínimos, os ajustamos usando regressão linear e retornamos os parâmetros das inclinações. Caso contrário, retornamos zeros. Aplicamos essa função ao quadro de dados usando o tamanho de janela especificado e os resultados são salvos em uma nova coluna chamada "canal".
Também temos uma função chamada is_breakout que detecta rompimentos fora do canal de preços. Para cada vela, verificamos se a máxima da vela anterior está dentro do canal e se o preço de fechamento da vela anterior está abaixo da mínima do canal. Se ambas as condições forem atendidas e os preços de abertura e fechamento da vela atual também estiverem fora do canal, retornamos um sinal: 1 para um sinal de tendência de baixa, 2 para um sinal de tendência de alta e 0 para outros casos. Executamos esta função em todas as velas e salvamos os resultados em uma nova coluna chamada "is_breakout".
Agora que temos os sinais de fuga, podemos prosseguir com o backtesting. Usamos a Biblioteca de Backtesting como de costume, com um tamanho de lote inicial de 10% do patrimônio. Definimos uma taxa de take profit para stop loss e definimos os níveis de stop loss e take profit com base no sinal. Por exemplo, se o sinal for 2 (tendência de alta) e nenhuma negociação estiver aberta, definimos o stop loss na mínima da vela anterior e o take profit em um múltiplo do intervalo verdadeiro médio (ATR).
Nós iteramos sobre cada vela no quadro de dados e verificamos se há um sinal de rompimento. Se houver um sinal e nenhuma negociação estiver aberta no momento, entramos em uma nova negociação com base no sinal. Calculamos o tamanho da negociação com base no tamanho do lote e no patrimônio disponível.
Depois que uma negociação é aberta, acompanhamos seu progresso. Atualizamos o stop loss e obtemos níveis de lucro à medida que o preço se move a nosso favor. Se o preço atingir o nível de stop loss ou take profit, fechamos a negociação e registramos o resultado.
Por fim, calculamos e imprimimos as métricas gerais de desempenho, incluindo o número total de negociações, a porcentagem de negociações vencedoras, o retorno médio por negociação e o retorno geral sobre o patrimônio líquido.
Aqui está uma explicação passo a passo da estratégia de fuga do canal de preços sem o código:
A implementação dessa estratégia no código permitirá que você faça um backtest em dados históricos e analise seu desempenho. O código fornecido anteriormente demonstra a implementação da estratégia usando a biblioteca Backtesting em Python.