Interactive Brokers Forex Api


Usando o IBridgePy para implementar o Python na Interactive Brokers API No artigo anterior sobre o Tutorial do IBPy para implementar o Python na Interactive Brokers API. Eu falei sobre Interactive Brokers, sua API e implementando códigos Python usando o IBPy. Neste artigo, falarei sobre a implementação do Python na API C do IB8217s usando um invólucro, escrito pelo Dr. Hui Liu. Sobre o Dr. Hui Liu O Dr. Hui Liu é o fundador da Running River Investment LLC, que é um fundo de hedge privado especializado no desenvolvimento de estratégias de negociação automatizadas usando o Python. Hui é o autor da IBridgePy, uma famosa plataforma de negociação Python que permite aos comerciantes implementar suas estratégias comerciais rapidamente. O Dr. Hui Liu obteve o diploma de bacharel e mestrado em ciência e engenharia de materiais da Universidade de Tsinghua, China e Ph. D. da Universidade da Virgínia, EUA. Seu MBA era da Universidade de Indiana, U. S.A e seu interesse em Indiana era análise quantitativa. Dr. Lius IBridgePy é o invólucro que irá ajudá-lo a trocar na Interactive Brokers API usando Python, em vez de IBPy ou Quantopian. A QuantInsti hospedou um webinar altamente bem-sucedido sobre esse assunto e tivemos um número recorde de registrantes (1000) atendidos no webinar que foi conduzido pelo próprio Dr. Liu. Estarei compartilhando o link para o webinar no final deste artigo. IBridgePy é um dos pacotes Python mais flexíveis e amigáveis ​​que podem ser usados ​​para implementar a API do Python on Interactive Brokers. É bem diferente do IBPy. Bem, é uma implementação de terceiros da Interface de Programação de Aplicativos que é usada para acessar o IBs Trader Workstation. Embora o IBridgePy funcione de forma diferente, não re-implementa a API de intermediários interativos. Em vez disso, ajuda a Python a chamar IBs C API diretamente, pois atua como um wrapper. Como o IBridgePy chama a API do IBs diretamente, portanto, podemos esperar menos número de erros e exceções no programa. Por uma razão simples: a Interactive Brokers C API é oficialmente mantida pela Interactive Brokers. Na verdade, quando a Interactive Brokers terá uma nova versão de sua plataforma, a API também será atualizada. Quais são os benefícios do uso do IBridgePy. IbridgePy tem algumas características-chave que o tornam mais benéfico para os usuários e vou listá-los como: Flexibilidade A melhor coisa sobre o IBridgePy é o fato de que você pode usá-lo para trocar qualquer tipo de títulos. Você pode negociar ações, futuros, opções, divisas, etc. Uma das motivações do Dr. Lius para desenvolver o IBridgePy foi tornar a aplicação flexível. Quantopian permite que você troca apenas em ações e a freqüência de tempo para negociação é de apenas dois minutos. No IBridgePy, você pode usar qualquer pacote de python e acessar a fonte de dados de qualquer lugar. Fácil de usar As complexidades da Interactive Brokers API foram completamente eclipsadas pela interface amigável do IBridgePy. Você não terá que colocar esforços extras para gerenciar suas ordens pendentes ou escrever códigos para obter dados ou citações históricas do servidor, já que o wrapper cuida disso. A privacidade é muito importante e um dos fatores negligenciados em momentos em que você distribui suas credenciais para um programa de terceiros que está sendo executado em um servidor diferente. No entanto, o IBridgePy está sendo executado no seu computador, portanto sua privacidade está totalmente sob seu controle. Quem deve usar o IBridgePy Pessoas que estão em negociação automatizada Quem deseja usá-lo como um comerciante ou agente de estoque Como instalar o IBridgePy Em primeiro lugar, você terá que enviar um e-mail para o ibridgepygmail solicitando a aplicação autônoma. Você receberá o link de download por e-mail. Baixe o arquivo comprimido (.zip) e extraie-o em sua pasta local. Pré-requisitos Você deve ter os seguintes programas instalados em seu sistema: Interactive Brokers TWS. Nós discutimos em detalhes como instalar o Interactive Brokers TWS no artigo anterior. Alternativamente, você também pode usar o IB Gateway (que vem junto com o TWS). Você também deve ter um pacote python instalado no seu sistema. Estou usando Anaconda, no entanto, o Dr. Liu recomendou o uso do Python (XY), que é um IDE científico para o Python, que é executado apenas no Windows. Você deve ter IbridgePy (e o conjunto de programas de exemplo) que você pode obter, escrevendo um pedido para o e-mail IbridgePy8217s mencionado acima. Gateway TWS ou IB Tanto o TWS como o Gateway podem ser usados ​​para trocar. Se você é relativamente novo no comércio, então eu recomendaria o TWS, pois é mais amigável. No entanto, se você quiser economizar tempo e evitar o reinício do sistema IB, vá para o Gateway IB. Seguiremos os mesmos passos que no artigo anterior. Quando a tela de login for exibida, verifique o IB Gateway e prossiga. Quando o IB Gateway é aberto, nós vamos à sua configuração, como fizemos com o TWS. Isto será seguido pela configuração manual do IB Gateway. Em seguida, clique em Configurações. Embora não haja nada a mudar aqui, podemos configurar a porta de acordo com sua necessidade, embora não seja recomendada. Também definiremos o TWS, como fizemos no artigo anterior. Reinicie TWS depois de configurá-lo. Preparando o IDE O próximo passo importante neste tutorial é preparar o IDE dos Pythons. Se você estiver usando Python (XY), então você deve iniciar o executável e executar o Spyder a partir daí: uma vez que o Spyder seja iniciado e siga estas etapas: Executando o Programa de exemplo Clique em RUNME. py no Spyder IDE clicando em Arquivo e depois em Abrir. RUNME. py é o programa que você pode executar como a entrada, mas examplemovingaveragecross. py é o arquivo onde a estratégia comercial é mantida. Depois disso, assegure-se de efetuar login no IB TWS ou no gateway IB. Pressione o triângulo verde ou pressione F5. Decodificando a Estrutura do Código Assim como eu discuti sobre a estrutura do programa em meu artigo anterior, vou falar sobre a estrutura do código aqui também. Definimos initialize () que é um método interno para reivindicar variáveis ​​que só serão executadas uma vez. Em seguida, definimos handledata (). Que também é um método interno onde a decisão comercial é tomada. Duas entradas são fornecidas aqui (contexto, dados). Contexto contém as variáveis ​​reivindicadas no inicializado (). Enquanto os dados são o feed ao vivo recebido diariamente ou minuciosamente. Linha 19: Você pode escolher um algoritmo que deseja executar comentando outros. Linha 20: Código de conta do seu Interactive Brokers. Linha 21: A freqüência ou a frequência da função de handledata (contexto, dados), 60 significa executá-lo a cada minuto E 1 significa executá-lo a cada segundo. Linha 22: Existem 4 níveis para mostrar os resultados ERRO: mostre apenas mensagens de erro INFO: usuários típicos usarão para conhecer os resultados do seu algo DEBUG: você pode saber mais informações quando você depurar o seu algo NOTSET: você verá uma enorme informação se Você realmente quer saber o que está acontecendo The 3 Corner Stones of IBridgePy Aqui estão três das mais incríveis funções embutidas que formam as pedras angulares de IbridgePy: Showrealtimeprice Requestdata Placing Order Cotações em tempo real Na linha acima, você verá a Os parâmetros utilizados são DINHEIRO, EUR, USD, que retornará com as taxas de câmbio em tempo real para as moedas especificadas. Da mesma forma, você pode usar STK, AAPL, USD e o valor do estoque de APPLEs em dólares americanos. O STK é o tipo de segurança, que discutimos em detalhes no artigo anterior sobre Implementando o Python na Interactive Brokers API usando o IBPy. Obtendo Dados Históricos requestdata é a função que é usada para obter dados históricos de Interactive Brokers. Você também precisará especificar um histórico de parâmetros. Parâmetros envolvidos Usando os parâmetros selecionamos o instrumento para o qual os dados históricos precisam ser obtidos, no exemplo acima é SPY que é um rastreamento ETF no índice SampP500 Em seguida, especificamos o intervalo de tempo, no nosso exemplo é 1 dia, vá O período de retorno é o próximo parâmetro onde especificamos o período de dados históricos que é necessário. No nosso exemplo, é 50 D significa voltar 50 dias a partir de hoje. Os dados históricos recuperados são salvos em um banco de dados de pandas que são salvos no hist, um atributo da DataClass, salvo em um dicionário chamado dados. Solicitando vários dados históricos Assim como você solicitou dados históricos dos Interactive Brokers por um período de tempo específico, você também pode buscar vários dados históricos ao mesmo tempo. Olhe para o código abaixo: Eu especifiquei SPY e AAPL e o intervalo de tempo especificado é 1 min (1 minuto) e 1 dia, respectivamente. O período especificado é 1 D amp 10 D (D dias), respectivamente. Da mesma forma, especificamos os requisitos na função de saída também. A ordem de colocação de saída A colocação de pedidos é o passo importante em todo o nosso processo e aqui é como colocamos o pedido em Interactive Brokers usando IBridgePy: Coloque pedidos de mercado: ordem (símbolo (segurança), x) Aqui a segurança é a segurança de destino, por exemplo, SPY e X é o número de ações. X significa VENDA e x significa COMPRAR. Por exemplo, ordem (símbolo (SPY), 100) A segurança de destino é SPY A ação é COMPRAR 100 partes quando n gt 0 Se for -100, então o número negativo significa SELL, -100 VENDER 100 partes ordertarget (símbolo (SPY ), 100) ajustará as posições com base em suas posições de participação por COMPRAR ou VENDER até que você detenha 100 ordens da Ordem do Local LimitStop (símbolo (SPY), 100, LimitOrder (213.42)), faça uma ordem limite para comprar 100 ações da SPY em Preço 213,42 por pedido de ação (símbolo (SPY), -100, StopOrder (213,42)) faça uma ordem de parada PARA VENDER 100 ações da SPY no preço 213,42 por ação. É altamente recomendável acompanhar o status da ordem que você colocou por Usando orderstatusmonitor () Assim como no tutorial anterior, nós especificamos um orderId, aqui também especificamos uma função orderId, que é a identidade única de seus pedidos de pedidos. Para ordens de mercado, você deve esperar preenchido como o ponto final do pedido do seu pedido, o que significa que as ordens foram executadas no Interactive Brokers. Para ordens de limite e parada, o status esperado é Enviado, o que significa que as ordens foram aceitas pelo IB e aguardando execuções. Para títulos de liquidez elevados, não levará muito tempo (alguns segundos) para completar as transações. A IbridgePy. Tradersingleaccount é o nome do módulo e é seguido por uma SOLIDAÇÃO para comprar 100 ações. Isto é seguido pelo saldo da conta. Você pode assistir a gravação do webinar Dr. Hui Liu8217s aqui. Este é um tutorial relativamente simples e pode ser facilmente compreendido se você já passou pelo nosso artigo anterior. Gostaríamos que você tentasse usar o IBridgePy para negociar em Interactive Brokers e ver qual deles é mais fácil - IBPy ou IBridgePy. Esperamos seus comentários. Entretanto, gostaríamos também de lhe dizer que estaremos discutindo sobre outra API chamada KiteConnect, que também será usada para trocar usando o Python sem estar vinculada a algumas plataformas de negociação. Você pode ler mais sobre como usar o Python para negociação algorítmica aqui e é preferida por programadores em todo o mundo. Se você quiser saber mais sobre negociação algorítmica e financiamento quantitativo, então você deve se registrar para uma chamada gratuita do nosso especialista em EPAT, inscrevendo-se aqui. Artigos relacionados: O IB fornece aos seus titulares de contas uma variedade de plataformas de negociação proprietárias sem nenhum custo e, portanto, não promove ou oferece ativamente plataformas ou softwares adicionais de outros fornecedores. No entanto, como plataforma de negociação principal do IBs, a TraderWorkstation (TWS), opera com uma API aberta, existem inúmeros fornecedores terceirizados que criam entradas de pedidos, gráficos e vários outros programas analíticos que operam em conjunto com o TWS para fins de execução de pedidos Através do IB. À medida que essas especificações da API são tornadas públicas, não estamos necessariamente conscientes de todos os fornecedores que criam aplicativos para se integrarem ao TWS, mas operam um programa denominado Mercado de Investidores que atua como uma comunidade de auto-atendimento que reúne fornecedores de terceiros que tenham Produtos e serviços para oferecer aos clientes do IB que buscam preencher uma necessidade específica. Enquanto o MetaQuotes Software não é um participante do IBs Investors Marketplace, em colaboração com o OneZero Financial System, eles oferecem o oneZero Hub Gateway para conectar o MetaTrader 5 ao TWS. Os clientes interessados ​​teriam que entrar em contato com OneZero diretamente para assistência adicional. Consulte a seção Contato do seguinte URL. Nota: Além do OneZero Hub Gateway, diferentes fornecedores como o Trade-Commander e o jTWSdata também oferecem um software que eles representam, atua como uma ponte entre o MetaTrader 45 e o TWS. Como é o caso de outros aplicativos de software de terceiros, a IB não está em condições de fornecer informações ou recomendações quanto à compatibilidade ou operação de tal software.

Comments