Enviar Jforex4
Jforexutils - uma coleção de classes Java úteis para Jforex - Part3 JForexUtils - Uma coleção de classes java úteis para JForex - Part3 Bem-vindo à terceira parte da documentação JForexUtils. Caso você perdeu partes anteriores: Parte 1 Parte 2 Todos os links do projeto estão listados no final deste artigo. Nesta parte, abordaremos o contexto muito central de submissão e alteração de pedidos. As ferramentas para essas tarefas são fáceis de usar e podem ser configuradas para cenários complexos. Todos os exemplos podem ser baixados como um arquivo java no ExamplePart3. Class OrderUtil Esta classe importante lida com todas as criações e alterações de pedidos. Na Parte 2, vimos como criar um objeto OrderParams que contém todos os parâmetros para uma ordem. Comece a usar este objeto orderParams para abrir uma nova ordem: 1) Enviar uma nova ordem ao servidor Isso foi bastante fácil com a ajuda do objeto orderParams Na primeira linha, criamos a instância orderUtil e na segunda linha passamos nossa criação anterior OrderParams objetiva o método de envio. Este é o caso de uso mínimo para abrir uma nova ordem. Você pode ter algumas perguntas, porém: Q1 Onde está a ordem criada Q2 E se uma exceção foi lançada onde é e não queremos atrapalhá-lo Q3 E se o envio foi rejeitado pelo servidor Q4 Posso enviar pedidos em um tópico que É diferente do segmento de estratégia Bem responda todas essas questões em sequência. Como dito anteriormente, este exemplo é mínimo, você pode fazê-lo assim, mas você não sabe se a submissão e aceitação do pedido pelo servidor foi bem-sucedida ou não. A chave é que o método de envio retorna um objeto OrderCreateResult. Este objeto contém informações sobre o estado da submissão da ordem. Vamos ver como podemos ampliar o primeiro exemplo: Linha 1) O método de envio é chamado como antes, mas desta vez exploramos a instância do OrderCreateResult retornada. Linha 2-5) Aqui verificamos se ocorreu uma excpeção e, se assim for, faça um bom tratamento de erros. O objeto resultante fornece um acessador opcional. Linha 6-7) Se nenhuma exceção foi lançada, podemos ter certeza de que a ordem foi criada (mas ainda não foi aberta pelo servidor, pois isso leva algum tempo). Para obter a ordem criada, chamamos orderOpt (). Get () no objeto de resultado que fornece um método Accessor opcional. Como alternativa, você pode usar o método orElse de Opcional para obter a instância da ordem ou nulo se ocorrer uma excpeção. Este é um modo mais curto de recuar a ordem criada, mas é uma questão de gosto o estilo de implementação que você prefere: Aqui verificamos se a ordem é nula e, de outra forma, avaliamos a exceção que está presente no objeto resultante. Para recapitular: a ordem criada e as possíveis exceções podem ser recuadas no objeto OrderCreateResult que lhe dá informações sobre o resultado imediato de uma submissão de pedido. Tudo isso agora deve responder às perguntas Q1 e Q2. Até agora, acabamos de enviar um pedido ao servidor e avaliamos o resultado imediato, mas não nos preocupamos com as respostas do servidor. O JForexUtils monitora todas as chamadas de retorno IMessage e as avalia para ver todas as mensagens relacionadas à ordem. Se quisermos reagir nas respostas do servidor, precisamos aprimorar nossa chamada de envio um pouco mais. Class OrderUtil fornece duas sobrecargas do método de envio que levam objetos de retorno de chamada adicionais. Com essas devoluções de chamada, informamos sobre todas as alterações de pedidos assim que elas estiverem disponíveis, portanto, não há necessidade de esperar bloquear sua linha. Como isso funciona: 2) Enviar ordem ao servidor com objeto de retorno de chamada para notificação de evento de ordem Para receber todos os eventos de pedidos, primeiro Tem que implementar a interface OrderEventConsumer que tem um método vazio onOrderEvent (orderEvent orderEvent final). Heres um exemplo de implementação do OrderEventConsumer que apenas imprime os eventos de pedidos recebidos: você vê que MyEventConsumer implementa OrderEventConsumer e avalia o objeto OrderEvent passado. Este objeto fornece acesso à ordem e a chamada Enumeração OrderEventType enum que representa todos os possíveis eventos de ordem (você deve explorar OrderEventType com seu IDE). Neste exemplo, alteramos o caso do tipo de evento e reagimos após a submissão e preenchimento de pedidos bem sucedidos. Você pode inserir seus manipuladores personalizados aqui ou reagir sobre outros tipos de eventos que você está interessado. Com a ajuda da nossa classe MyEventConsumer, agora podemos enviar o objeto orderParams junto com este manipulador de eventos de ordem: É isso com muito poucas linhas criou um Implementação que é reativa a todos os eventos da ordem em vez de fazer bloqueios feios no segmento de estratégia. Algumas observações: JForexUtils nos obriga a desacoplar a criação de uma ordem a partir da avaliação de eventos de ordem. Isso ajuda na escrita de código que é mais modular e reutilizável (imagine, por exemplo, você precisará da sua implementação do OrderEventConsumer em muitos lugares). Esteja ciente de que a interface OrderEventConsumer possui apenas um método. Isso nos permite passar Java8 lambdas para o método de envio assim que JForex suportará totalmente o Java8 (JForexUtils está pronto para o futuro). Se você não gosta de grandes casos de troca e colocar toda a lógica do evento em um só lugar, existe uma segunda sobrecarga do método de envio que leva um mapa das instâncias do OrderEventConsumer. Esta instância agora informará apenas sobre um evento de ordem específico e manterá a lógica de manipulação pequena. Heres um exemplo que implementa duas versões do OrderEventConsumer: img class src Agora, podemos criar um mapa que define quais eventos de ordem serão encaminhados para qual instância do OrderEventConsumer: img class src Aqui nós definimos que um tipo de evento SUBMITOK será forçado ao SubmitHandler Instância e o tipo de evento SUBMITREJECTED será forwared para a instância SubmitRejectHandler. Este é o controle mais fino que podemos reagir nos tipos de eventos de pedidos e todas essas coisas agora devem responder a pergunta Q3. Então, no caso de threading, você pode detectar a diferença. Não há diferença, você não precisa obedecer nada ao trabalhar com a classe OrderUtil em diferentes threads. Você apenas envia seu pedido e esquece as coisas complexas que o Dukascopy Wiki descreve aqui. Não há necessidade de criar taks chamáveis, sem necessidade de ligar para o IEngine, tudo isso é feito para você nos bastidores e, portanto, responde a nossa última pergunta Q4. --------------------------------------- Isto é para a parte 3 da série de artigos. Nós cobrimos muito terreno com a classe OrderUtil para ver como enviar um pedido. Na próxima parte 4, continuaremos neste caminho e veremos como todas as outras operações de pedidos, como fundir, definir SLTP, etc, então fique atento Usando o JForex para monitorar e verificar suas negociações O T3 Integration Bridge permite que os comerciantes troquem no MetaTrader 4 Ou JForex. Mas, como Shuang Wu argumenta, há um caso a ser feito para que ambas as plataformas sejam abertas quando você troca como uma forma de monitorar e verificar suas negociações. Ao usar o T3 Integration Bridge, por que você deve ter o JForex aberto enquanto você está negociando com o MetaTrader 4. Neste artigo, analisaremos algumas das diferentes características de ambas as plataformas e ofereceremos algumas dicas sobre como usar o JForex para ajudar a monitorar seu Conta ao usar o MT4. A ponte de integração T3 conecta o MetaTrader 4 à sua conta de negociação do Dukascopy Bank de forma transparente. No entanto, é importante ter em mente que, sempre que você trocar com MetaTrader 4, o comércio não está realmente acontecendo dentro do MT4, mas está na plataforma JForex. Então, mesmo que você use o MT4 para toda a sua negociação, sugerimos que você também tenha a plataforma JForex aberta para monitorar e verificar suas negociações. Por que o motivo principal é que as plataformas MT4 e JForex exibem trades de formas fundamentalmente diferentes. Diferenças entre MT4 e JForex MetaTrader 4 é uma plataforma baseada em pedidos e JForex é uma plataforma baseada em posição. (Para aprender a diferença entre o MT4 e o JForex, assista o tutorial em vídeo da nossa publicação no blog anterior). Mas isso significa que, sempre que você abrir duas negociações de compra no mesmo par de moedas, o MT4 as registrará como duas negociações, enquanto estiver no JForex você irá Veja apenas um. Por exemplo, se você abriu as seguintes negociações no MetaTrader 4: COMPRAR 1,0 lote EURUSD 1.2950 COMPRAR 1,0 lote EURUSD 1.2960 As negociações aparecerão no JForex como: COMPRAR 2,0 lotes EURUSD 1.2955 Além disso, eles mostram diferentes negócios quando você se protege (isto é, Abrindo duas posições opostas com o mesmo tamanho). No MT4, os negócios cobertos serão exibidos como duas ordens e, pelo contrário, no JForex não haverá nenhum comércio mostrado, uma vez que os negócios chegam até a posição. (Você pode aprender mais de nossa newsletter anterior sobre como evitar comissões extras ao se proteger no MetaTrader 4). Em uma próxima versão do T3 Integration Bridge, você poderá fazer logon em uma visão ao vivo baseada na web que dará uma Visualização de todos os seus negócios, posição e ordem com base. No entanto, por enquanto ao usar o T3 Integration Bridge, sugerimos que o JForex esteja aberto quando você troca com a plataforma MetaTrader 4. O MetaTrader 4 é usado como uma ferramenta de análise para análise técnica ou como um ldquoforcing bedrdquo para executar seus EAs. Ter o JForex aberto irá ajudá-lo a monitorar sua conta de forma mais eficiente e ajudá-lo a evitar possíveis erros devido à diferença de características entre dois sistemas. Shuang Wu é um membro da equipe de marketing da Fair Trading Technology, que também é um membro ativo da comunidade de comércio forex. Problema de janeiro de 2012
Comments
Post a Comment