JForex guia de programação rápida JForex guia de programação rápida Como apontado em um artigo anterior, a plataforma DukascopysJForex é muito superior ao longo MetaTrader4 / MetaTrader5, como suas principais características são: negociação com base Evento, mal introduzido em MetaTrader 5, mas com falta de MetaTrader 4 negociação baseada em Order , Como o MetaTrader 4, com a possibilidade de usar também o sistema posicional, como o Metatrader 5 Tick backtester de nível. enquanto MT4 / 5 granularidade de tempo mínimo é um backtesting minutos Portfolio em tantos instrumentos como disponíveis, o que existe, em certa medida, apenas no MetaTrader 5 executar o servidor das estratégias automatizadas, quando eles estão incluídos no concurso. No entanto, a programação em JForex pode ser assustadora para um programador MetaTrader4 / MetaTrader5, especialmente para aquele que não tem um contato com Java. O próprio Java representa um monte de problemas, que um programador iniciante deve olhar para: Não há retorno por referência para as variáveis. Exceto, mas retornando uma classe personalizada. String e tipos duplos têm de ser comparados com métodos como equal () e compareTo () Existe uma distinção entre os tipos de base, entre tipos primitivos e não primitivos. Por exemplo int é um primitivo, enquanto Integer não é primitivo. Tipos primitivos não têm métodos. No entanto, métodos do tipo não-primitivo podem ser aplicados, como eles podem tomar o primitivo como parâmetro. As conversões de data e hora são bastante problemáticas. Time é um inteiro longo, enquanto Date é quase deprecated. A classe Calendar é amplamente utilizada. E agora, vamos dar uma olhada no JForex. Esta é a estrutura básica de um programa JForex. onbar public void (instrumento Instrumento, período Período, IBaraskBar, IBarbidBar) lança JFException Cada estratégia JForex tem que incluir uma classe de estratégia, o mesmo nome que o nome do arquivo, que implementa a interface IStrategy. Existem várias classes que fornecem objetos para interagir com o ambiente de negociação: IEngine responsável com a atividade de negociação IConsole responsável com a saída De longe, a classe mais importante é IContext. Que é responsável com tudo, porque todas as outras classes principais são spawn fora dele. O método onStart recebe um objeto IContext como parâmetro, e é bom atribuí-lo a um objeto de classe, para tê-lo disponível em todos os métodos. Outras classes importantes são: IAccount 8211 usado para recuperar informações da conta, tais como métodos atuais IBar de ações que operam em uma barra IHistory acesso a dados históricos Acesso de instrumento a um instrumento. Possui métodos e enumeração de instrumentos. O objeto do instrumento contém informações sobre decimais 8211 getPipScale () -, símbolo 8211 getPrimaryCurrency (). GetSecondaryCurrency () 8211 pip value 8211 getPipValue () 8211 etc. Semelhante ao que as funções MarketInfo () e Symbol .. () retornam em MT4 / MT5. Onde quer que um símbolo é necessário, o mais provável é passado como um objeto de instrumento e não apenas como um símbolo de string como no MetaTrader. Muito importante sobre o instrumento é a função ordinal () retornando o índice de um instrumento dentro da lista de instrumentos, como se poderia construir várias ArrayLists com informações importantes sobre todos os instrumentos. IOrder usado para acessar uma ordem, para recuperar informações sobre ele, bem como fechá-lo. No entanto, enviar uma encomenda é um trabalho que tem de ser feito com o IEngine. ITick recupera dados como bid e ask, volumes. Um objeto ITick é recebido dentro do método ITick. Seria conveniente construir um ArrayList de carrapatos atuais, feitos de objetos de ITick, onde o índice no ArrayList é dado pelo ordinal () aplicado ao instrumento. Então, basicamente, um programa começa em onStart (), onde um tem que fazer as atribuições importantes para os principais objetos raiz. Em seguida, métodos como onTick () e onBar () podem conter tick e informações de barra para cada instrumento, bem como implementar cálculos de indicadores e ações de lançamento comercial. Observe que um receberia informações para todos os instrumentos e todos os períodos, portanto, em ambas as funções, os dados devem ser filtrados para os instrumentos subscritos. Como e, em seguida, aplicar um Filtro período, por exemplo, que faria uma verificação semelhante ao CurrentTime () Time0 verificar thats feito no MetaTrader. Os indicadores podem ser chamados via IIndicatorsinterface (pelo menos é onde estão listados na documentação). Na prática, itsindicators. This linha calcula o atual SMA de 14 dias sobre o preço de abertura. Finalmente, o evento onMessage () é crítico para uma implementação fácil do comportamento de negociação. Cada mensagem tem um conteúdo, que é uma String, uma ordem a que se refere, várias razões, bem como um tipo. Pela classe IMessage. type, as mensagens referentes estritamente às ordens (algumas mensagens não remeter as encomendas, por exemplo aqueles que dizem que a negociação tenha sido suspensa), por exemplo: ORDERCHANGEDOK ORDERCHANGEDREJECTED ORDERCLOSEOK ORDERCLOSEREJECTED ORDERFILLOK ORDERFILLREJECTED ORDERSUBMITOK ORDERSUBMITREJECTED ORDERSMERGEOK ORDERSMERGEREJECTED SENDINGORDER STOPLOSSLEVELCHANGED Em seguida, a sua simples de Decidir o que fazer com a ordem, após tal evento vem, remetendo uma ordem. As ordens de JForex não têm um número do bilhete como em Metatrader. No entanto, eles têm um rótulo, e que tem de ser exclusivo para todas as ordens existentes. Portanto, é necessário um método para estabelecer esses rótulos. O que era o tipo de ordem MetaTrader, aqui é chamado comando de ordem 8211 recuperável por getOrderCommand () 8211 que retorna um valor IEngine. OrderCommand. O estado da ordem, no entanto, pode ser obtido por getState (). Que retorna um IOrder. State como CANCELED, CLOSED, CREATED, FILLED, OPENED. JForex não vai ser tão simples como MetaTrader para programar, porque, apesar de suas vantagens óbvias, ele ainda requer polimento de habilidades Java, assim como ele requer uma visão diferente de controlar a ordem flow. However, esperamos que este artigo é suficiente para obter Você começou a programar com os participantes do mercado JForex. For profissional Dukascopy Bank oferece a possibilidade de integração API. A Dukascopy Bank API é baseada no protocolo FIX4.4. A API é usada para receber feed de dados em tempo real, enviar ordens, definir / modificar / cancelar ordens e receber notificações automáticas de atividades de negociação. Com uma conexão FIX API, os usuários ainda poderão usar as plataformas comerciais padrão do Dukascopy Bank com sua funcionalidade básica. No entanto, o método de cálculo de posição (modo de posição global / líquido) aplicado às contas da API FIX é diferente. REQUISITOS DE LIVE START: As condições mínimas para abrir uma conta API - clique aqui. Esquemas de conexão Documentação Os usuários do FIX API Dukascopy Bank tem a opção de se conectar através de dois esquemas diferentes: Esquema 1 é usado para conexões diretas a um único contas Dukascopy Banco sem compartilhar os dados com qualquer solução de terceiros / software. O Esquema 2 permite conexões mais complexas envolvendo múltiplas contas do Banco Dukascopy ou o uso de algum banco de dados / software de terceiros. Para saber mais sobre a FIX API e outras informações relacionadas ao comércio, escreva-nos: email160protected. Ligue-nos: 41 22 799 4888 ou, alternativamente, pedir uma chamada de volta. O maior problema que tive quando aprender a programar minhas próprias estratégias de negociação em 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 JForex não é realmente uma linguagem de programação. É uma interface de programação de aplicativo (API) para uso com a linguagem de programação Java padrão. Como tal, o primeiro passo para aprender a programar em JForex é aprender Java. Felizmente, Java é uma das linguagens de programação mais populares. Assim therere abundância dos recursos dentro e fora da correia fotorreceptora para aprender a programação de Java. Alguns exemplos de tutoriais online gratuitos são: The Java Tutorials - Este é um tutorial oficial do próprio desenvolvedor do Java. Altamente recomendado. Iniciantes Java Tutorial - Mais orientado para os iniciantes absolutos para a programação. Se você preferir um livro, eu recomendaria Head First Java, 2nd Edition. Eu escovei acima em meu Java deste livro. Não se detém em Java muito embora como você só precisa saber o básico para começar com JForex. Basta ler alguns capítulos para entender a sintaxe Java e depois seguir em frente. Você sempre pode voltar atrás para 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 desta série de posts. 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 iniciar / abrir, compilar e Executar uma estratégia JForex. No próximo post nesta série de aprendizagem JForex, vamos estudar a anatomia de uma estratégia JForex.
Comments
Post a Comment