Friday 15 December 2017

Máquina de referência jforex api


Plataforma de negociação automatizada JForex é recomendado para os comerciantes interessados ​​em negociação manual e automatizado ou desenvolvimento ou teste de estratégias de negociação com base na linguagem de programação JAVA. A principal funcionalidade e interface da plataforma são semelhantes às da plataforma Java. Além disso, é fornecida uma interface embutida integrada para a execução de estratégias personalizadas e código de programação. Ferramentas de análise técnica integrada também permitem seguir posições diretamente de gráficos. Por que os comerciantes escolhem o JForex Existem muitas soluções de negociação automáticas diferentes disponíveis no mercado. Mas poucas ou nenhuma podem fornecer tantas funções como JForex. Abaixo estão algumas das principais características da plataforma JForex em comparação com outras soluções, como Meta Trader, Trade Station, etc. Suporte a diferentes sistemas de operação Você pode executar estratégias automatizadas usando qualquer sistema operacional (Windows, Linux, Mac, etc.) Estratégia automatizada Visualização JForex fornece a possibilidade de visualizar uma estratégia de execução não só durante a negociação em tempo real, mas também para testes históricos de volta. Estratégias automatizadas baseadas em pares de moedas múltiplas Os comerciantes podem desenvolver suas estratégias com base em múltiplos pares de moedas. Você também pode executar um teste de volta histórica para os múltiplos pares selecionados dentro de uma estratégia comercial. Testes de retorno histórico usando dados de tiques reais Em contraste com outros provedores de soluções de FX automatizados, nos quais os resultados dos testes geralmente não são muito precisos devido ao uso de interpolação de dados em vez dos dados do tick real, o JForex resolve esse problema oferecendo dados de tiques reais para um Teste histórico de volta. Até 180 indicadores de negociação Existem até 180 indicadores de negociação implementados para a JForex, todos disponíveis para estratégias automáticas de FX. Java IDEs (Integrated Development Environment) suporta os comerciantes profissionais da JForex podem aproveitar ao máximo os diferentes IDEs de Java (Integrated Development Environment) disponíveis para a implementação de estratégias JForex. Opção de profundidade de mercado total A profundidade do mercado JForex engloba os preços e a liquidez obtidos de vários provedores de liquidez diferentes. Ao desenvolver suas estratégias, os comerciantes podem utilizar a profundidade do mercado como um recurso adicional que fornece informações sobre o mercado atual. Colocação de BIDs e OFERTAS ao mercado Esta opção especial permite que os comerciantes atuem como um provedor de liquidez colocando lances individuais e oferecendo diretamente ao mercado. À medida que BidsOffers são colocados, eles podem ser acompanhados por outros consumidores de liquidez, evitando assim os custos de spread. Começando a obter o comércio ao vivo Para saber mais sobre o JForex e outras informações relacionadas à negociação, escreva-nos: email160protected. Ligue para nós: 41 22 799 4888 ou, em alternativa, solicite um call-back. Tendo estudado a anatomia de uma estratégia JForex vazia (Parte 1 e Parte 2), é hora de dissecar um trabalho. MAPlay é a estratégia que está incluída em cada download da JForex API como demonstração. Você pode encontrar o código-fonte completo desta estratégia no srcsinglejartest no pacote compactado da API JForex. Lembre-se de que o primeiro método de interface que é executado no início da estratégia é OnStart. O método OnStart do MAPlay é reproduzido abaixo. As variáveis ​​motorizadas. Indicadores. E console são campos da classe MAPlay. São variáveis ​​globais dentro da classe. O que as linhas 42 a 44 fazem é salvar o IEngine. IIndicadores. E os objetos IConsole para uso posterior. A última linha do OnStart, linha 45, é apenas para imprimir uma mensagem no seu console do programa JForex para notificar o usuário de que a estratégia começou. Uma vez que o OnStart tenha terminado o processamento, o servidor provavelmente encaminhará onTick se um cheque de mercado chegar. Se não for durante as horas de mercado, então não há marca e algum outro evento pode acontecer em vez de onTick. Pense nos métodos como eventos em vez de um processo linear. Você programa sua estratégia JForex de acordo com o que você quer fazer com cada um dos seis eventos IStrategy Interface. Para esta estratégia particular, o programador decide implementar sua estratégia no nível de seleção. Como tal, grande parte do algoritmo de negociação reside em onTick para MAPlay. Observe que esta é uma escolha de design, você pode usar o OnBar se desejar que sua estratégia seja processada no nível da barra (ou você pode usar o OnTick e o OnBar). Heres o código-fonte para onTick no MAPlay. De uma aparência, você pode notar que as variáveis ​​ma0 e ma1 desempenham um papel fundamental na determinação da configuração. Dica: para reverter a engenharia de uma estratégia, pode ser mais fácil trabalhar para trás quando a ordem é colocada, o que é feito pelo engine. submitOrder neste caso. Ma0 e ma1 possuem resultados de médias móveis exponenciais (EMA). Ma0 é o valor atual. Ma1 é o valor das barras anteriores. Linhas 56--63 verificam usando testes IF (linhas 56 e 60) para ver se qualquer uma das variáveis ​​contém dados inválidos. Se os dados forem inválidos, o indicador será calculado e o resto do onTick será ignorado com a declaração de retorno na linha 62. Nota: Os valores dos indicadores às vezes podem ser inválidos (zero, negativo ou Double. NaN., Dependendo da implementação do indicador particular ) Se não houver dados suficientes para calcular ou ocorrer um erro, por exemplo. Os EMAs são obtidos nas linhas 57 e 59 usando o objeto IIndicators (que foi inicializado em onStart). O JForex Wiki fornece uma explicação sobre seu uso. Observe que ma1 é uma matriz, que foi declarada na linha 38 com um tamanho equivalente ao número de todos os instrumentos JForex disponíveis. Em particular, é usado com um valor de índice especial como no ma1instrument. ordinal (). Em outras palavras, está pedindo o slot de instrumentos atual na matriz ma1. O instrumento atual é aquele que é passado para o método na linha 55. Deslizando o código, outro ponto de interesse é a linha 65, mostrando o uso de instrument. getPipValue (). A linha 67 verifica se o número total atual de posição é zero. Se for, o que significa que não há posição aberta, a estratégia prossegue para verificar o sinal de entrada para entrar em um comércio (linhas 68-76). PositionsTotal () é um método personalizado definido nas linhas 84--92. Ele usa um loop FOR para percorrer todos os pedidos obtidos do engine. getOrders (instrumento) Uma vez que uma das condições longas ou curtas, linhas 68 e 72, respectivamente, são atendidas, a estratégia envia um pedido nas linhas 69 para um curto e Linha 73 por um longo período. As especificações de submeter ordens de mercado são descritas no Wiki JForex. Quando você interrompe essa estratégia, onStop (linhas 48-53) é chamado. Para esta estratégia, o programador rola todas as ordens novamente usando engine. getOrders () e fecha cada uma das posições com um comando order. close () na linha 50. É por essa estratégia trivial. Se houver um ponto que você deve lembrar. Observe meu uso dos muitos links para JForex javadoc e JForex Wiki ao longo desta publicação. É provável que você encontre muitas das suas respostas dessas duas fontes. Caso contrário, há sempre o JForex Support Board. Agora que você teve uma idéia de como o MAPlay. java funciona, é hora de testá-lo. Na próxima publicação em janeiro, discutiremos o JForex Historical Tester e o que observar quando estiver executando uma estratégia ao vivo. Examinamos quatro dos seis métodos na interface IStrategy em uma publicação anterior. Os dois últimos métodos, onTick e onBar, são onde sua estratégia se conecta com os dados do mercado. Um ou ambos, esses métodos, é onde você colocou seu algoritmo de negociação. Sua estratégia seria capaz de processar os dados de mercado à medida que eles chegam a um tickbar de cada vez. Lembre-se de que a IStrategy Interface é o esqueleto da sua estratégia. E esse objeto IContext é o coração de sua estratégia. OnTickonBar é o chefe de sua estratégia, que contém seu algoritmo de negociação, que é o cérebro. Heres a definição de método de onTick. Importante: onTick é chamado para todos e cada um dos instrumentos em que a sua plataforma JForex está inscrito (a lista de instrumentos na sua caixa de espaço de trabalho). Deixe-me dizer isso novamente, onTick é chamado para todos e cada um dos instrumentos em que a sua plataforma JForex está inscrito. A prática padrão é filtrar os carrapatos para instrumentos que você não deseja com uma simples declaração de retorno IF. Se (instrumento myInstrument) retornar Os dados do tick real são passados ​​para sua estratégia usando o objeto ITick do parâmetro de métodos OnTick. Dê uma olhada na entrada ITick javadoc para ver o que oferece. OnBar funciona de forma semelhante a onTick. No qual onBar é chamado para todos e cada um dos instrumentos subscritos e período conhecido por JForex. Da mesma forma, você deve filtrar todos os instrumentos e períodos indesejados, ou então haverá resultados esperados da sua estratégia. Outro ponto a observar é que o OnBar fornece tanto um IBar como um AskBar e IBar bidBar, representando as barras de solicitação e oferta. Pergunta: o que acontece quando dois ou mais períodos se sobrepõem, como em 13:45 as barras de 1, 5 e 15 minutos estão chegando ao mesmo tempo (sem mencionar os períodos em segundos também). Resposta: De acordo com o Suporte Dukascopy no fórum, eles vêm em uma ordem rígida, por exemplo (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Eles vêm em ciclos, onde períodos menores chegam em primeiro lugar. Fórum de suporte do JForex À medida que você programa sua estratégia com o JForex, você, sem dúvida, encontrará perguntas próprias. O melhor lugar para perguntar é no fórum oficial de suporte JForex. Este é o último dos três recursos JForex essenciais aos quais eu aludi anteriormente. Mesmo que você não tenha nenhuma pergunta específica, existem exemplos de códigos, discussões de codificação e centenas de QampA existentes de outros desenvolvedores JForex postados no fórum. A discussão até agora tem sido muito alta. Para mostrar o que você pode realmente fazer em um IStrategy, vamos dissecar uma estratégia de trabalho na próxima publicação. E o que mais é melhor examinar do que a estratégia JForex mais popular de todos eles - MAPlay. java. Continuando na Parte 1 desta série: Começando a aprender a programação JForex. Agora estavam prontos para discutir o real. Você cria estratégias JForex usando a interface IStrategy (O que é uma interface). Basicamente, uma interface é um esqueleto de código com um conjunto de métodos vazios predefinidos que você precisará implementar. Os seis métodos padrão da IStrategy Interface são: Abaixo está uma implementação da IStrategy Interface vazia, também conhecida como estratégia JForex. Este código irá compilar bem no JForex e você pode até executá-lo. Mas não faz nada porque não há código para executar em cada um dos métodos. Cada um dos seis métodos será chamado e sairá imediatamente. Cada um dos métodos é desencadeado por um evento específico. Você provavelmente pode adivinhar o que eles são de seu nome. OnStart (linha 5) Este é o primeiro método chamado quando você executa sua estratégia. Ele será executado uma vez e apenas uma vez no início da sua estratégia. Normalmente, você faz sua inicialização aqui. A coisa a observar para onStart está na linha 5 do código. A assinatura do método de onStart é O objeto no parâmetro e dado a você neste método é um objeto IContext. Se IStrakie é o esqueleto, o IContext é o coração da estratégia. Por favor, veja este link do javadoc para o IContext para ver o que esse objeto faz. Javadoc. Agora é um bom momento para apresentar o segundo dos três recursos essenciais de um programador JForex. O JForex Javadoc é a documentação da API mais atualizada que explica todos e cada um dos objetos e métodos da API JForex. Pense nisso como um manual de referência. Note-se que, embora seja abrangente, a maior parte da explicação é muito esparsa e possivelmente incompleta. O IContext é um objeto JForex central para acessar muitos componentes importantes do sistema JForex, como o mecanismo de pedidos, gráficos, consoles, indicadores. Você começa a idéia. É importante Você normalmente deseja manter uma cópia local, pois esta é a única vez (em onStart) que esse objeto será passado para você no IStrategy. OnStop (linha 26) Como o nome sugere, este método é chamado uma vez que você envia um comando de parada para sua estratégia. Você faz o encerramento do seu programa, como o registro e a descarga de dados aqui. Não muito fora do comum com este. OnMessage (linha 18) Enquanto sabemos quando onStart e onStop serão chamados, onMessage é um método assíncrono em que você não sabe exatamente quando ele será executado. Esse método é chamado quando o servidor Dukascopy envia sua estratégia para uma mensagem. Por exemplo, o servidor chama onMessage para que você saiba que seu pedido foi preenchido. Você recebe e processa a mensagem do servidor acessando o objeto IMessage que é passado para você. Importante: não há garantia de que você receberá todas e cada uma das mensagens enviadas para a sua estratégia a partir do servidor. Talvez seu processo de estratégia esteja obstruído. Ou talvez sua conexão com a internet tivesse um soluço. Se a sua estratégia onMessage não for chamada pelo servidor por qualquer motivo, o servidor não poderia se importar menos e não estará checando nem tentando novamente. Então, não faça nada crítico, como gerenciar suas ordens no onMessage onAccount (linha 22). Esse método é chamado sempre que a atualização de informações da sua conta é recebida. O método fornece acesso ao objeto IAccount. Que você usa para obter as informações da sua conta. Diga se você tem uma posição aberta, as informações da sua conta mudam em cada tiquetaque porque seu patrimônio líquido é um lucro líquido não realizado em dinheiro. Nesse caso, onAccount é chamado a cada 5 segundos pelo servidor no máximo para evitar inundar sua estratégia. Mais importante: o objeto IAccount não está conectado ao vivo em sua conta no servidor. É apenas um instantâneo da sua conta. Por exemplo, se você mantiver uma cópia local de um objeto IAccount. Faça algumas negociações para alterar seu saldo. Em seguida, peça a mesma conta IAccount para informações de saldo da conta, você não verá uma alteração. Como tal, sempre atualize sua cópia local do IAccount dentro do método onAccount para manter as informações da sua conta atualizadas para o uso de suas estratégias. Para continuar os métodos onStart, onStop, onMessage e onAccount são métodos administrativos para sua estratégia. Os dois últimos métodos que bem discutem, onTick e onBar, é onde a magia acontece em uma estratégia. Estou guardando o melhor para o último na próxima publicação. O maior problema que tive ao aprender a programar minhas próprias estratégias de negociação no JForex é encontrar onde começar a aprender. Havia pouca documentação JForex disponível no momento e eu tive que ensinar-me através de tentativa cuidadosa e erro com a ajuda do suporte técnico Dukascopys. As coisas certamente mudaram para melhor como uma comunidade JForex está começando a brotar e documentação para ele é pelo menos suficiente para começar alguém começou. Este post é o primeiro de uma série de guia rápido iniciantes para aprender programação JForex, colocando todos esses recursos em um tutorial. JForex é uma ferramenta Java O JForex na verdade não é uma linguagem de programação. É uma interface de programação de aplicativos (API) para usar com a linguagem de programação Java padrão. Como tal, o primeiro passo para aprender a programar no JForex é aprender Java. Felizmente, Java é uma das linguagens de programação mais populares. Então, há muitos recursos dentro e fora da web para aprender a programação Java. Alguns exemplos de tutoriais online gratuitos são: The Java Tutorials - Este é um tutorial oficial do próprio desenvolvedor do Java. Altamente recomendado. Tutorial para iniciantes em Java - Mais orientado para iniciantes absolutos para a programação. Se você preferir um livro, eu recomendaria Head First Java, 2nd Edition. Eu escovei meu Java a partir deste livro. Não hesite em Java, porém, como você só precisa saber o básico para começar com o JForex. Basta ler alguns capítulos para entender a sintaxe do Java e depois seguir em frente. Você sempre pode se referir a eles mais tarde. Mergulhar no JForex O JForex Wiki é um dos três recursos essenciais para os programadores do JForex. Vou me referir a algumas páginas específicas do Wiki em grande parte dessa série de postagens. Se você ainda não o fez, inscreva-se para uma conta DEMO na Dukascopy. Em seguida, lançar a plataforma JForex e siga as instruções na página Use in JForex wiki para montar sua primeira estratégia JForex Até agora tão bom Por este ponto, espero que você possa entender o código-fonte básico Java e saber como startopen, compilar e executar um JForex estratégia. No próximo post nesta série de aprendizagem JForex, vamos estudar a anatomia de uma estratégia JForex.

No comments:

Post a Comment