Wednesday 12 July 2017

Jforex Api Doc


O maior problema que tive ao aprender a programar minhas próprias estratégias de negociação no JForex é descobrir onde começar a aprender. Havia pouca documentação JForex disponível no momento e eu tive que me ensinar através de tentativas e erros difíceis com a ajuda do suporte técnico da Dukascopys. As coisas certamente mudaram para melhor enquanto uma comunidade JForex está começando a brotar e a documentação é pelo menos suficiente para que alguém comece. Este post é o primeiro de uma série de iniciantes rápidos a orientar a aprendizagem da 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 on-line gratuitos são: Os Tutoriais Java - Este é um tutorial oficial do desenvolvedor de 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 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 fez isso, inscreva-se para uma conta DEMO na Dukascopy. Em seguida, inicie a plataforma JForex e siga as instruções na página Utilizar no wiki JForex para montar sua primeira estratégia JForex Até agora tão bom. Por esse ponto, espero que você possa entender o código-fonte Java básico e saber como startopen, compilar e executar um Estratégia JForex. Na próxima publicação nesta série JForex de aprendizagem, estudaremos a anatomia de uma estratégia JForex. Tendo estudado a anatomia de uma estratégia JForex vazia (Parte 1 e Parte 2), é hora de dissecar uma estratégia de 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ê consegue a ideia. É 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 é descobrir onde começar a aprender. Havia pouca documentação JForex disponível no momento e eu tive que me ensinar através de tentativas e erros difíceis com a ajuda do suporte técnico da Dukascopys. As coisas certamente mudaram para melhor enquanto uma comunidade JForex está começando a brotar e a documentação é pelo menos suficiente para que alguém comece. Este post é o primeiro de uma série de iniciantes rápidos a orientar a aprendizagem da 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 on-line gratuitos são: Os Tutoriais Java - Este é um tutorial oficial do desenvolvedor de 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 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 fez isso, inscreva-se para uma conta DEMO na Dukascopy. Em seguida, inicie a plataforma JForex e siga as instruções na página Utilizar no wiki JForex para montar sua primeira estratégia JForex Até agora tão bom. Por esse ponto, espero que você possa entender o código-fonte Java básico e saber como startopen, compilar e executar um Estratégia JForex. Na próxima publicação nesta série JForex de aprendizagem, estudaremos a anatomia de uma estratégia JForex. 13 de janeiro de 2017 Quebras de negociação no dia MLK Tenha cuidado com as próximas quebras de negociação na próxima segunda-feira 16 de janeiro devido ao dia de Martin Luther King nos EUA : USA30.IDX fechar Seg 17:30 GMT - reabrir Ter 07:00 GMT EUA500.IDX fechar Seg 17:30 GMT - reabrir Ter 07:00 GMT USATECH. IDX fechar Seg 17:30 GMT - reabrir Tue 07:00 GMT LIGHT. CMD fechar Seg 17:30 GMT - reabertar Seg 23:00 GMT JPN. IDX fechar Seg 17:30 GMT - reabrir Ter 01:00 GMT XAUUSD fechar Seg 17:30 GMT - re - open segunda-feira 23:00 GMT XAGUSD fechar Seg 17:30 GMT - reabertar Seg 23:00 GMT 14 de dezembro de 2016 Horário do mercado da temporada de férias As horas detalhadas do mercado para os mercados FX, Bullion e CFD podem ser encontradas aqui. Tenha cuidado com a liquidez reduzida e a possibilidade de interrupções durante os feriados de Natal e Ano Novo. 05 de dezembro de 2016 JForex 3 está disponível no LIVE Dukascopy Bank SA lançou uma nova geração da plataforma JForex JForex 3 com maior desempenho e melhor experiência do usuário Após o lançamento bem sucedido em DEMO em setembro de 2016, o JForex 3 passou com sucesso o período de estágio e tem Ficam disponíveis em VIVO Durante o período de estágio, os usuários de Dukascopy DEMO provaram sua preferência em favor do novo JForex 3 sobre a versão atual. A nova plataforma JForex 3 possui uma interface semelhante à versão atual da plataforma JForex, tornando o conhecimento mais fácil para usuários que já estão familiarizados com o JForex. O JForex 3 está disponível simultaneamente com a geração atual do JForex, permitindo que os usuários continuem negociando na versão atual da plataforma, se assim o desejarem. A nova plataforma JForex 3 tem novos recursos, como função de zoom, dragampdrop (interface ajustável pessoalmente), mais de 35 novos indicadores de negociação, configuração avançada de indicadores (por exemplo, possibilidade de construir novos indicadores com base na saída de outros indicadores, diferentes instrumentos, períodos etc. ), Solicite notificações pop-up, novos tipos de valores de negociação (lotes, M, K) e um novo design com diferentes temas de cores. A lista completa de novos recursos pode ser encontrada no que é novo. 01 de dezembro de 2016 Conheça a Dukascopy em Xangai no dia 2 de dezembro, a Dukascopy Bank SA, participando da Shanghai Money Fair 2016 em 2 e 4 de dezembro. Você pode visitar o nosso estande durante os dias da exposição e conhecer pessoalmente nossos representantes. Também a Dukascopy realizará 2 seminários em 3 de dezembro às 11h e às 14h. Não perca a sua chance de se juntar a ele 22 de novembro de 2016 Férias de ação de graças dos EUA Horário comercial Tenha cuidado com a liquidez reduzida na quinta-feira 24 de novembro e sexta-feira 25 de novembro. Horário de negociação: FX Horário de negociação regular na quinta-feira 24 de novembro e sexta-feira 25 de novembro A negociação pára às 18:00 GMT na quinta-feira 24 de novembro Os mercados reabriram às 23:00 GMT na quinta-feira 24 de novembro A negociação pára às 18:45 GMT na sexta-feira 25 de novembro Os mercados reabriram às 23:00 GMT no domingo 27 de novembro A negociação pára às 17:30 GMT na quinta-feira 24 de novembro para os EUA30.IDXUSD, USATECH. IDXUSD, USA500.IDXUSD. Os mercados reabriram às 7:00 GMT na sexta-feira 25 de novembro A negociação pára às 18:00 GMT na sexta-feira 25 de novembro para os EUA30.IDXUSD, USATECH. IDXUSD, USA500.IDXUSD. Os mercados reabriram às 7:00 GMT na segunda-feira 28 de novembro A negociação pára às 17:30 GMT na quinta-feira 24 de novembro para o JPN. IDXJPY. Os mercados reabriram às 1:00 GMT na sexta-feira 25 de novembro A negociação pára às 18:00 GMT na sexta-feira 25 de novembro para o JPN. IDXJPY. Os mercados reabriram às 1:00 GMT na segunda-feira 28 de novembro A negociação pára às 18:00 GMT na quinta-feira 24 de novembro para o LIGHT. CMDUSD Os mercados reabriram às 23:00 GMT na quinta-feira 24 de novembro A negociação pára às 18:00 GMT em Sexta-feira, 25 de novembro, para o LIGHT. CMDUSD. Os mercados reabriram às 23:00 GMT no domingo 27 de novembro A negociação pára às 17:30 GMT na quinta-feira 24 de novembro para o BRENT. CMDUSD Os mercados reabriram às 1:00 GMT na sexta-feira 25 de novembro A negociação pára às 18:45 GMT em Sexta-feira, 25 de novembro, pelo BRENT. CMDUSD. Os mercados reabriram às 1:00 GMT na segunda-feira 28 de novembro de 15 de novembro de 2016 Conheça a Dukascopy em Lugano em 21 de novembro. O 22º Dukascopy Bank SA está participando do Lantern Fund Forum em Lugano em 21 de novembro, 22 e 22 de novembro. Você pode visitar o nosso estande durante os dias da exposição e conhecer pessoalmente nossos representantes. 10 de novembro de 2016 Alavancagem nos índices CFD de volta ao normal A redução temporária de alavancagem nos índices CFD implementados em 7 de novembro 14:00 GMT já foi levantada. Observe que a alavancagem 1:10 no USDMXN permanece em vigor até novo aviso. 09 de novembro de 2016 Alavancagem normal para a maioria dos instrumentos As configurações de alavancagem para a maioria dos instrumentos foram aumentadas para seu nível normal depois que os resultados das eleições dos EUA foram anunciados. Isso acaba com a redução de alavancagem temporária que foi implementada em 8 de novembro às 10:00 GMT. Observe que a alavancagem no USDMXN e todos os índices CFD permanecem às 1:10 até novo aviso. 03 de novembro de 2016 O novo par de moedas lançado para negociação no LIVE Dukascopy está contente de expandir a lista de instrumentos FX. O Euro para o Rublo russo (EURRUB) foi adicionado no ambiente LIVE. A alavanca máxima em EURRUB é definida como 1:10. O novo par de moedas está disponível apenas para contas de Auto-comerciantes. Informações mais detalhadas sobre as taxas SWAP e quebras de negociação são fornecidas na seção correspondente do nosso site. 01 de novembro de 2016 Atualização da redução de alavancagem no dia da eleição dos EUA Além da alavancagem de 1:10 no USDMXN e condições específicas de alavancagem em contas com saldo acima de US $ 30.000 anunciado em 27.10.2016, a Dukascopy está tomando medidas adicionais em relação ao US Election Day: A alavancagem em todos os índices CFD será reduzida para 1:10 na segunda-feira 7 de novembro, 14:00 GMT e permanecerá no local até novo aviso. A Dukascopy convida genialmente os comerciantes a avaliar suas contas de negociação e ajustar a exposição, se necessário, para evitar a sobreexposição durante a eleição dos EUA.

No comments:

Post a Comment