Sunday, 22 October 2017

Forexconnect api download no Brasil


Tecnologia Cloud Providers Necessidade de implementar taxas e informações de conta ea capacidade de enviar ou modificar pedidos Para um uso mais técnico da API, oferecemos opções para um nível mais alto de tecnologia. Nossas APIs para provedores de tecnologia e nuvem oferecem uma baixa largura de banda, puxando a arquitetura, sem mínimos de conta, uma gama completa de ordens de negociação e acesso a dados históricos de forex e CFD. Forexconnect API ForexConnect é nosso API8212 mais flexível usado com NinjaTrader. O ForexConnect é compatível com, Linux, Mac, iOS e Android. Código em 30 funções e recursos diferentes Utilize estruturas de mensagens de baixo nível ou estruturas de tabela com campos calculados Conecte-se ao MATLAB para executar análises avançadas sobre dados de preços Começar Já tem uma conta FXCM Download Forexconnect SDK Uma conta FXCM, Um IDE ou editor de texto que execute LUA (ou seja, Visual Studio) Precisa de mais informações Visite o Wiki ForexConnect para ler nossos guias para Java. NET e C e veja exemplos de snippets de código complexos para ações como Batch Commands e Contingency Groups. Procurando criar um aplicativo cliente ou servidor Java é uma API escalável, leve e robusta baseada na especificação FIX para forex e personalizada para negociação com o FXCM. Compatível com qualquer sistema operacional compatível com Java Leve e com base em mensagens FIX Capaz de obter históricos de negócios e taxas Começando Já tem uma conta FXCM Download Java SDK Uma conta FXCM, incluindo prática livre account8212no saldo mínimo exigido Um IDE (ou seja, Netbeans, Eclipse) Veja o código de exemplo e veja a documentação na página GitHub da API Java do FXCMs. 1 VPS Free Hosting: Mantenha um saldo de 5.000 moeda base (ou 500k JPY, e 40k HKD) em sua conta MT4, eo VPS é seu sem nenhum custo. (Por exemplo, se a denominação da sua conta é Dólar Australiano (AUD), isso é um saldo de conta de 5.000 AUD). Se você não atender a este requisito no final do mês, uma taxa de 30 moeda base (ou 3k JPY e 240 HKD) pode ser debitado de qualquer das suas contas FXCM para cobrir o custo VPS. Links de Terceiros: Os links para sites de terceiros são fornecidos para sua conveniência e apenas para fins informativos. A FXCM não se responsabiliza pela exatidão, conteúdo ou qualquer outro assunto relacionado ao site externo ou ao de links subseqüentes e não aceita qualquer responsabilidade por qualquer perda ou dano decorrente do uso deste ou de qualquer outro conteúdo. Esses sites não estão sob nosso controle e podem não seguir os mesmos padrões de privacidade, segurança e acessibilidade que os nossos. Leia os termos e condições dos sites vinculados. Aviso de Risco: Nosso serviço inclui produtos que são negociados na margem e comportam um 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 completamente os riscos envolvidos. Investimento de Alto Risco Aviso: Negociar divisas e / ou contratos para diferenças de margem acarreta um alto nível de risco e pode não ser adequado para todos os investidores. A possibilidade existe que você poderia sustentar uma perda em excesso de seus fundos depositados. Antes de decidir negociar os produtos oferecidos por FXCM você deve considerar com cuidado seus objetivos, situação financeira, necessidades e nível de experiência. Você deve estar ciente de todos os riscos associados à negociação em margem. FXCM fornece aconselhamento geral que não leva em conta seus objetivos, situação financeira ou necessidades. O conteúdo deste site não deve ser interpretado como um conselho pessoal. FXCM recomenda que você procure o conselho de um conselheiro financeiro separado. Clique aqui para ler o aviso de risco total. Forex Capital Markets Limited (FXCM LTD) é uma subsidiária operacional dentro do grupo FXCM de empresas (coletivamente, o Grupo FXCM). Todas as referências neste site para FXCM referem-se ao Grupo FXCM. A Forex Capital Markets Limited é autorizada e regulamentada no Reino Unido pela Autoridade de Conduta Financeira. Número de registo 217689. Tratamento fiscal: O tratamento fiscal britânico das suas actividades de apostas financeiras depende das suas circunstâncias individuais e pode estar sujeito a alterações no futuro ou pode diferir noutras jurisdições. Cópia de Copyright 2017 Forex Capital Markets. Todos os direitos reservados. Northern amp Shell Building, 10 Lower Thames Street, 8th Floor, Londres EC3R 6AD Empresa constituída em Inglaterra com o nome de País de Gales No.04072877, com sede social acima. Utilizamos cookies para melhorar o desempenho ea funcionalidade do nosso site, o que melhora a sua experiência de navegação. Ao continuar a navegar neste site, você está concordando com nosso uso de cookies. Você pode alterar suas configurações de cookie a qualquer momento. Saiba mais Seu navegador está desatualizadoComentário da API Tenha sua própria corretora Então você exige o mais alto nível de tecnologia com FIX. VPS Free Hosting: Mantenha um saldo de 5.000 moeda base (ou 500k JPY, e 40k HKD) em sua conta MT4, eo VPS é seu sem nenhum custo. (Por exemplo, se a denominação da sua conta é Dólar Australiano (AUD), isso é um saldo de conta de 5.000 AUD). Se você não atender a este requisito no final do mês, uma taxa de 30 moeda base (ou 3k JPY e 240 HKD) pode ser debitado de qualquer das suas contas FXCM para cobrir o custo VPS. Aviso de Risco: Nosso serviço inclui produtos que são negociados na margem e comportam um 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 completamente os riscos envolvidos. Investimento de Alto Risco Aviso: Negociar divisas e / ou contratos para diferenças de margem acarreta um alto nível de risco e pode não ser adequado para todos os investidores. A possibilidade existe que você poderia sustentar uma perda em excesso de seus fundos depositados. Antes de decidir negociar os produtos oferecidos por FXCM você deve considerar com cuidado seus objetivos, situação financeira, necessidades e nível de experiência. Você deve estar ciente de todos os riscos associados à negociação em margem. FXCM fornece aconselhamento geral que não leva em conta seus objetivos, situação financeira ou necessidades. O conteúdo deste site não deve ser interpretado como um conselho pessoal. FXCM recomenda que você procure o conselho de um conselheiro financeiro separado. Clique aqui para ler o aviso de risco total. Forex Capital Markets Limited (FXCM LTD) é uma subsidiária operacional dentro do grupo FXCM de empresas (coletivamente, o Grupo FXCM). Todas as referências neste site para FXCM referem-se ao Grupo FXCM. A Forex Capital Markets Limited é autorizada e regulamentada no Reino Unido pela Autoridade de Conduta Financeira. Número de registo 217689. Tratamento fiscal: O tratamento fiscal britânico das suas actividades de apostas financeiras depende das suas circunstâncias individuais e pode estar sujeito a alterações no futuro ou pode diferir noutras jurisdições. Cópia de Copyright 2017 Forex Capital Markets. Todos os direitos reservados. Northern amp Shell Building, 10 Lower Thames Street, 8th Floor, Londres EC3R 6AD Empresa constituída em Inglaterra com o nome de País de Gales No.04072877, com sede social acima. Utilizamos cookies para melhorar o desempenho ea funcionalidade do nosso site, o que melhora a sua experiência de navegação. Ao continuar a navegar neste site, você está concordando com nosso uso de cookies. Você pode alterar suas configurações de cookie a qualquer momento. Saiba mais Seu navegador está desatualizado APIOctave Em 27 de fevereiro de 2017 11:52, ramack lthidden e-mail gt escreveu: gt Um dos membros respondeu: gt quotVocê pode trabalhar com Matlab através de ForeXConnect de qualquer idioma para o qual gt Matlab api existe. Aqui está um artigo como trabalhar com gt C: codeprojectArticles. LAB-Engine-API gt Espero que helpquot gt gt Tendo nunca usado APIs, estou perdido e não tenho certeza onde começar exceto gt com o básico e construir sobre isso. Então, é por isso que eu coloquei a questão gt sobre um bom ponto de partida com APIs Octave. Nesse contexto, quotOctave APIquot significa algumas funções que o ForeXConnect fornece que podem ser chamadas na linguagem Octave. Essa pessoa deu-lhe uma resposta não relacionada sobre como chamar C de Matlab e é completamente independentes do seu problema. Quando as pessoas dizem quotAPIquot, eu esqueci de dizer que eles também significam URLs quotweb para manipular dataquot, ou seja, uma API da web: Por exemplo, o seguinte URL bitbucket dá-lhe alguns dados sobre um repositório: A idéia é que esses URL e vários métodos HTTP Por exemplo, GET, POST) permitiria que você manipular esses dados. Os dados que você vê acima são passados ​​como JSON. O que você quer é encontrar alguma API da web para esse site que você se preocupa, e então você pode usar urlread Octaves e urlwrite comandos para manipular dados usando esses urls. Re: Octave API Em 27 Fevereiro 2017 12:10, Jordi Gutirrez Hermoso lthidden email gt escreveu: gt Em 27 de Fevereiro de 2017 11:52, ramack lthidden email gt escreveu: gtgt Um dos membros Respondeu: gtgt quotVocê pode trabalhar com Matlab através de ForeXConnect de qualquer idioma para o qual gtgt Matlab api existe. Aqui está um artigo como trabalhar com gtgt C: codeprojectArticles. LAB-Engine-API gtgt Espero que helpquot gtgt gtgt Tendo nunca usado APIs, estou perdido e não tenho certeza onde começar, exceto gtgt com o básico e construir sobre isso. Então, é por isso que eu coloquei a pergunta gtgt sobre um bom ponto de partida com APIs Octave. Gt gt Neste contexto, quotOctave APIquot significa algumas funções que o ForexConnect gt fornece que podem ser chamadas na linguagem Octave. Essa pessoa deu gt você uma resposta não relacionada sobre como chamar C de Matlab e é gt completamente alheios ao seu problema. Eu entendi mal o que ForexConnect era. Eu pensei que era um site. Se é um programa, você precisa descobrir quais funções este programa lhe permite chamar de C. Para isso, você precisaria escrever um programa C que funcione com ForexConnect e Octave. No entanto, ForexConnect parece ser não-livre. Isso significa que você não pode distribuir este programa hipotético, uma vez que isso seria uma violação GPL. Para o seu objetivo de obter cotações forex, há uma abundância de sites que fornecem esta funcionalidade com uma API da web. Por exemplo, aqui está um: Altere o URL da maneira óbvia para obter outras curências. Esta foi tomada a partir daqui: Abrir este post na exibição threaded Conteúdo do relatório como inapropriado Re: Octave API Oi, Eu havent olhou para o link que você se refere. Mas o Google eo Yahoo Fx tabelas só sai para 2 casas decimais. Eu preciso de um mínimo de 4. Stock e dados Comm parece que o seu normallty para 2 lugares. Não era até que eu tivesse um script de trabalho que os dados não são tão precisos quanto eu preciso ou é normalmente citados para Forex. Obrigado, Rich Abrir este post na exibição threaded Re: Octave API Em 27 de fevereiro de 2017 13:30, ramack lthidden e-mail gt escreveu: gt Eu havent olhou para o link que você se refere. Mas Google e Yahoo Fx tabelas gt só sai para 2 casas decimais. Eu preciso de um mínimo de 4. Então talvez você deve olhar para o link e ver como ele tem muito mais do que 2 casas decimais. Open this post in threaded view Conteúdo do relatório como impróprio Re: Octave API Eu tinha encontrado esse link stackoverflow na semana passada. O link que tem números decimais mais significativos não fornece dados históricos, mas cotações em tempo real. Eu encontrei um pouco mais de informações no que diz respeito ao ForexConnect, então por enquanto eu vou continuar com isso. Obrigado pelas sugestões embora. Rich Aberto este post na visão threaded Re: Octave API Em 28 de fevereiro de 2017 10:05, ramack lthidden e-mail gt escreveu: gt Eu encontrei um pouco mais de informações no que diz respeito ao ForexConnect, então para o momento gt continuar com aquele. Obrigado pelas sugestões embora. Gt Rich Se você vincula Octave ao ForexConnect, não se esqueça de suas obrigações GPL: Como começar a usar o ForexConnect API (Win32Win64) Este artigo descreve como começar a usar o ForexConnect API. Aqui você pode encontrar as explicações básicas da API e instruções passo a passo sobre a criação de uma amostra de trabalho de um aplicativo comercial simples. Plataforma. Microsoft Framework 2.0 e versões posteriores no MS Windows 32-bit versão de 64 bits Idioma. C IDE. Microsoft Visual Studio 2005, 2008, 2010 O uso da biblioteca do ForexConnect com a estrutura de aplicativos do Microsoft Silverlight não é suportado. A biblioteca ForexConnect que está sendo executada usando Mono não é suportada. Obtendo e Instalando Bibliotecas de API do ForexConnect Baixe a última versão do ForexConnect API: Se você tiver uma versão de 32 bits do Microsoft Windows, faça o download da versão de 32 bits da API do ForexConnect. Se você tiver uma versão de 64 bits do Microsoft Windows, baixe a compilação de 64 bits da API do ForexConnect. Consulte a caixa de diálogo Propriedades do sistema para obter informações sobre a versão do sistema. Observe que se o sistema for o Windows XP e você não vir a edição x64 listada na caixa de diálogo Propriedades do Sistema, então você está executando uma versão de 32 bits do Windows XP. Inicie o instalador e, em seguida, siga as instruções do assistente de configuração. Além disso, vamos supor que a API do ForexConnect está instalada no C: Program FilesCandleworksForexConnectAPI. Usando a API do ForexConnect 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 as bibliotecas da API do ForexConnect e Arquivos de suporte para a pasta onde o programa é criado: No projeto Propriedades rarr Build Events rarr Post-Build linha de comando evento, adicione o seguinte texto: copy C: Program FilesCandleworksForexConnectAPIbin. (TargetDir) 2. Adicionar uma referência à assemblagem fxcore2.dll ao projecto. Se você usar 4.0, use o assembly fxcore2.dll apropriado que pode ser encontrado na pasta C: Program FilesCandleworksForexConnectAPIbinnetdotnet40. Se você usar 2.0, use o assembly fxcore2.dll da pasta C: Program FilesCandleworksForexConnectAPIbinnetdotnet20. 3. Adicione o espaço de nomes fxcore2 ao seu código: Distribuição É necessário distribuir o programa com todas as bibliotecas binárias e ficheiros de suporte do C: Program FilesCandleworksForexConnectAPIbin. As bibliotecas do ForexConnect e os arquivos de suporte devem estar localizados na pasta onde o aplicativo está instalado. Observe que o assembly fxcore2.dll deve ser colocado na pasta onde o aplicativo também está instalado. Funcionalidades da API do ForexConnect Arquitetura Orientada a Eventos Todas as APIs usadas pelo ForexConnect são assíncronas, então você terá que implementar uma arquitetura orientada a eventos em seu código. Uma arquitetura baseada em eventos é um padrão de arquitetura de software que gerencia o comportamento da 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 identificada dentro de um fluxo contínuo de insumos monitorados, como condições ou sinais específicos ou algo mais. As arquiteturas geradas por 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 para esse gerente. Quando o gerente recebe um evento de um produtor, encaminha esse evento para todos os consumidores registrados ou armazena o evento para posterior encaminhamento. Um manipulador de eventos é uma rotina de retorno de chamada que funciona de forma assíncrona e manipula as entradas recebidas em um programa (eventos). Nesse contexto, um evento é um elemento significativo de informações de aplicativo de um framework de desenvolvimento subjacente, geralmente a partir de um toolkit de interface gráfica de usuário (GUI) ou algum tipo de rotina de entrada. No lado GUI, por exemplo, os eventos incluem traços de tecla, atividade do mouse, seleções de ação ou expirações de timer. Do lado da entrada, os eventos incluem abrir ou fechar arquivos e fluxos de dados, ler dados e assim por diante. Manipulação de eventos é o recebimento de um evento em algum manipulador de eventos de um produtor de eventos e processos subseqüentes. Os processos envolvidos no tratamento de eventos incluem: Identificar onde um evento deve ser encaminhado Fazer o encaminhamento Receber o evento encaminhado Tomar algum tipo de ação apropriada em resposta, como escrever em um log, enviar uma rotina de erro ou recuperação ou enviar uma mensagem O evento Pode, em última instância, encaminhar o evento para um consumidor de eventos. O benefício das arquiteturas orientadas a eventos é que elas permitem coleções arbitrariamente grandes de consumidores e produtores, junto com alguns gestores, trocar informações sobre status e resposta contínuas. Eles geralmente também são bastante responsivos aos eventos à medida que ocorrem e funcionam bem em ambientes de comunicação imprevisíveis e assíncronos. ForexConnect Event Handling Peculiarities A API do ForexConnect já possui implementações de interfaces IO2GSessionStatus e IO2GResponseListener para receber notificações de mudanças de status de sessão e recebimento de dados. Assim, você pode usar eventos apropriados do objeto O2GSession em vez de implementar essas interfaces por si mesmo. No entanto, você pode implementá-los e usá-los para receber notificações do objeto de 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. Portanto, você deve ter em mente o seguinte: Você deve sempre fornecer acesso thread-safe a todos os dados armazenados em seu aplicativo que é atualizado a partir de seus manipuladores de eventos. Você não precisa sincronizar chamadas de manipuladores de eventos e não precisa pensar sobre o manipulador de eventos reentrar porque todos os eventos da API já estão sincronizados em um segmento. Portanto, manipuladores de eventos são chamados em seqüência. Você deve lidar com cada evento o mais rápido possível porque eles são sincronizados no thread de manipuladores pela biblioteca do ForexConnect. Você pode executar seus próprios threads para acelerar o tratamento de eventos. Gerenciamento de Vida do Objeto Você não precisa de nenhum gerenciamento de recursos adicional para objetos obtidos usando a API do ForexConnect. No entanto, é recomendável chamar o método Dispose () para todos os objetos obtidos que implementá-lo. Essas chamadas permitem que você libere recursos de sistema não utilizados de forma mais eficaz. Você pode usar a instrução using para esta finalidade: Exemplo de Aplicativo Usando a API do ForexConnect Este exemplo é um aplicativo de console simples que usa a API do ForexConnect. Esta aplicação tem as seguintes características: Conectando a um servidor de comércio usando as credenciais de usuário predefinidas Recuperando preços para EURUSD Recuperando a tabela de contas para o usuário Criando uma ordem de mercado aberto para EURUSD quando você insere b (compra) ou s (venda) Recuperando as ordens Tabela e recepção de notificações de atualizações nesta tabela Finalizando a execução do aplicativo ao inserir q (sair) Para simplificar o exemplo, toda a lógica do aplicativo é implementada em uma classe MyApp. Você pode baixar todo o código-fonte do exemplo: File: ForexConnect Sample Net. zip Conectando-se com o Trade Server O objeto principal do ForexConnect API é um objeto de sessão O2GSession no namespace fxcore2. Este objeto representa uma sessão de conexão de usuários e pode ser criado usando um método estático da classe O2GTransport: O objeto O2GSession notifica assinantes de todas as alterações do estado de 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 manipuladas usando os seguintes eventos O2GSession: ou através da interface de retorno de chamada IO2GResponseListener. Para se conectar a um servidor comercial usando a API do 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 alterações no status da sessão. Chamar login () para a sessão e aguarde até que o processo de login seja concluído. Processar as notificações recebidas das alterações de status da conexão no onSessionStatusChanged para gerenciar o estado do processo de login. Consulte o seguinte código-fonte para detalhes de implementação: Observe que aguardamos uma notificação de conclusão de logon porque a chamada ltcodegtlogin () é assíncrona. Para isso, usamos um sinal de sincronização especial. Quando onSessionStatusChanged é chamado, o sinal é definido para retomar a execução thread após mSyncSessionEvent. WaitOne (5000) no método run (). Login com Escolhendo Sessão de Negociação Quando uma conta de usuário tem várias sessões de negociação, o login é um processo de várias etapas: 1. Chame o método login () do objeto de sessão com um nome de usuário, senha, URL de servidor e nome de banco de dados especificados. 2. Processe o status recebido TradingSessionRequested no manipulador de eventos onSessionStatusChanged. Existem seguintes passos comuns para processar o status TradingSessionRequested: 2.1. Recupere a lista da sessão de negociação a partir do objeto O2GSession usando o método getTradingSessionDescriptors (). 2.2. Fornecer uma escolha da sessão de negociação para o usuário. 2.3. Solicitar um PIN secreto do usuário. 2.4. Defina a ID de sessão de negociação especificada e PIN usando setTradingSession (). Show Source Gerenciando Preços O gerenciamento de preços inclui as seguintes etapas: Verifique se há dados de preço 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. Manipule a resposta. Gerencie a atualização de preço 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 assinar manipuladores de eventos para os eventos apropriados da instância de O2G2Session. Para isso, modifique a classe MyApp para lidar com esses eventos: Solicitar preços atuais Dependendo das configurações do servidor comercial, os preços atuais de todos os instrumentos podem ser automaticamente recebidos durante o processo de login ou você pode solicitar explicitamente esses dados do servidor comercial . Assim, para obter os preços atuais, você deve fazer as seguintes ações: 1. Verifique se há ofertas de preço recebidas no login usando o método isTableLoadedByDefault () da instância O2GLoginRules. 2. Se eles estiverem carregados, obtenha o objeto de resposta de ofertas 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 o leitor de ofertas para ler os dados de resposta, faça o seguinte: Obtenha a fábrica do leitor 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 uma solicitação 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: Obtenha a fábrica de solicitações usando o método getRequestFactory () do objeto de sessão. Criar 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 processamento de login: No exemplo, esperamos receber a resposta da solicitação usando um sinal de sincronização. Então, pegamos o momento de começar a monitorar o preço mudando para o EURUSD a partir de. Naturalmente, devemos definir este sinal quando os dados de preços 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 os dados de ofertas são recebidos do objeto O2GLoginRules e quando recuperamos explicitamente dados de ofertas. Então, 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ço 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 este manipulador de eventos é usado para receber notificações de respostas de todas as solicitações, você deve fazer o seguinte: Verifique se o tipo de resposta é GetOffers. Obter o leitor de resposta O2GOffersTableResponseReader usando O2GResponseReaderFactory para obter dados de preço do objeto de resposta. Processar todas as linhas na tabela Ofertas usando o leitor. Você deve fornecer acesso thread-safe para as ofertas armazenadas em seu aplicativo. Veja o código fonte abaixo para uma amostra de como lidar com o recebimento de uma resposta. Para armazenar os preços atuais para o EURUSD, as variáveis ​​apropriadas são definidas eo acesso thread-safe a elas é implementado. Um sinal de sincronização é definido quando a recepção dos dados das ofertas é concluída. Este truque permite aguardar receber os preços atuais no segmento principal depois de enviar o pedido. Nosso aplicativo de amostra trata o evento RequestComplete e extrai o lance e o preço de venda EURUSD. Os preços de solicitação e lance recebidos são armazenados nas variáveis ​​de nível de classe mEURUSDBid e mEURUSDAsk, os métodos thread-safe para ler e alterar essas variáveis ​​são implementados. Recebendo Ofertas Atualizações Observe que a notificação é recebida em um segmento separado, portanto, você deve usar a leitura thread-safe e atualizar as variáveis ​​que armazenam os dados recebidos. Adicione o seguinte código ao MyApp para lidar com a actualização de preços EURUSD: Processamento da actualização da tabela Ofertas inclui os seguintes passos: 1. Obter O2GResponseReaderFactory a partir do objecto de sessão. 2. Obtenha um leitor O2GTablesUpdatesReader usando a fábrica através 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 Ofertas. Portanto, você precisa verificar cada item na lista de atualizações para o tipo de tabela necessário eo tipo de operação de atualização. 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 e, portanto, você deve usar leitura thread-safe e atualizar as variáveis ​​que Armazenar os dados recebidos. Adicione o seguinte código ao MyClass para lidar com a actualização de preços EURUSD: No nosso exemplo, processamos actualizações de preços EURUSD apenas e armazenamos os seus últimos valores nas variáveis ​​mEURUSDBid e mEURUSDAsk. Implementamos métodos thread-safe para acessar essas variáveis. Criação de Pedidos Para criar um pedido, faça o seguinte: 1. Certifique-se de que você tenha pelo menos um ID de conta de usuário e um ID de oferta necessários para criar um pedido. Se não, solicite-os em primeiro lugar. 2. Use uma instância O2GRequestFactory para criar O2GValueMap para especificar os parâmetros da ordem. 3. Preencha o valoremap com os parâmetros necessários para criar um tipo específico de ordem Consulte o SDK ForexConnectAPI para obter detalhes sobre parâmetros de comandos para criar ordens. 4. Crie um objeto O2GRequest usando O2GRequestFactory para o valor valor cheio. 5. Inicie a execução do pedido. 6. Receber a resposta da solicitação para ter certeza de que a execução da solicitação foi bem-sucedida. Como precisamos de uma ID de conta para o nosso exemplo, vamos recuperar a tabela Contas em primeiro lugar. Recuperar dados da tabela Contas é semelhante à recuperação de dados da tabela Ofertas. Para simplificar o exemplo, obter a primeira conta da lista de contas de usuário e armazená-lo em uma variável de nível de classe para uso posterior. Esperamos a resposta para evitar a criação de ordem antes que o ID da conta seja recuperado. A melhor prática é o encapsulamento da lógica de criação de pedidos em um método separado da classe MyApp. Além disso, você deve manipular a resposta ao pedido de criação de ordem no manipulador de eventos onRequestCompleted para se certificar de que a ordem é criada. Veja o seguinte código-fonte que cria uma ordem de compra ou venda para o instrumento EURUSD com 100K quantidade: Observe que existem algumas classes auxiliares úteis no namespace fxcore2.Constants para preencher o objeto valueMap com parâmetros de ordem: Você pode manter o ID do pedido Processo de resposta de um pedido específico apenas: Recuperando Ordens Tabela Todas as informações sobre estados de ordens existentes podem ser recuperadas da tabela Pedidos. A API do ForexConnect permite recuperar a tabela Pedidos somente para uma conta especificada. Portanto, você precisa fazer o seguinte: Recuperar a tabela Contas. Aguarde até que os dados das contas sejam recebidos. Recupere a tabela Pedidos para cada conta recebida usando createRefreshTableRequestByAccount () da instância O2GRequestFactory. Gerencie a resposta de solicitação em um manipulador de eventos do evento RequestComplete. Manipule a atualização da tabela Orders em um manipulador de eventos do evento TablesUpdates. Para simplificar o nosso exemplo, tomamos a ID da conta armazenada e usá-la no exemplo da recuperação da tabela Pedidos. Observe que, se você armazenar dados de pedidos, você deve fornecer acesso thread-safe a esses dados e gerenciamento correto de contadores de referência para os objetos armazenados. Em nossa amostra, os dados dos pedidos não são armazenados, portanto, a sincronização não é implementada. Finalizando o Aplicativo. Logout Como você pode ver, o método stop () de nossa classe MyApp libera todos os recursos de sistema usados ​​e desinscreve todos os manipuladores de eventos de eventos de sessão para parar de receber notificações. Você deve chamar logout () antes da rescisão do seu aplicativo. Além disso, você deve chamar o método Dispose () da instância de sessão antes que tmain () retorna o controle. Erros de solicitação de tratamento Quando ocorre um erro durante a execução assíncrona de uma solicitação, o manipulador de eventos do evento RequestFailed é invocado. Em nossa amostra, lidaremos com o erro colocando a descrição do erro na saída da consola e parando a aplicação: Lançamento da amostra Agora, nossa amostra pode fazer login, recuperar as alterações nos preços do EURUSD, mostrar informações sobre ordens existentes e um método para criar Uma Ordem de Mercado Aberto. Para iniciar a amostra nesta etapa, 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 de nossa classe MyApp. Chame o método run () da instância para efetuar login no servidor comercial e começar a receber atualizações do EURUSD. Fornecer leitura de entrada de usuários para executar comandos: quando b é entrada, criar uma ordem de mercado de compra quando s é entrada, criar uma ordem de mercado de venda quando q é entrada, sair da aplicação. O método run () da amostra prepara o aplicativo para negociação. Após a preparação é feita, ele retorna verdadeiro se tudo é bom. Como você pode ver, esse método chama todas as funções API de forma assíncrona, mas espera por suas respostas usando objetos de sincronização especiais. Observe que isso 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 criar e executar o exemplo. Se você tiver qualquer problema com a construção da amostra, compare-a com todo o código-fonte da amostra: File: ForexConnect Sample Net. zip. O que vem a seguir Para obter informações detalhadas sobre todas as classes de API e seus métodos, consulte ForexConnectAPI SDK. Este Artigo em Outros Idiomas

No comments:

Post a Comment