Monday, 2 April 2018

Fxcm forexconnect api


API Trading.
Conecte-se diretamente ao Servidor de Preços da FXCM.
A ação de preços muda rapidamente e você precisa de uma API confiável para conectar seu software ao mercado. Nossas opções de conectividade minimizam a latência e maximizam sua experiência comercial com dados históricos e de upload gratuitos. FIX, JAVA, ForexConnect: quais são as suas necessidades de API? Saber mais.
Entre em contato com nossos Especialistas em API.
Nossos especialistas podem dar-lhe um demo gratuito habilitado para API e orientá-lo através das suas opções de API. Não é necessário nenhum compromisso.
Obrigado, sua informação foi recebida.
Entraremos em contato com você em breve para orientá-lo através de suas opções de API com FXCM.
O registro de demonstração está atualmente em baixo para manutenção programada.
Suas credenciais de login de demonstração serão enviadas por e-mail após a conclusão da manutenção agendada do fim de semana.
Comerciantes algorítmicos.
Construí o seu próprio indicador e quer testar a estratégia? Nossa API do Marketscope é para você.
API ForexConnect.
Precisa implementar taxas e informações da conta? Confira a API ForexConnect.
Tem sua própria corretora? Então você exige o mais alto nível de tecnologia com o FIX.
Os clientes que trocam volume nocional com uma média de 500K por mês nos 3 meses anteriores terão o custo do serviço VPS reembolsado. No início do mês (entre 1 e 15), uma taxa de 30 moedas básicas (3k JPY, 240 HKD) será debitada de qualquer das suas conta (s) da FXCM para cobrir o custo do VPS.
Aviso de Risco: Nosso serviço inclui produtos que são negociados na margem e correm risco de perdas em excesso de seus fundos depositados. Os produtos podem não ser adequados para todos os investidores. Certifique-se de que compreende perfeitamente os riscos envolvidos.
Sobre a FXCM.
Plataformas Populares.
Lançamento do software.
Mais recursos.
Serviço ao cliente.
Políticas FXCM.
Aviso de investimento de alto risco: o trading forex / CFD's na margem comporta um alto nível de risco e pode não ser adequado para todos os investidores, pois poderá sofrer perdas em excesso de depósitos. A alavancagem pode funcionar contra você. Os produtos são destinados a clientes profissionais e de varejo. Devido às certas restrições impostas pela legislação e regulamentação locais, os clientes minoristas residentes na Alemanha podem sustentar uma perda total de fundos depositados, mas não estão sujeitos a obrigações de pagamento subsequentes além dos fundos depositados. Esteja ciente e compreenda todos os riscos associados ao mercado e à negociação. Antes de negociar quaisquer produtos oferecidos pela Forex Capital Markets Limited, incluindo todas as agências da UE, a FXCM Australia Pty. Limited, quaisquer afiliadas de empresas acima mencionadas ou outras empresas do grupo de empresas FXCM [coletivamente o "Grupo FXCM"], considerem cuidadosamente sua situação financeira e seu nível de experiência. Se você decidir comercializar produtos oferecidos pela FXCM Australia Pty. Limited ("FXCM AU") (AFSL 309763), você deve ler e entender o Guia de Serviços Financeiros, a Declaração de Divulgação do Produto e os Termos de Negócios. O Grupo FXCM pode fornecer comentários gerais que não se destinam a conselho de investimento e não devem ser interpretados como tais. Procure um conselho financeiro separado. O Grupo FXCM não assume qualquer responsabilidade por erros, imprecisões ou omissões; não garante a precisão, integridade das informações, texto, gráficos, links ou outros itens contidos nesses materiais. Leia e compreenda os Termos e Condições nos sites do Grupo FXCM antes de tomar novas medidas.
O Forex Capital Markets Limited ("FXCM LTD") é uma subsidiária operacional do grupo de empresas FXCM (coletivamente, o "Grupo FXCM"). Todas as referências neste site para "FXCM" referem-se ao Grupo FXCM.
O Forex Capital Markets Limited é autorizado e regulamentado no Reino Unido pela Autoridade de Conduta Financeira. Número de registro 217689.
Tratamento tributário: o tratamento fiscal do Reino Unido das suas atividades de apostas financeiras depende das circunstâncias individuais e pode estar sujeito a alterações no futuro, ou pode diferir em outras jurisdições.
Direitos autorais e cópia; 2018 Forex Capital Markets. Todos os direitos reservados.
Companhia incorporada em Inglaterra e Wales No.04072877 com sede social como acima.
Utilizamos cookies para melhorar o desempenho e a funcionalidade do nosso site, o que, em última análise, melhora a sua experiência de navegação. Ao continuar a navegar neste site, você concorda com o uso de cookies. Você pode alterar suas configurações de cookies a qualquer momento. Esse website utiliza cookies. Ao continuar a usar este site, você concorda com isso. Saber mais.
Seu navegador está desatualizado!
Atualize seu navegador agora para ver este site corretamente. Atualize meu navegador agora ou visite esta página no seu celular ou tablet.

API Trading.
Como faço para obter uma conexão de API?
A FXCM oferece três tipos de conexões de API: FIX, JAVA e Forexconnect. Para obter uma documentação detalhada sobre as comparações da API, visite as Ofertas de API da FXCM & hellip;
Pesquise por Categoria:
Guia do produto.
Contas.
Sobre a FXCM.
Plataformas Populares.
Lançamento do software.
Mais recursos.
Serviço ao cliente.
Políticas FXCM.
Aviso de investimento de alto risco: o trading forex / CFD's na margem comporta um alto nível de risco e pode não ser adequado para todos os investidores, pois poderá sofrer perdas em excesso de depósitos. A alavancagem pode funcionar contra você. Os produtos são destinados a clientes profissionais e de varejo. Devido às certas restrições impostas pela legislação e regulamentação locais, os clientes minoristas residentes na Alemanha podem sustentar uma perda total de fundos depositados, mas não estão sujeitos a obrigações de pagamento subsequentes além dos fundos depositados. Esteja ciente e compreenda todos os riscos associados ao mercado e à negociação. Antes de negociar quaisquer produtos oferecidos pela Forex Capital Markets Limited, incluindo todas as agências da UE, a FXCM Australia Pty. Limited, quaisquer afiliadas de empresas acima mencionadas ou outras empresas do grupo de empresas FXCM [coletivamente o "Grupo FXCM"], considerem cuidadosamente sua situação financeira e seu nível de experiência. Se você decidir comercializar produtos oferecidos pela FXCM Australia Pty. Limited ("FXCM AU") (AFSL 309763), você deve ler e entender o Guia de Serviços Financeiros, a Declaração de Divulgação do Produto e os Termos de Negócios. O Grupo FXCM pode fornecer comentários gerais que não se destinam a conselho de investimento e não devem ser interpretados como tais. Procure um conselho financeiro separado. O Grupo FXCM não assume qualquer responsabilidade por erros, imprecisões ou omissões; não garante a precisão, integridade das informações, texto, gráficos, links ou outros itens contidos nesses materiais. Leia e compreenda os Termos e Condições nos sites do Grupo FXCM antes de tomar novas medidas.
O Forex Capital Markets Limited ("FXCM LTD") é uma subsidiária operacional do grupo de empresas FXCM (coletivamente, o "Grupo FXCM"). Todas as referências neste site para "FXCM" referem-se ao Grupo FXCM.
O Forex Capital Markets Limited é autorizado e regulamentado no Reino Unido pela Autoridade de Conduta Financeira. Número de registro 217689.
Tratamento tributário: o tratamento fiscal do Reino Unido das suas atividades de apostas financeiras depende das circunstâncias individuais e pode estar sujeito a alterações no futuro, ou pode diferir em outras jurisdições.
Direitos autorais e cópia; 2018 Forex Capital Markets. Todos os direitos reservados.
Companhia incorporada em Inglaterra e Wales No.04072877 com sede social como acima.
Utilizamos cookies para melhorar o desempenho e a funcionalidade do nosso site, o que, em última análise, melhora a sua experiência de navegação. Ao continuar a navegar neste site, você concorda com o uso de cookies. Você pode alterar suas configurações de cookies a qualquer momento. Esse website utiliza cookies. Ao continuar a usar este site, você concorda com isso. Saber mais.
Seu navegador está desatualizado!
Atualize seu navegador agora para ver este site corretamente. Atualize meu navegador agora ou visite esta página no seu celular ou tablet.

Fxcm forexconnect api
Obter através da App Store Leia esta publicação em nosso aplicativo!
O que os Serviços Forex suportam a API ForexConnect?
Eu preciso do acesso da API para obter tickers ForEx e livros de pedidos para pares de moedas. Pelo que posso dizer, existe uma API chamada ForexConnect que posso usar para obter esses dados. Agora, de onde posso obter esses dados? Quais serviços oferecem suporte a essa interface?
ForexConnect é uma API para FXCM.
Mais informações podem ser encontradas neste PDF:
ForexConnect é uma API usada pelo corretor da FXCM. Você pode abrir uma conta de demonstração lá para se conectar.

Fxcm forexconnect api
Puxe pedidos 0.
Participe do GitHub hoje.
O GitHub é o lar de mais de 20 milhões de desenvolvedores que trabalham juntos para hospedar e rever o código, gerenciar projetos e criar software juntos.
Clone com HTTPS.
Use o Git ou o check-out com o SVN usando o URL da web.
Nossa API REST é uma API baseada na web usando uma conexão Websocket e foi desenvolvida com o comércio algorítmico em mente.
Desenvolvedores e investidores podem criar aplicativos de negociação personalizados, integrar-se à nossa plataforma, testar estratégias de teste e construir negócios de robôs. As chamadas podem ser feitas em qualquer idioma que suporte um HTTP padrão.
Utilizamos a nova especificação OAuth 2.0 para autenticação via token. Isso permite uma autorização mais segura para acessar seu aplicativo e pode ser facilmente integrada com aplicativos da web, dispositivos móveis e plataformas de desktop.
Com o uso da biblioteca socket. io, a API possui capacidade de transmissão e enviará notificações de dados em formato JSON. Sua aplicação terá acesso aos nossos dados de mercado de transmissão em tempo real, assinatura em tempo real de acesso a tabelas de negociação e colocação de negócios ao vivo.
Para começar a usar nossa API, você precisará do seguinte:
Uma conta FXCM. Você pode solicitar uma conta demo aqui Um token de acesso persistente. Você pode gerar um da web da Trading Station. Clique em Conta de usuário & gt; Token Management na parte superior direita do site. Baixe a documentação Rest API aqui Documentação no formato Swagger aqui Comece a codificação. Você precisará fazer referência à biblioteca socket. io no seu código. uma. Usando o Javascript, clique aqui b. Usando Python, clique aqui Código de exemplo para o Python aqui Código de exemplo para Java Script aqui.
Exceto RestAPI, a FXCM oferece 3 outras APIs de negociação gratuitamente: API Java, FIX API e ForexConnect, cada uma delas conectando-se diretamente ao servidor de negociação da FXCM.
A API FIX é o protocolo FIX padrão projetado para interface institucional personalizada em tempo real que impulsiona até 250 atualização de preços por segundo (não disponível em outras APIs). É a nossa opção mais rápida e popular. Você obterá toda a gama de tipos de pedidos comerciais disponíveis na FXCM. É necessária uma conta FXCM TSII com um saldo mínimo de US $ 5,000.
A API de Java, uma SDK de FIX do wrapper, fornece aos clientes uma API programável totalmente funcional na plataforma de negociação FXCM, incluindo transmissão de preços ao vivo, obtenha preço histórico e negócios ao vivo. É escalável, leve e robusto, o que é compatível com qualquer sistema operacional compatível com Java.
A ForexConnect API oferece todas as mesmas funcionalidades da poderosa estação de comércio FXCM. Isso inclui todos os tipos de pedidos disponíveis, transmissão de preços ao vivo, gerenciamento de suas posições, download de taxas históricas do instrumento, obtenção de relatórios de contas e muito mais. O ForexConnect suporta C ++, C #, Java, VB, VBA, compatível com, Linux, iOS e Android, e é GRATUITO.
*Dependente do mercado. Se o mercado for volátil, poderá receber mais preços por segundo.
** Requer uma conta padrão.
*** Uma conta FXCM com um saldo mínimo de US $ 5.000 necessário.
Saiba como executar o BT backtest nos dados históricos da FXCM através da RestAPI aqui. O que é bt? Saiba como executar o QSTrader em dados FXCM via RestAPI aqui. O que é QSTrader? Lean como construir / voltar teste 3 estratégias "MovingAverageCrossStrategy", "BollingerBandStrategy", "DonchianChannelStrategy" via FXCM Rest API aqui. Mais duas estratégias "RangeStrategy", "BreakOutStrategy" aqui. Estratégia RSI de teste de construção / volta via RestAPI aqui. Um vídeo demonstra como fazer backtest em Visual Studio através de dados FXCM Na plataforma QuantConnect LEAN aqui.
Como criar testes de sinal e de retorno Rsi usando a API Java FXCM. clique aqui Saiba como criar e testar a estratégia do CCI Oscillator usando a API Java aqui. Lean como construir e testar a estratégia Breakout usando Java API aqui. Lean como construir e voltar testar a Estratégia estocástica da gama usando a API Java aqui. Lean como construir e voltar testar a Estratégia de Reversão Média usando a API Java aqui.
Saiba como criar e testar os sinais Rsi usando a ferramenta ForexConnect aqui. Saiba como criar e testar a estratégia CCI Oscillator usando a ferramenta ForexConnect aqui. Saiba como construir e testar a estratégia Breakout usando a ferramenta ForexConnect aqui. Saiba como criar e testar a Estratégia estocástica da escala usando a ferramenta ForexConnect aqui. Saiba como construir e testar a Estratégia de Reversão Média usando a Ferramenta ForexConnect aqui.
&cópia de; 2018 GitHub, Inc. Termos Privacidade Segurança Status Ajuda.
Você não pode executar essa ação neste momento.
Você fez login com outra guia ou janela. Recarregue para atualizar sua sessão. Você se separou em outra guia ou janela. Recarregue para atualizar sua sessão.

FXCM FXCMAPI.
Informe ou bloqueie FXCMAPI.
Entre em contato com o suporte sobre o comportamento desse usuário.
55 Water St., 50th Floor, Nova Iorque, NY 10041 EUA.
Repositórios fixos.
Com base no FIX Protocol 4.4 projetado para interface institucional personalizada em tempo real que impulsiona até 250 atualização de preços por segundo (não disponível em outras APIs)
Projetado para negociar, recuperar o preço ao vivo / histórico. Destinado a ser usado para construir robôs de negociação automática, negociação personalizada em contas FXCM.
um SDK de FIX do wrapper, oferece aos clientes uma API programável totalmente funcional na plataforma de negociação FXCM, incluindo transmissão em tempo real, obtenha preço histórico e negócios ao vivo.
A API REST é uma API baseada na web usando uma conexão Websocket. Desenvolvedores e investidores podem criar aplicativos de negociação personalizados, integrar-se à nossa plataforma, testar estratégias de teste e construir negócios de robôs.
135 contribuições no último ano.
Atividade de contribuição Salte para o primeiro repositório ingressou no GitHub.
Janeiro de 2018.
Criado 13 compromete-se em 2 repositórios.
Criou 1 repositório.
&cópia de; 2018 GitHub, Inc. Termos Privacidade Segurança Status Ajuda.
Você não pode executar essa ação neste momento.
Você fez login com outra guia ou janela. Recarregue para atualizar sua sessão. Você se separou em outra guia ou janela. Recarregue para atualizar sua sessão.

Como começar a usar o ForexConnect API (Win32 / Win64)
De FxCodeBaseWiki.
Este artigo descreve como começar a usar a API ForexConnect. Aqui, você pode encontrar os princípios básicos da API explicados e instruções passo a passo sobre como criar uma amostra de trabalho de um aplicativo comercial simples.
Plataforma: Microsoft Framework 2.0 e posterior na versão do MS Windows de 32 bits / 64 bits.
IDE: Microsoft Visual Studio 2005, 2008, 2010.
O uso da biblioteca ForexConnect com a estrutura do aplicativo Microsoft Silverlight não é suportado.
A biblioteca ForexConnect que usa o Mono não é suportada.
Obtendo e instalando bibliotecas de API ForexConnect.
Faça o download da última versão da API ForexConnect: se você possui uma versão de 32 bits do Microsoft Windows, baixe a versão de 32 bits da ForexConnect API. Se você possui uma versão de 64 bits do Microsoft Windows, baixe a compilação de 64 bits da ForexConnect API. Consulte a caixa de diálogo Propriedades do sistema para obter informações sobre a versão do seu sistema. Observe que, se seu sistema for o Windows XP e você não virá "Edição x64" na caixa de diálogo Propriedades do sistema, você está executando uma versão de 32 bits do Windows XP. Inicie o instalador e siga as instruções do assistente de configuração. Além disso, vamos supor que a API do ForexConnect esteja instalada em C: \ Arquivos de Programas \ Candleworks \ ForexConnectAPI \.
Usando o ForexConnect API com o Microsoft Visual Studio.
Você deve fazer as seguintes alterações em seu projeto C #:
1. Configure o evento pós-compilação do seu projeto para copiar bibliotecas da API do ForexConnect e arquivos de suporte para a pasta onde seu programa foi criado: no projeto Propriedades & rarr; Construir eventos e rarr; Linha de comando do evento Post-Build, adicione o seguinte texto: copie "C: \ Program Files \ Candleworks \ ForexConnectAPI \ bin \ *. *" "$ (TargetDir)" 2. Adicione uma referência ao assembly fxcore2.dll ao seu projeto . Se você usar 4.0, use o assembly fxcore2.dll apropriado que pode ser encontrado na pasta "C: \ Arquivos de Programas \ Candleworks \ ForexConnectAPI \ bin \ net \ dotnet40 \". Se você usar 2.0, use a montagem fxcore2.dll da pasta "C: \ Arquivos de Programas \ Candleworks \ ForexConnectAPI \ bin \ net \ dotnet20 \". 3. Adicione o namespace fxcore2 ao seu código:
Distribuição.
Você deve distribuir seu programa com todas as bibliotecas binárias e arquivos de suporte de "C: \ Program Files \ Candleworks \ ForexConnectAPI \ bin". As bibliotecas ForexConnect e os arquivos de suporte devem estar localizados na pasta onde seu aplicativo está instalado.
Observe que o assembly fxcore2.dll deve ser colocado na pasta onde seu aplicativo também está instalado.
Recursos da API ForexConnect.
Arquitetura dirigida a eventos.
Todas as APIs utilizadas pelo ForexConnect são assíncronas, então você terá que implementar uma arquitetura baseada em eventos em seu código.
Uma arquitetura baseada em eventos é um padrão de arquitetura de software que gerencia o comportamento de produção, detecção e consumo de eventos, bem como as respostas que eles evocam. Neste contexto, um evento deve ser tratado como algum valor ou mensagem que pode ser identificado dentro de um fluxo contínuo de entradas monitoradas, como condições específicas ou sinais ou qualquer outra coisa.
As arquiteturas baseadas em eventos geralmente consistem em produtores de eventos e consumidores de eventos. Os consumidores de eventos se inscrevem em algum gerente de eventos e os produtores de eventos publicam esse gerente. Quando o gerente recebe um evento de um produtor, encaminha esse evento para todos os consumidores registrados ou armazena o evento para reencaminhamento posterior.
Um manipulador de eventos é uma rotina de retorno de chamada que funciona de forma assíncrona e manipula entradas recebidas em um programa (eventos). Neste contexto, um evento é um elemento significativo de informações de aplicativos de uma estrutura de desenvolvimento subjacente, geralmente a partir de um conjunto de ferramentas gráficas de interface de usuário (GUI) ou algum tipo de rotina de entrada. No lado da GUI, por exemplo, os eventos incluem traços de teclas, atividade do mouse, seleções de ação ou expirações de temporização. No lado da entrada, os eventos incluem abrir ou fechar arquivos e fluxos de dados, ler dados e assim por diante.
O manuseio de eventos é o recebimento de um evento em algum manipulador de eventos de um produtor de eventos e processos subsequentes.
Os processos envolvidos no tratamento de eventos incluem:
Identificando onde um evento deve ser encaminhado; Fazendo a frente; Recebendo o evento encaminhado; Tomando algum tipo de ação apropriada em resposta, como escrever para um registro, enviar um erro ou rotina de recuperação ou enviar uma mensagem; O manipulador de eventos pode, em última instância, enviar o evento para um consumidor de eventos.
O benefício das arquiteturas orientadas para eventos é que eles permitem coleções arbitrariamente grandes de consumidores e produtores, juntamente com algum número de gerentes, para trocar status contínuo e informações de resposta. Eles também são geralmente bastante receptivos aos eventos que ocorrem e funcionam bem em ambientes de comunicação imprevisíveis e assíncronos.
Prevenção ForexConnect Manipulando Peculiaridades.
A API ForexConnect já possui implementações das interfaces IO2GSessionStatus e IO2GResponseListener para receber notificações de mudanças no status da sessão e recebimento de dados. Então você pode usar os eventos apropriados do objeto O2GSession em vez de implementar essas interfaces sozinho. No entanto, você pode implementá-los e usá-los para receber notificações do objeto da sessão após a assinatura se isso for mais adequado para você.
Observe que todos os manipuladores de eventos que você implementou para eventos O2GSession são chamados em um segmento separado. Então, você deve ter em mente o seguinte:
Você sempre deve fornecer acesso seguro a thread para todos os dados armazenados em seu aplicativo, atualizados dos manipuladores de eventos. Você não precisa sincronizar chamadas de manipuladores de eventos e não precisa pensar sobre o "encaminhamento" do manipulador de eventos porque todos os eventos da API já estão sincronizados em um segmento. Portanto, os manipuladores de eventos são chamados em sequência. Você deve lidar com cada evento o mais rápido possível porque eles são sincronizados no tópico 'manipuladores' pela biblioteca ForexConnect. Você pode executar seus próprios tópicos para acelerar o gerenciamento de eventos.
Object Lifetime Management.
Você não precisa de nenhum gerenciamento adicional de recursos para objetos obtidos usando a API ForexConnect. No entanto, é recomendável chamar o método Dispose () para todos os objetos obtidos que o implementam. Essas chamadas permitem que você libere recursos do sistema não utilizados de forma mais eficaz. Você pode usar a instrução using para este propósito:
Aplicação de exemplo usando a ferramenta ForexConnect.
Este exemplo é um aplicativo de console simples que usa a API ForexConnect. Esta aplicação possui os seguintes recursos:
Conectando-se a um servidor de comércio usando as credenciais de usuário predefinidas Recuperando preços para EUR / USD Recuperando a tabela de contas para o usuário Criando um pedido de Mercado aberto para EUR / USD quando você insere 'b' (comprar) ou 's' (vender) Recuperando o encomendar tabela e receber notificações de atualizações nesta tabela Finalizar a execução do aplicativo quando você entra 'q' (sair)
Para simplificar a amostra, toda a lógica do aplicativo é implementada em uma classe MyApp.
Você pode baixar todo o código-fonte da amostra: Arquivo: ForexConnect Sample Net. zip.
Conectando-se ao Trade Server.
O objeto principal da ForexConnect API é um objeto de sessão O2GSession no namespace fxcore2. Este objeto representa uma sessão de conexão do usuário e pode ser criado usando um método estático da classe O2GTransport:
O objeto O2GSession notifica os assinantes de todas as alterações do estado da conexão através dos seguintes eventos:
ou através da interface de retorno de chamada IO2GSessionStatus.
As notificações de recebimento de dados podem ser tratadas usando os seguintes eventos O2GSession:
ou através da interface de retorno de chamada IO2GResponseListener.
Para se conectar a um servidor de comércio usando a API ForexConnect, faça o seguinte:
Crie um objeto de sessão. Implementar manipuladores para eventos de objeto de sessão para receber notificações de mudanças no status da sessão. Ligue para login () para a sessão e aguarde até que o processo de login seja concluído. Processe as notificações recebidas de mudanças no status da conexão em onSessionStatusChanged para gerenciar o estado do processo de login.
Consulte o código fonte a seguir para obter detalhes sobre a implementação:
Observe que aguardamos uma notificação da conclusão de login porque a chamada & lt; code & gt; login () é assíncrona. Para isso, usamos um sinal de sincronização especial. Quando onSessionStatusChanged é chamado, o sinal está configurado para retomar a execução do thread após mSyncSessionEvent. WaitOne (5000) no método run ().
Entre com a Escolha da Sessão de Negociação.
Quando uma conta de usuário possui várias sessões de negociação, o login é um processo de etapas múltiplas:
1. Ligue para o método login () do objeto de sessão com um nome de usuário, senha, URL do servidor e nome do banco de dados especificado. 2. Processe o status recebido TradingSessionRequested no manipulador de eventos onSessionStatusChanged. Existem seguintes etapas comuns para processar o status do TradingSessionRequested: 2.1. Recupere a lista da sessão de negociação do objeto O2GSession usando o método getTradingSessionDescriptors (). 2.2. Forneça uma escolha da sessão de negociação para o usuário. 2.3. Solicite um PIN secreto do usuário. 2.4. Defina a ID da sessão de negociação especificada e o PIN usando setTradingSession (). [Mostrar fonte]
Gerenciando os preços.
O gerenciamento de preços inclui as seguintes etapas:
Verifique se há dados de preços solicitados automaticamente durante o login. Se sim, vá para a etapa 2. Se não, envie um pedido para os preços atuais de todos os instrumentos. Gerencie a resposta. Gerencie a atualização de preços de um determinado instrumento.
Para receber notificações de respostas de solicitação ou alterações de estado de objetos de servidor, você deve implementar e subscrever manipuladores de eventos para os eventos apropriados da instância de O2G2Session.
Para isso, modifique a classe MyApp para lidar com esses eventos:
Solicite preços atuais.
Dependendo das configurações do servidor de comércio, os preços atuais de todos os instrumentos podem ser recebidos automaticamente durante o processo de login, ou você pode solicitar explicitamente esses dados do servidor de comércio. Então, para obter os preços atuais, você deve fazer as seguintes ações:
1. Verifique se existem ofertas de preços recebidas no login usando o método isTableLoadedByDefault () da instância O2GLoginRules. 2. Se eles estiverem carregados, obtenha o objeto de resposta de ofertas já recebido usando o método getTableRefeshResponse (Ofertas) da instância O2GLoginRules. Este objeto de resposta pode ser processado para extrair dados de ofertas. Para obter leitor de ofertas para ler os dados de resposta, faça o seguinte: Obtenha a fábrica de leitores de resposta usando o método getResponseReaderFactory () da instância do objeto de sessão. Crie um leitor usando o método createOffersTableReader () da instância O2GResponseReaderFactory. 3. Se as ofertas não foram recebidas no login, envie um pedido para a tabela de ofertas explicitamente usando o método sendRequest () do objeto de sessão. Para criar a solicitação apropriada, faça o seguinte: Obter a fábrica da solicitação usando o método getRequestFactory () do objeto da sessão. Crie solicitação usando o método createRefreshTableRequest () da instância O2GRequestFactory.
Para solicitar os preços atuais, adicione o seguinte código-fonte ao método run () do nosso exemplo após o processo de login:
Na amostra, esperamos para receber a resposta da solicitação usando um sinal de sincronização. Então, "pegar" o momento para começar a monitorar a mudança de preço de EUR / USD. Claro, devemos definir este sinal quando os dados do preço são recebidos.
Na nossa amostra, um "truque" é usado para evitar a duplicação de código. Como você verá mais adiante, o processamento de resposta é o mesmo quando as informações de ofertas são recebidas do objeto O2GLoginRules e quando recuperamos explicitamente os dados das ofertas. Para processar o objeto de resposta recebido de O2GLoginRules, você pode chamar diretamente o manipulador de eventos implementado do evento RequestCompleted do objeto de sessão.
Recebendo dados de preços.
Como uma chamada de sendRequest () é assíncrona, para receber uma resposta com dados de preço, você precisa implementar o manipulador de eventos para o evento RequestCompleted do objeto de sessão. Como esse manipulador de eventos é usado para receber notificações de respostas de todos os pedidos, você deve fazer o seguinte:
Verifique se o tipo de resposta é GetOffers. Obtenha o leitor de resposta O2GOffersTableResponseReader usando O2GResponseReaderFactory para obter dados de preço do objeto de resposta. Processe todas as linhas na tabela Ofertas usando o leitor.
Você deve fornecer acesso seguro ao thread para as ofertas armazenadas em seu aplicativo.
Veja o código-fonte abaixo para uma amostra de como lidar com a recepção de uma resposta. Para armazenar os preços atuais para EUR / USD, as variáveis ​​apropriadas são definidas e o acesso por thread-safe a elas é implementado.
Um sinal de sincronização é definido quando o recebimento de dados de ofertas é concluído. Este "truque" permite aguardar o recebimento dos preços atuais no segmento principal depois de enviar o pedido.
Nossa aplicação de exemplo manipula o evento RequestComplete e extrai a oferta EUR / USD e solicita o preço. Os preços de oferta e oferta recebidos são armazenados nas variáveis ​​de nível de classe mEURUSDBid e mEURUSDAsk, métodos de thread-safe para ler e alterar essas variáveis ​​são implementadas.
Recebendo atualizações de ofertas.
Observe que a notificação é recebida em um segmento separado, portanto, você deve usar a leitura e atualização do thread-safe das variáveis ​​que armazenam os dados recebidos.
Adicione o seguinte código ao MyApp para lidar com a atualização de preço EUR / USD:
O processamento da atualização da tabela Ofertas inclui as seguintes etapas:
1. Obter O2GResponseReaderFactory a partir do objeto de sessão. 2. Obter um leitor O2GTablesUpdatesReader usando a fábrica por meio do método createTablesUpdatesReader. 3. Faça um loop para enumerar cada elemento da lista de atualizações porque os dados recebidos podem conter atualizações para qualquer tipo de objetos, não apenas para a tabela de Ofertas. Então, você precisa verificar cada item na lista de atualizações para o tipo de tabela e o tipo de operação de atualização necessários. 4. Para processar a alteração, use o método getOfferRow () do leitor para recuperar um objeto do tipo O2GOfferRow:
Observe que a notificação é recebida em um segmento separado, portanto, você deve usar a leitura e atualização do thread-safe das variáveis ​​que armazenam os dados recebidos.
Adicione o seguinte código à MyClass para lidar com a atualização de preços EUR / USD:
Na nossa amostra, processamos apenas as atualizações de preços EUR / USD e armazenamos seus últimos valores nas variáveis ​​mEURUSDBid e mEURUSDAsk. Implementamos métodos seguros para acessar essas variáveis.
Criação de pedidos.
Para criar um pedido, faça o seguinte:
1. Certifique-se de ter no menos uma ID de conta de usuário e uma ID de oferta necessárias para criar um pedido. Caso contrário, solicite-os no início. 2. Use uma instância O2GRequestFactory para criar O2GValueMap para especificar os parâmetros da ordem. 3. Preencha o valorem com os parâmetros necessários para criar um tipo específico de ordem. Consulte o SDK do ForexConnectAPI para obter detalhes sobre os parâmetros dos comandos para criar pedidos. 4. Crie um objeto O2GRequest usando o O2GRequestFactory para o valor valorizado preenchido. 5. Inicie a execução do pedido. 6. Receba a resposta da solicitação para garantir que a execução da solicitação seja bem-sucedida.
Como precisamos de uma ID de conta para nossa amostra, vamos recuperar a tabela de Contas em primeiro lugar. A recuperação de dados da tabela de Contas é semelhante à recuperação de dados da tabela de Ofertas. Para simplificar a amostra, obtenha a primeira conta da lista de conta de usuário e guarde-a em uma variável de nível de classe para uso posterior.
Esperamos a resposta para evitar a criação do pedido antes que o ID da conta seja recuperado.
A melhor prática é o encapsulamento da lógica de criação de ordens em um método separado da classe MyApp. Além disso, você deve lidar com a resposta à solicitação de criação de ordem no manipulador de eventos onRequestCompleted para se certificar de que a ordem foi criada.
Consulte o seguinte código-fonte que cria uma ordem de compra ou venda para o instrumento EUR / USD com valor de 100K:
Observe que existem algumas classes auxiliares úteis no espaço de nome fxcore2.Constants para preencher o objeto valueMap com parâmetros de ordem:
Você pode manter a ID do pedido para processar apenas uma solicitação específica:
Tabela de Recuperação de Pedidos.
Todas as informações sobre estados de pedidos existentes podem ser recuperadas da tabela Pedidos.
A API ForexConnect permite recuperar a tabela Pedidos apenas para uma conta especificada. Então você precisa fazer o seguinte:
Recuperar a tabela Contas. Espere até que os dados das contas sejam recebidos. Recupere a tabela Encomendas para cada conta recebida usando createRefreshTableRequestByAccount () da instância O2GRequestFactory. Gerencie a resposta do pedido em um manipulador de eventos do evento RequestComplete. Gerencie a atualização da tabela Pedidos em um manipulador de eventos do evento TablesUpdates.
Para simplificar a nossa amostra, levamos a identificação da conta armazenada e usamos no exemplo da recuperação da tabela de pedidos.
Observe que, se você armazenar dados de pedidos, você deve fornecer acesso seguro a esses dados e gerenciar corretamente os contadores de referência para os objetos armazenados. Na nossa amostra, os dados das ordens não são armazenados, portanto a sincronização não é implementada.
Finalização do aplicativo. Sair.
Como você pode ver, o método stop () da nossa classe MyApp liberta todos os recursos do sistema usados ​​e desinscrita todos os manipuladores de eventos dos eventos da sessão para parar de receber notificações. Você deve ligar para sair () antes do término do seu aplicativo. Além disso, você deve chamar o método Dispose () da instância da sessão antes de _tmain () retornar o controle.
Manipulação de erros de solicitação.
Quando ocorre um erro durante a execução assíncrona de uma solicitação, o manipulador de eventos do evento RequestFailed é invocado. Na nossa amostra, lemos o erro colocando a descrição do erro na saída do console e parando o aplicativo:
Lançamento da amostra.
Até agora, nosso exemplo pode fazer logon, recuperar as mudanças de preços EUR / USD, mostrar informações sobre pedidos existentes e tem um método para criar uma Ordem de Mercado Aberta.
Para iniciar a amostra neste estágio, precisamos implementar o uso de nossa classe MyApp. Para isso, faça o seguinte:
Dentro da função principal do nosso aplicativo de console, crie uma instância da nossa classe MyApp. Ligue para o método run () da instância para efetuar login no servidor de comércio e começar a receber atualizações de EUR / USD. Fornecer leitura da entrada do usuário para executar comandos: quando "b" é inserido, crie uma ordem de compra de mercado; quando "s" é entrada, crie uma ordem de mercado de venda; quando "q" for inserido, saia do aplicativo.
O método run () da amostra prepara o aplicativo para negociação. Depois que a preparação é feita, ela retorna verdadeira se tudo for bom. Como você pode ver, este método chama todas as funções da API de forma assíncrona, mas aguarda suas respostas usando objetos de sincronização especiais. Observe que este não é um método eficaz de usar o ForexConnectAPI, mas é fácil de entender.
Não esqueça de especificar um nome de usuário e uma senha válidos para uma chamada do método login ().
Agora você pode construir e executar a amostra. Se você tiver algum problema com a construção da amostra, compare com o código-fonte completo da amostra: Arquivo: ForexConnect Sample Net. zip.
Qual é o próximo?
Para obter informações detalhadas sobre todas as classes API e seus métodos, consulte o SDK ForexConnectAPI.

No comments:

Post a Comment