Python para negociação algorítmica - página 16

 

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.

  • 00:00:00 O Dr. Hui Liu discute os recursos de backtesting mais recentes do iBridgePy e fornece uma visão geral rápida do iBridgePy. Ele analisa as funções fundamentais do iBridgePy e explica as etapas básicas para construir um algoritmo para estratégias de negociação. Ele então se concentra no sistema de backtesting iBridgePy e fornece dois exemplos de códigos para backtesting. A primeira amostra usa dados históricos de Interactive Brokers e a segunda amostra discute como melhorar a experiência de backtesting usando dados históricos fornecidos pelos usuários. O Dr. Liu fala por último sobre a importância de analisar o desempenho do backtesting para melhorias futuras.

  • 00:05:00 O Dr. Hui Liu discute os recursos de backtesting mais recentes do IBridgePy, incluindo a capacidade de negociar quaisquer valores mobiliários ou commodities oferecidos por corretores consultores e gerenciar várias contas simultaneamente com o recurso Hybrid Pie. Os consultores de investimento também podem se beneficiar da capacidade do IBridgePy de executar várias estratégias de negociação e executar algoritmos de consultoria durante o backtesting. As instruções para preparar o recurso Hybrid Pie são diretas, incluindo o download do IBridgePy, a criação de uma conta em papel ou real com um corretor como o Interactive Brokers e a instalação do software IB, seja o gateway leve do IB ou a estação de trabalho do trader baseada em GUI, e configurá-lo com IBridgePy.

  • 00:10:00 Dr. Hui Liu demonstra como usar o IBridgePy para se conectar a corretores e obter dados em tempo real, alternando entre arquivos diferentes, como “Exemplo de Posições de Exibição”, “Exemplo de Preços em Tempo Real” e “Obter Dados Históricos ”. Os usuários podem alterar códigos de conta e nomes de arquivos e podem verificar saldos de contas e pedidos pendentes. A função initialize declara variáveis globais no IBridgePy, e os usuários podem usar caixas de código e pedir ajuda à equipe do IBridgePy relatando as versões do pacote híbrido. Finalmente, o Dr. Hui Liu mostra como fechar o IBGateway e abrir o TWS Trade Workstation.

  • 00:15:00 O palestrante explica rapidamente como se conectar ao TWS e explica as principais funções do iBridgePy. A função de inicialização é declarada para ser executada no início do código, enquanto a função de manipulação de dados é onde as decisões de negociação são tomadas e são executadas a cada minuto ou em um intervalo configurável. Para agendar eventos, o usuário pode usar a função agendar ao invés de manipular dados. O preço em tempo real de um título específico pode ser acessado usando a função show_real_time_price e os dados históricos podem ser recuperados usando a função request_historical_data. A função place_order é usada para comprar ou vender títulos, e o palestrante também fornece uma demonstração ao vivo da função do visualizador de ações.

  • 00:20:00 O Dr. Hui Liu, o criador do iBridgePy, demonstra como usar o recurso de tela de ações para pesquisar ações com base no sentimento e no preço da mídia social. Ele explica que os usuários podem definir seus parâmetros de pesquisa para o scanner especificando o tipo de instrumento, código de localização e código de varredura, com um exemplo de uso da rede de sentimento social como código de varredura para uma pesquisa das principais ações dos EUA com preços acima de US$ 100. O Dr. Liu então demonstra o rastreador de ações no mercado ao vivo, mostrando uma lista das ações mais ativas e como o sentimento da mídia social pode fornecer informações sobre a popularidade de certas ações. Por fim, ele descreve algumas considerações importantes para a construção de estratégias de negociação algorítmica, incluindo a escolha de quais contratos negociar e como definir diretrizes de gerenciamento de risco.

  • 00:25:00 Dr. Hui Liu discute as etapas básicas para construir estratégias de negociação algorítmica usando iBridgePy, seguido por um exemplo simples de estratégia de reversão. As etapas para construir uma estratégia incluem selecionar uma ação, determinar o intervalo de tempo para tomar decisões de negociação, calcular indicadores técnicos por meio de dados históricos, selecionar tipos de ordens e lidar com exceções. A estratégia de reversão simples envolve inserir manualmente o contrato SPY e tomar decisões de negociação com base nos preços de fechamento diários. O código de exemplo para a estratégia inclui funções agendadas e uma função diária para tomar decisões de negociação.

  • 00:30:00 Dr. Hui Liu discute os recursos de backtesting mais recentes do iBridgePy, incluindo a capacidade de recuperar dados históricos e usar um dataframe 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 usando cruzamento de média móvel e explica os fundamentos do backtesting, que envolve a implementação de uma estratégia prática considerando dados anteriores para informar decisões de negociação e, em seguida, testando-os em relação a dados históricos para ver se produz resultados bem-sucedidos. Liu também observa que a função tradicional de manipulação de dados pode ser usada para controlar quando uma função é executada, fornecendo uma alternativa à função programada que depende dos horários de abertura e fechamento do mercado dos EUA.

  • 00:35:00 Dr. Hui Liu explica que no modo de backtesting usando Ibridgepy, a cápsula do tempo ou castiçais que são usados são muito semelhantes à negociação 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 bem modelado no backtesting. Os dados podem ser fornecidos pelo IB ou um usuário pode fornecer suas próprias fontes de dados em qualquer formato, desde que o Python possa lê-los e transformá-los em um quadro de dados pandas. O modo de backtesting atualmente oferece suporte a ordem de mercado, ordem de limite e ordem de parada, mas não à ordem de rastreamento, pois não é precisa e não fornece resultados significativos. Por fim, os detalhes da transação são armazenados na pasta de saída com um nome de arquivo contendo a hora em que o backtesting foi iniciado.

  • 00:40:00 Dr. Hui Liu explica os fundamentos do sistema de backtesting iBridgePy. Ao iniciar um dia de negociação simulado, o sistema calcula o valor da carteira e o registra no log de saldos. Em seguida, ele demonstra o uso de dados históricos da Interactive Brokers e o backtesting de uma estratégia chamada "reversão de preço próximo". Para isso, ele seleciona o nome do arquivo e modifica alguns parâmetros, como nome do provedor de dados e modo de execução. Ele também explica o conceito de um plano de ingestão de dados históricos, onde os usuários informam ao iBridgePy quais dados desejam receber dos Interactive Brokers para usar em sua estratégia. Para executar backtests, os usuários precisam de dados históricos diários da barra e dados de um minuto para recuperar informações de preço de fechamento do mercado um minuto antes do fechamento do mercado.

  • 00:45:00 O Dr. Hui Liu explica o processo de configuração de um período de backtesting no iBridgePy. O período de tempo pode ser definido para recuperar dados históricos para ações específicas, e a frequência do ponto de tempo pode ser definida para um minuto, uma hora ou um dia. Dados históricos de contratos antigos podem ser recuperados usando o ticker SPY ou AAPL. O código deve ser executado especificamente no horário local mais recente e os dados dentro do prazo adequado devem estar disponíveis. O caixa padrão começa em $ 10.000 e Hui mostra como exibir o saldo e a posição da conta usando uma demonstração.

  • 00:50:00 Dr. Hui Liu demonstra como usar os recursos de backtesting do IBridgePy para simular um código de demonstração para reversão de preço próximo. Ele mostra como usar preços em tempo real com base em dados históricos e como executar a meta para ver seu desempenho. Ele também mostra como alterar o intervalo 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 usar os recursos de backtesting do IBridgePy para estratégias de investimento.

  • 00:55:00 Dr. Hui Liu discute como fazer melhorias no processo de backtesting usando o iBridgePy. A primeira sugestão é evitar executar o mesmo código repetidamente para buscar exatamente os mesmos dados, o que desperdiça recursos e viola as regras de espaçamento IB. Em vez disso, os dados históricos são buscados usando um plano definido com o mesmo nome de arquivo, reduzindo assim a quantidade de código que precisa ser executado. A segunda sugestão é usar dados históricos fornecidos pelo usuário ao invés de buscar dados do IB, tornando o processo de backtesting mais eficiente.

  • 01:00:00 O Dr. Hui Liu discute o recurso de fornecer dados locais para backtesting no IBridgePy. Em vez de buscar dados do servidor de ID, 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. IBridgePy irá ingerir os dados do arquivo local e simular o backtesting de acordo . No entanto, se o volume não estiver disponível, os usuários podem inserir '-1' como valor. Além disso, esse recurso fornece resultados precisos para as estratégias pessoais do usuário e pode resultar em simulações eficientes.

  • 01:05:00 O Dr. Hui Liu discute os recursos de backtesting mais recentes do 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 também discute a análise de desempenho usando um arquivo de log para rastrear e analisar o desempenho do backtesting. No geral, esses novos recursos fornecem maneiras mais rápidas e eficientes de testar e analisar o código no IBridgePy.

  • 01:10:00 O Dr. Hui Liu discute recursos adicionais do backtesting do iBridgePy, incluindo o log de saldo que mostra mais detalhes sobre o valor da carteira e dinheiro, bem como o log de transações. Ele também demonstra como visualizar e analisar resultados de backtesting usando a proporção de Sharpe e o pacote matplotlab para criar gráficos. 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 ao vivo.

  • 01:15:00 O Dr. Hui Liu responde a várias perguntas dos participantes do webinar sobre os recursos mais recentes do iBridgePy. Ele menciona que os indivíduos podem gerenciar as contas de investimento de outras pessoas com o iBridgePy depois de se tornar um consultor de portfólio e abrir uma conta de gerenciamento com o IB. Os participantes também perguntam sobre como baixar o código de exemplo para a estratégia e obter preços históricos de opções e dados gregos para backtesting. Liu sugere que os indivíduos possam obter os preços históricos das opções do IB e escrever o código Python para usar os dados gregos, se os tiverem. Por fim, ele menciona que o iBridgePy não oferece suporte a uma API para obter uma lista de observação, mas os indivíduos podem criar uma manualmente no IB.

  • 01:20:00 O Dr. Hui Liu termina o webinar incentivando os participantes a postar quaisquer outras perguntas que tenham no fórum da comunidade iBridgePy ou enviar um e-mail para ele. Ele também menciona que uma gravação da apresentação estará disponível mediante solicitação e que ele publicará um tutorial do iBridgePy em breve, onde os participantes poderão obter o código necessário. O Dr. Liu também lembra aos usuários que eles podem visitar o site iBridgePy para baixar o software e visualizar a documentação da API. Ele encerra agradecendo aos participantes pela presença e atenção.
IBridgePy’s Latest Backtesting Features By Dr. Hui Liu - August 9, 2019
IBridgePy’s Latest Backtesting Features By Dr. Hui Liu - August 9, 2019
  • 2019.09.11
  • www.youtube.com
Session outline:- IBridgePy's cornerstone functions.- Basic steps to build a trading strategy.- Backtest strategies using IB's historical data.- Backtest str...
 

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.

  • 00:00:00 O palestrante apresenta o Kite Connect e explica como ele permite que os usuários acessem suas contas de negociação programaticamente usando Python. A motivação por trás do Kite Connect era resolver o desafio de aumentar a participação no mercado indiano, e o conceito de corretagem como serviço foi introduzido. As startups podem usar as APIs do Kite Connect para criar experiências de usuário de nicho para seus clientes, o que ajudará a atrair os próximos 10 a 20 milhões de indianos para investir nos mercados. O palestrante também menciona que a Zerodha oferece as melhores plataformas do país e possui mais de 175.000 clientes, contribuindo com uma parcela significativa do giro do mercado de ações indiano.
    |
  • 00:05:00 O palestrante explica as origens do Kite Connect, que foi desenvolvido para fornecer uma plataforma de negociação on-line simples e acessível a milhares de clientes na Índia. Reconhecendo o vasto grupo de engenheiros de software da Índia que muitas vezes não têm a oportunidade de usar seu conjunto de habilidades, a Kite Connect disponibilizou suas APIs para engenheiros de software para estratégias de backtest e gerenciamento de posições. A plataforma cobra uma taxa pelo uso de suas APIs, mas também oferece um código de desconto para novos desenvolvedores que se cadastram. O palestrante então passa a palavra a outro colega para demonstrar como é fácil usar o Kite Connect para construir uma plataforma de negociação personalizada, com o objetivo de fazer pedidos, obter posições mantidas e, eventualmente, desenvolver uma estratégia.

  • 00:10:00 O palestrante fornece um guia passo a passo sobre como obter uma chave API para a API Kite Connect, essencial para negociação programática no mercado indiano usando Python. O palestrante também explica a URL de postback, que é usada para notificar os usuários sobre o status de seus pedidos e confirmações de transações. Além disso, o palestrante enfatiza a importância de instalar a biblioteca Kite Connect Python, que é um wrapper em torno da API Kite Connect criada para simplificar o uso da API em poucas linhas de código. O palestrante também explica a divisão das funcionalidades básicas de um aplicativo de negociação e a importância das respostas de solicitação e exceções no processo de desenvolvimento do aplicativo de negociação. O fluxo de login também é explicado aqui, o que enfatiza a importância da autenticação segura para qualquer aplicativo de negociação.

  • 00:15:00 O palestrante explica como usar o Python para o comércio programático nos mercados indianos usando a API Kite Connect da Zerodha. O primeiro passo é usar a chave da 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, incluindo a importação da biblioteca, o armazenamento da chave da API e a obtenção de um token de solicitação. Por fim, o token de solicitação é usado para obter um token de acesso fazendo hash com o segredo da API.

  • 00:20:00 O vídeo discute como usar o Python e a API Kite Connect para negociação programática nos mercados indianos. O vídeo mostra o processo de configuração de um token de acesso e token público e, em seguida, usando esses tokens para configurar uma conexão com a API Kite Connect para informações de streaming. O vídeo também explica como fazer um pedido, incluindo os componentes necessários, como símbolo de negociação, quantidade, tipo de transação, tipo de pedido e produto. Por fim, o vídeo aborda como recuperar detalhes de pedidos, participações e posições. O vídeo enfatiza que há muitas chamadas de API adicionais além das abordadas no vídeo, mas todas estão bem documentadas no site da Kite Connect.

  • 00:25:00 O palestrante discute a importância dos instrumentos ao usar a API Kite Connect para negociação programática nos mercados indianos com Python. 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 enorme arquivo CSV e também é usado para acessar dados históricos. O palestrante também discute o streaming de WebSocket e os diferentes modos nos quais os dados podem ser recebidos, 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 usar retornos de chamada para receber dados. Por fim, o palestrante discute o uso de postback e a necessidade de uma URL pública para implementá-lo.

  • 00:30:00 O palestrante discute a implementação de uma estratégia usando dados históricos e a facilidade de fazer um pedido usando a API Kite Connect. Ele explica como uma startup pode ter um endpoint para receber postbacks do servidor Kite, que pode ser usado para acionar notificações de pedidos bem-sucedidos ou com falha, entre outras coisas. Ele também demonstra como obter dados históricos usando a API e enfatiza a necessidade de assinar o recurso de dados históricos do Kite antes de solicitar dados históricos. Por fim, ele apresenta uma estratégia básica de média móvel para ilustrar como é simples fazer pedidos com a API do Kite.

  • 00:35:00 O palestrante explica sua 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. A função para colocar ordens é mostrada, com uma linha de código para negociação real. O palestrante enfatiza que, embora sua estratégia não seja a melhor, é fácil de implementar e modificar para diferentes símbolos de negociação e tipos de transação. A API do Kite Connect é de código aberto, permitindo modificação e uso na criação de uma plataforma de negociação. O palestrante também menciona a extensa documentação e o fórum ativo disponível no site da Kite Connect para auxiliar em qualquer dúvida ou problema.

  • 00:40:00 O CEO da Quantity apresenta sua empresa, que está envolvida em negociações algorítmicas e quantitativas desde 2010 e oferece programas de treinamento e eventos para milhares de estudantes em todo o mundo. Eles mencionam seu alinhamento com o uso programático de Python nas estratégias de negociação discutidas no webinar e pedem desculpas por não conseguir responder a todas as perguntas, mas garantem ao público que sua equipe está trabalhando para pesquisar e responder a todas as perguntas.

  • 00:45:00 O palestrante discute o impacto do programa EPAT da QuantInsti, que é um curso online de seis meses focado em negociações quantitativas e algorítmicas. 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. O curso é ministrado por um grupo internacional de mais de uma dúzia de profissionais com vasta experiência na indústria. Os graduados do programa estão bem equipados para entrar no mercado de trabalho, e o QuantInsti oferece uma variedade de serviços de carreira, bem como orientação gratuita para aqueles que desejam estabelecer suas próprias mesas de negociação. O programa alcançou alcance global, com ex-alunos em mais de 30 países em seis continentes.

  • 00:50:00 O palestrante convida os espectadores a participarem de sua próxima sessão informativa sobre negociação algorítmica que será realizada em 3 de novembro de 2016, às 18h30 IST. Ele também os incentiva a seguir a empresa em plataformas de mídia social como Facebook, Twitter, LinkedIn e YouTube, onde podem encontrar uma infinidade de recursos educacionais e participar de discussões. O palestrante também se oferece para enviar links aos participantes interessados e os convida a preencher qualquer formulário de consulta sobre borninstorms. Por fim, ele conclui dizendo que agora vão começar a responder as perguntas da plateia.
Algo Trading Zerodha | Algo Trading in Indian Markets with Python | Kite Connect API
Algo Trading Zerodha | Algo Trading in Indian Markets with Python | Kite Connect API
  • 2016.10.18
  • www.youtube.com
In this comprehensive tutorial on Algo Trading Zerodha in Indian markets, we explore the power of Zerodha's KiteConnect API and Python programming language t...
 

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!

Trading with Interactive Brokers using Python | By Dr. Hui Liu
Trading with Interactive Brokers using Python | By Dr. Hui Liu
  • 2016.09.29
  • www.youtube.com
Dr. Hui Liu speaks about implementing algorithmic trading strategies in live markets with Interactive Brokers using Python. This webinar is perfect for begin...
 

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.

  • 00:00:00 O Dr. Yves J. Hilpisch se apresenta e fornece algumas informações básicas sobre seu trabalho. Ele é o fundador e sócio-gerente do Python Course Group, que se concentra em Python e outras tecnologias de código aberto usadas no setor financeiro, especificamente nas áreas de finanças computacionais e ciência de dados financeiros. O Dr. Hilpisch é 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 no navegador. Ele mencionou brevemente que seu novo livro seria lançado ainda este ano e também mencionou o início de uma rede global de quants e empresas Python chamada TPQ.

  • 00:05:00 O Dr. Yves J. Hilpisch inicia o webinar com uma discussão sobre como ele recebeu um número crescente de consultas perguntando como usar melhor o Python em finanças e destacando que muitas start-ups são um público específico que procura atrair pessoas para construir Python para finanças. Hilpisch apresenta uma nova capacidade de baixar dados históricos da Comm Trading Platform e compartilha os três tópicos principais que o webinar abordará, como 1) como baixar dados históricos, 2) como codificar e testar uma estratégia de negociação e 3) como trabalhar com dados de streaming — um requisito crítico para negociação algorítmica. Hilpisch mantém o tópico simples e tenta transmitir as ideias subjacentes e a explicação das etapas necessárias para implementar essas etapas únicas e compartilha como sem dados e, posteriormente, backtesting, você não pode ter nenhuma estratégia de negociação sensata.

  • 00:10:00 O Dr. Yves Hilpisch discute a recuperação de dados demonstrando como recuperar dados históricos de um instrumento, especificamente o índice alemão DAX. Os usuários podem selecionar um instrumento entre mais de 100 opções diferentes, incluindo pares de moedas e commodities como ouro ou prata. O comando resulta em um objeto JSON contendo duas observações: abrir, fechar e lance. Hilpisch observa que, como duas observações diárias não são suficientes para o backtesting, ele mostrará como recuperar dados por um período mais longo. Ao gerar um conjunto de dados com mais de duas observações diárias e armazená-lo em disco, os usuários podem recuperar rapidamente essas informações sem ter que perder tempo recuperando-as.

  • 00:15:00 Dr. Yves J. Hilpisch demonstra como recuperar e armazenar dados do mercado financeiro usando Python. Os dados são recuperados em blocos e anexados a um objeto DataFrame, que é armazenado em formato binário. Ele enfatiza a importância dos dados no backtesting e como isso permite o julgamento das estratégias de negociação. Além disso, ele mostra um exemplo de uma estratégia de negociação simples, baseada em duas tendências diferentes, e como calcular os retornos logarítmicos como base para julgamento de desempenho posterior. A estratégia de negociação é apenas um exemplo, e sua apresentação visa demonstrar as ferramentas e técnicas Python disponíveis para negociação automatizada.

  • 00:20:00 O palestrante explica uma estratégia de negociação simples usando duas médias móveis, uma mais curta (5 minutos) e outra mais longa (15 minutos), para gerar sinais de quando comprar ou vender o ativo. Se a tendência mais curta cruzar a tendência mais longa por baixo, é um sinal para comprar, e se a tendência mais curta cruzar a tendência mais longa por cima, é um sinal para vender. O palestrante alerta que isso não é um conselho de investimento e enfatiza o uso de um backtest para ver como a estratégia se comportou no passado. O palestrante também mostra como implementar a estratégia em Python usando uma abordagem vetorizada, tornando-a eficiente e concisa.

  • 00:25:00 Dr. Yves J. Hilpisch discute como calcular o desempenho de uma estratégia de negociação usando os retornos calculados anteriormente. Ao pegar a posição inserida anteriormente e multiplicá-la pelo retorno realizado, os traders podem determinar o desempenho de sua estratégia de negociação. Usando o exemplo de investir muito no mercado e esperar por um dia, os traders podem multiplicar sua posição pelo retorno diário do mercado. Ao combinar a posição anterior e o retorno atual, os traders podem avaliar o desempenho de sua estratégia de negociação em um período de tempo específico, alertando que um desempenho positivo não é uma garantia para todos os períodos. Ele também dá uma palavra de cautela sobre testar a estratégia de negociação para evitar viés na amostra e a possibilidade de que a estratégia de negociação não seja uma boa escolha para implementar.

  • 00:30:00 O Dr. Yves J. Hilpisch discute o desvio padrão dos retornos para uma estratégia de investimento de mercado versus uma estratégia de sinalização de investimento baseada em tendências, ambas baseadas em blocos de minutos. A estratégia baseada em tendências demonstrou desvios padrão mais baixos de retornos, e o Dr. Hilpisch enfatiza a importância de trabalhar com dados de streaming ao implementar uma estratégia de negociação automatizada. Ele demonstra o uso da API Plotly para gerar gráficos em tempo real e discute a necessidade de um sistema que possa processar e tomar decisões comerciais com base em dados em tempo real.

  • 00:35:00 O Dr. Yves J. Hilpisch demonstra o uso de uma API falsa que gera dados no mesmo formato de uma API real em tempo real. Os dados são coletados e mostrados em um objeto dataframe, que pode ser visualizado usando uma área de visualização interativa. Embora a demonstração atual não seja verdadeiramente streaming, o Dr. Hilpisch observa que pode ser feita para transmitir com um pouco mais de esforço, instanciando objetos adicionais e incorporando-os no Notebook de Júpiter. Ele fornece um exemplo de loop for que coleta dados de uma API e os mostra na área de visualização interativa em tempo real, ponto a ponto.

  • 00:40:00 Dr. Yves Hilpisch discute negociação automatizada usando dados em tempo real ou streaming. Ele apresenta duas funções, "comprar" e "vender", que são usadas para fazer ordens de mercado e exigem o número de unidades que estão sendo negociadas. A classe utilizada para negociação é a "TrendTrader" que se baseia em estratégias de seguimento de tendências. Essa classe herda da classe streamer da API Wonder e inclui atributos personalizados, como um objeto de quadro de dados vazio e o número de tiques definido como 0 no início. A primeira e a segunda tendência também podem ser definidas como parâmetros.

  • 00:45:00 O Dr. Yves J. Hilpisch discute como o método onsuccess é chamado quando novos dados são recebidos da API de streaming, que pode vir esporadicamente em vez de em intervalos regulares. Os dados são então anexados a um quadro de dados instanciado anteriormente e convertido para o fuso horário europeu. Duas tendências, t1 e t2, são calculadas com base em observações de curto e longo prazo. Se a tendência de curto prazo estiver acima da tendência de longo prazo e o trader não estiver investido, ele compra o número especificado de unidades e define o sinalizador não investido como falso. Por outro lado, se a tendência de curto prazo for inferior ou igual à tendência de longo prazo e o trader estiver investido, ele venderá. O Dr. Hilpisch menciona que, embora essa estratégia possa não ser sensata, seu foco é ilustrar como o processo funciona. O método on error também é discutido, que detecta quaisquer erros que possam ocorrer e desconecta do streaming da API.

  • 00:50:00 Yves Hilpisch mostra como implementar uma estratégia de negociação automática usando Python. Ele demonstra como um programa Python pode gerar automaticamente ordens de compra e venda com base na comparação de médias de dados de cinco e 15 ticks. Ele enfatiza que a negociação algorítmica requer a fusão de habilidades em finanças e tecnologia, compreensão dos mercados, estatísticas de big data e automação. O vídeo fornece um recurso educacional para pessoas interessadas na gama de operações e habilidades necessárias para uma carreira de negociação algorítmica bem-sucedida.
Automated Trading with Python | Webinar by Dr. Yves J. Hilpisch
Automated Trading with Python | Webinar by Dr. Yves J. Hilpisch
  • 2016.02.15
  • www.youtube.com
The video is a recording of the webinar "Automated Trading with Python" which was conducted on 10th February 2016. The webinar aimed at introducing the audie...
 

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.

Algorithmic Trading Using Python - Introduction
Algorithmic Trading Using Python - Introduction
  • 2021.03.12
  • www.youtube.com
This is the first video of my algorithmic trading tutorial series in which you will learn everything you need to know to start writing your own trading bots ...
 

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.

Algorithmic Trading Using Python #2
Algorithmic Trading Using Python #2
  • 2021.03.19
  • www.youtube.com
In this 2nd video of this algorithmic trading course, you will learn all about the algorithm development process on a conceptual level. We will cover everyth...
 

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:

  1. 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.

  2. 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.

  3. Suavize as séries de ganhos e perdas substituindo valores negativos por zeros e valores positivos por seus valores absolutos.

  4. 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).

  5. Calcule a força relativa (RS) dividindo o ganho médio pela perda média.

  6. 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.

How to Use Support Resistance Levels and RSI for Profitable Currency Trading
How to Use Support Resistance Levels and RSI for Profitable Currency Trading
  • 2023.05.11
  • www.youtube.com
In this Python FOREX and currency trading tutorial, we will show you how to use the Relative Strength Index (RSI) and Support/Resistance Levels for profitabl...
 

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.

Moving Average And VWAP Trend Strategies Backtest In Python
Moving Average And VWAP Trend Strategies Backtest In Python
  • 2023.04.20
  • www.youtube.com
In this video, we compare VWAP and Moving Average indicators for trading and Algorithmic trading. We use both indicators to build a trading bot, backtesting ...
 

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.
Master Price Action Trading with Automated Doji and Engulfing Patterns using Python
Master Price Action Trading with Automated Doji and Engulfing Patterns using Python
  • 2023.03.25
  • www.youtube.com
In this informative video, we will explore the power of price action patterns in combination with Bollinger Bands for trading strategy backtesting. Specifica...
 

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:

  1. Carregue os dados de preços históricos.
  2. Defina os parâmetros para a estratégia, como o período para calcular o intervalo médio verdadeiro (ATR) e o múltiplo para definir o nível de lucro.
  3. Itere sobre cada vela no quadro de dados.
  4. Verifique se há um sinal de fuga. Uma quebra ocorre quando o preço excede o limite superior ou inferior do canal.
  5. Se houver um sinal de rompimento e nenhuma negociação estiver aberta no momento, insira uma nova negociação com base no sinal. Para um rompimento de alta, compre o ativo e, para um rompimento de baixa, venda o ativo.
  6. Calcule o tamanho da negociação com base no patrimônio disponível. Por exemplo, você pode definir o tamanho da negociação como uma porcentagem do patrimônio líquido, como 10%.
  7. Defina o nível de stop loss com base no limite do canal anterior. Para um rompimento de alta, o stop loss é definido abaixo do limite inferior do canal e, para um rompimento de baixa, o stop loss é definido acima do limite superior do canal.
  8. Defina o nível de lucro com base no preço atual e no ATR. Multiplique o ATR por um múltiplo, como 2, e adicione-o ao preço atual para uma fuga de alta ou subtraia-o do preço atual para uma fuga de baixa.
  9. Acompanhe o andamento do comércio. Atualize os níveis de stop loss e take profit à medida que o preço se move a seu favor. Isso pode envolver ajustar o stop loss para bloquear os lucros ou rastrear o stop loss atrás do preço.
  10. Se o preço atingir o nível de stop loss ou take profit, feche a negociação e registre o resultado (lucro ou prejuízo).
  11. Repita as etapas 5 a 10 para cada sinal de rompimento e atualize o tamanho da negociação, pare a perda e obtenha os níveis de lucro de acordo.
  12. Calcule e imprima as métricas gerais de desempenho, como 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.

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.

Strategy BackTest Of Price Channel Break Out In Python
Strategy BackTest Of Price Channel Break Out In Python
  • 2023.03.10
  • www.youtube.com
This is a continuation of the previously released video (https://youtu.be/Bnv7euL-FxM) on price channels break out. This is a full strategy backtest sample s...