Thursday 16 November 2017

Enviar Pedido Jforex Api


Detalhes do método submitOrder Envia nova ordem. A ordem retornada está no estado IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor. Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de valor da ordem submetida - montante em milhões para o preço da ordem - preço preferido para a ordem. Se zero, então o último preço de mercado visível no JForex será usado. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada. No caso de ordens de mercado, preço incorreto (pior do que o mercado atual) será alterado para o preço atual e slippage derrapagem - derrapagem. O valor de derrapagem significa seguinte: se negativo, então o valor padrão de 5 pips é usado se Double. isNaN (derrapagem) true, então nenhum deslizamento é usado caso contrário, slippage é definido em pips, você deve passar 1, não 0,0001 stopLossPrice - price of the parar a perda de. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada takeProfitPrice - preço do lucro da tomada. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada goodTillTime - quanto tempo deve viver se não for executado. Somente se 0, então orderCommand NÃO deve ser nem IEngine. OrderCommand. BUY nem IEngine. OrderCommand. SELL ordem de mercado. Comentário - comentário que será salvo na ordem Retorna: nova instância de ordem no estado IOrder. State. CREATED Lança: JFException - se label não for válido ou já existir, se goodTillTime 0 e orderCommand não for BID / OFFER, se o valor for menor que Mínimo permitido, se alguns dos parâmetros necessários forem nulos submitOrder Envia nova ordem. A ordem retornada está no status IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de valor da ordem submetida - montante em milhões para o preço da ordem - preço preferido para a ordem. Se zero, então o último preço de mercado visível no JForex será usado. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada. No caso de ordens de mercado, preço incorreto (pior do que o mercado atual) será alterado para o preço atual e slippage derrapagem - derrapagem. O valor de derrapagem significa seguinte: se negativo, então o valor padrão de 5 pips é usado se Double. isNaN (derrapagem) true, então nenhum deslizamento é usado caso contrário, slippage é definido em pips, você deve passar 1, não 0,0001 stopLossPrice - price of the parar a perda de. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada takeProfitPrice - preço do lucro da tomada. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada goodTillTime - quanto tempo deve viver se não for executado. Somente se 0, então orderCommand NÃO deve ser nem IEngine. OrderCommand. BUY nem IEngine. OrderCommand. SELL ordem de mercado. Retorna: instância de nova ordem no estado IOrder. State. CREATED Lança: JFException - se label não é válido ou já existe, se goodTillTime 0 e orderCommand não for BID / OFFER, se o valor for menor que o mínimo permitido, se alguns dos parâmetros necessários Is null submitOrder Envia nova ordem. A ordem retornada está no status IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de valor da ordem submetida - montante em milhões para o preço da ordem - preço preferido para a ordem. Se zero, então o último preço de mercado visível no JForex será usado. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada. No caso de ordens de mercado, preço incorreto (pior do que o mercado atual) será alterado para o preço atual e slippage derrapagem - derrapagem. O valor de derrapagem significa seguinte: se negativo, então o valor padrão de 5 pips é usado se Double. isNaN (derrapagem) true, então nenhum deslizamento é usado caso contrário, slippage é definido em pips, você deve passar 1, não 0,0001 stopLossPrice - price of the parar a perda de. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada takeProfitPrice - preço do lucro da tomada. O preço deve ser divisível por 0,1 pips ou a ordem será rejeitada Retorna: nova instância de ordem no estado IOrder. State. CREATED Ativa: JFException - se o rótulo não for válido ou já existir, se o valor for menor do que o mínimo permitido, se algum dos requisitos Parameters é nulo submitOrder Envia nova ordem. A ordem retornada está no status IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de valor da ordem submetida - montante em milhões para o preço da ordem - preço preferido para a ordem. Se zero, então o último preço de mercado visível no JForex será usado. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada. No caso de ordens de mercado, preço incorreto (pior do que o mercado atual) será alterado para o preço atual e slippage derrapagem - derrapagem. O valor de deslizamento significa seguinte: se negativo, então o valor padrão de 5 pips é usado se Double. isNaN (slippage) true, então nenhum deslizamento é usado caso contrário, slippage é definido em pips, você deve passar 1, não 0,0001 Retorna: nova instância de ordem No estado IOrder. State. CREATED Ativa: JFException - se o rótulo não for válido ou já existir, se o valor for menor que o mínimo permitido, se alguns dos parâmetros necessários forem nulos submitOrder Envia nova ordem. A ordem retornada está no estado IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor. Nota: o valor padrão de 5 pips deslizamento é usado. Para especificar a derrapagem personalizada ou desativar a derrapagem, use métodos extendidos de submitOrder (.). Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de valor da ordem submetida - montante em milhões para o preço da ordem - preço preferido para a ordem. Se zero, então o último preço de mercado visível no JForex será usado. Preço deve ser divisível por 0,1 pips ou ordem será rejeitada. No caso de ordens de mercado, o preço incorreto (pior do que o mercado atual) será alterado para o preço atual e slippage Retorna: nova instância de ordem no estado IOrder. State. CREATED Lança: JFException - se o rótulo não for válido ou já existir, se o valor for Menos do que o mínimo permitido, se alguns dos parâmetros necessários for nulo Consulte também: submitOrder (String, Instrument, OrderCommand, double, double, double). SubmitOrder (String, Instrument, OrderCommand, duplo, duplo, duplo, duplo, duplo). SubmitOrder (String, Instrument, OrderCommand, duplo, duplo, duplo, duplo, duplo, longo). SubmitOrder (String, Instrument, OrderCommand, duplo, duplo, duplo, duplo, duplo, longo, String) submitOrder Envia nova ordem. A ordem retornada está no estado IOrder. State. CREATED e será atualizada para o status IOrder. State. OPENED após a confirmação do servidor. Nota: o valor padrão de 5 pips deslizamento é usado. Para especificar a derrapagem personalizada ou desativar a derrapagem, use métodos extendidos de submitOrder (.). Parâmetros: rótulo - identificador definido pelo usuário para a ordem. O rótulo deve ser exclusivo para a conta de usuário dada entre as ordens atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrument - instrument orderCommand - tipo de pedido enviado. Somente IEngine. OrderCommand. BUY e IEngine. OrderCommand. SELL permitidos neste método quantidade - quantidade em milhões para a ordem Retorna: nova instância de ordem no estado IOrder. State. CREATED Lança: JFException - se o rótulo não for válido ou já existir, se Quantidade é menor que o mínimo permitido, se alguns dos parâmetros necessários for nulo ou se orderCommand não for BUY ou VENDA Veja também: submitOrder (String, Instrument, OrderCommand, double, double, double). SubmitOrder (String, Instrument, OrderCommand, duplo, duplo, duplo, duplo, duplo). SubmitOrder (String, Instrument, OrderCommand, duplo, duplo, duplo, duplo, duplo, longo). SendOrder (String, Instrumento, OrderCommand, duplo, duplo, duplo, duplo, duplo, longo, String) Retorna ordem por etiqueta, ou nulo se nenhuma ordem foi encontrada getOrderById Parâmetros: orderId - ordens id Retorna: ordem ou null. Anatomia de uma estratégia vazia JForex (Parte 1 e Parte 2), é hora de dissecar um trabalho. MAPlay é a estratégia que está incluída com cada download da API do JForex como demonstração. Você pode encontrar o código-fonte completo desta estratégia em / src / singlejartest / no pacote compactado da API do JForex. Lembre-se de que o primeiro método Interface que é executado no início da estratégia é onStart. O método onStart do MAPlay é reproduzido abaixo. As variáveis ​​motor. Indicadores. E console são campos da classe MAPlay. São variáveis ​​globais dentro da classe. O que as linhas 42--44 fazem é salvar o IEngine. IIndicadores. E objetos IConsole para uso posterior. A última linha do onStart, linha 45, é meramente imprimir uma mensagem no console do programa JForex para notificar o usuário de que a estratégia foi iniciada. Assim que o onStart terminar de processar, o servidor provavelmente chamará onTick se um tick do mercado chegar. Se o seu não durante o horário de mercado, então não há nenhum sinal 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 IStrategy Interface evento. Para esta estratégia em particular, o programador decide implementar sua estratégia no nível do carrapato. Como tal, grande parte do algoritmo de negociação reside no onTick para MAPlay. Note que esta é uma escolha de design, você pode usar onBar se você quiser que sua estratégia para processar no nível de barra (ou você pode usar tanto onTick e onBar). Heres o código fonte para onTick em MAPlay. De relance, você pode notar que as variáveis ​​ma0 e ma1 desempenham um papel fundamental na determinação da configuração. Dica: Para engenharia reversa de uma estratégia, pode ser mais fácil trabalhar para trás a partir de quando a ordem é colocada, o que é feito por 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. As linhas 56--63 verificam usando testes IF (linhas 56 e 60) para ver se uma das variáveis ​​contém dados inválidos. Se os dados forem inválidos, o indicador é calculado e o restante do onTick é ignorado com a declaração de retorno na linha 62. Nota: Os valores dos indicadores podem às vezes ser inválidos (zero, negativo ou Double. NaN, dependendo da implementação do indicador específico ) Se não houver dados suficientes para o calcular ou se ocorrer um erro, por exemplo. As EMAs são obtidas nas linhas 57 e 59 usando o objeto IIndicators (que foi inicializado no onStart). O JForex Wiki fornece uma explicação do 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 em ma1instrument. ordinal (). Em outras palavras, ele está solicitando o slot de instrumentos atual no array ma1. O instrumento atual é aquele que é passado para o método na linha 55. Movendo para baixo 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, significando nenhuma posição aberta, então a estratégia procede 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 todas as ordens obtidas de engine. getOrders (instrumento) Uma vez que uma das condições longas ou curtas, linhas 68 e 72, respectivamente, é atendida, a estratégia envia uma ordem nas linhas 69 para um curto e Linha 73 durante um longo. Os detalhes de submeter ordens do mercado são descritos no JForex Wiki. Quando você parar essa estratégia, onStop (linhas 48--53) é chamado. Para esta estratégia, o programador faz um loop através de todas as ordens usando novamente engine. getOrders () e fecha cada posição com um comando order. close () na linha 50. Isso é para esta estratégia trivial. Se há um ponto que você deve se lembrar. Note o meu uso de muitos links para o javadoc JForex e JForex Wiki ao longo deste post. É provável que você encontre muitas das suas respostas dessas duas fontes. Se não, há sempre o JForex Support Board. Agora que você teve uma idéia de como MAPlay. java funciona, é hora de testá-lo. No próximo post em janeiro, discutiremos o JForex Historical Tester e o que observar quando executar uma estratégia ao vivo. Analisamos quatro dos seis métodos na interface IStrategy em um post anterior. Os dois últimos métodos, onTick e onBar, é onde sua estratégia se conectar com dados de mercado. Qualquer um ou ambos, destes métodos é onde você colocar o seu algoritmo de negociação dentro Sua estratégia seria então capaz de processar os dados de mercado como eles chegam um tick / bar 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. OnTick / onBar é a cabeça de sua estratégia, que contém o seu algoritmo de negociação, que é o cérebro. Aqui está a definição do método onTick. Importante: onTick é chamado para cada instrumento ao qual sua plataforma JForex está inscrita (a lista de instrumentos em sua caixa de espaço de trabalho). Deixe-me dizer que, novamente, onTick é chamado para cada instrumento que sua plataforma JForex está inscrito. A prática padrão é filtrar os carrapatos para os instrumentos que você não deseja com uma declaração IF-return simples. If (instrument myInstrument) return Os dados de tick reais são passados ​​para a sua estratégia usando o objeto ITick do parâmetro onTick. Dê uma olhada na entrada javadoc ITick para ver o que ela oferece. OnBar funciona de forma semelhante ao onTick. Em que onBar é chamado para cada instrumento subsribed e período conhecido por JForex. Da mesma forma, você tem que filtrar todos os instrumentos indesejados e períodos ou então haverá resultados esperados de sua estratégia. Outro ponto a ser observado é que onBar fornece tanto um IBar askBar quanto um IBar bidBar, representando as barras ask e bid. Pergunta: O que acontece quando dois ou mais períodos se sobrepõem como em barras 13:45 1, 5 e 15 minutos estão chegando ao mesmo tempo (para não mencionar os períodos em segundos também). Resposta: De acordo com Dukascopy Suporte no fórum, eles vêm em uma ordem rigorosa, por exemplo (1min 1min 1min 1min 1min 5min 1min 1min 1min 1min 1min 5min.) Eles vêm em ciclos, onde períodos menores vem em primeiro lugar. JForex Support Forum Como você programa sua estratégia com JForex, você sem dúvida vir acima com perguntas de seu próprio. O melhor lugar para perguntar é no Fórum de suporte oficial do JForex. Este é o último dos três recursos essenciais do JForex que eu aludei anteriormente. Mesmo se você não tem nenhuma pergunta específica, há códigos de amostra, discussão de codificação e centenas de QampA existentes de outros desenvolvedores do JForex postados no fórum. A discussão até agora tem sido de nível muito alto. Para mostrar o que você realmente pode fazer em uma IStrategy, vamos dissecar uma estratégia de trabalho no próximo post. E o que mais melhor para examinar do que a mais popular estratégia JForex de todos eles - MAPlay. java. Continuando na parte 1 desta série: Começando a aprender a programação do JForex. Agora estavam prontos para discutir a coisa real. Você constrói 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 vazia IStrategy Interface, também conhecida como uma estratégia JForex. Esse código compilará bem no JForex e você poderá executá-lo. Mas ele 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á apenas chamado e sair imediatamente. Cada um dos métodos é acionado 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 de 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 IStrategy é o esqueleto, então IContext é o coração da estratégia. Por favor, dê uma olhada neste link javadoc para IContext para ver o que este objeto faz. Javadoc. Agora é um bom momento para introduzir o segundo dos três recursos essenciais de um programador JForex. O JForex Javadoc é a documentação mais atualizada da API explicando cada objeto e métodos da API JForex. Pense nisso como um manual de referência. Observe que, embora sua abrangente, a maioria da explicação é muito esparsa e possivelmente incompleta. IContext é um objeto JForex principal para acessar muitos componentes importantes do sistema JForex, como o mecanismo de pedidos, gráficos, console, indicadores. Você começa a idéia. É importante que você normalmente queira manter uma cópia local dele, pois esta é a única vez (no onStart) que este objeto será passado para você no IStrategy. OnStop (linha 26) Como o nome sugere, esse método é chamado quando você envia um comando stop para sua estratégia. Você faz seu encerramento do programa, como registrar e limpar dados aqui. Não muito fora do comum com este. OnMessage (linha 18) Considerando que sabemos quando onStart e onStop será chamado, onMessage é um método assíncrono em que você não sabe exatamente quando ele será executado. Este método é chamado quando o servidor Dukascopy envia sua estratégia uma mensagem. Por exemplo, o servidor chama onMessage para informá-lo de 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 estratégico esteja obstruído. Ou talvez a sua ligação à Internet teve um soluço. Se o seu onMessage estratégia não é chamado pelo servidor por qualquer motivo, o servidor não poderia se preocupar menos e não será verificar nem tentar novamente. Portanto, não faça nada crítico como gerenciar seus pedidos no onMessage onAccount (linha 22) Esse método é chamado sempre que a atualização das informações da conta é recebida. O método fornece acesso ao objeto IAccount. Que você usa para obter as informações de sua conta. Diga se você tem uma posição aberta, suas informações de conta mudam em cada tick porque seu patrimônio é lucro / perda 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 à sua conta no servidor. É apenas um instantâneo da sua conta. Por exemplo, se você manter uma cópia local de um objeto IAccount. Faça algumas negociações para alterar o seu saldo. Em seguida, pergunte a mesma IAccount para informações de saldo da conta, você não verá uma alteração. Como tal, sempre atualize sua cópia local de IAccount dentro do método onAccount para manter suas informações de conta atualizadas para o uso de strategys. Os métodos onStart, onStop, onMessage e onAccount são métodos administrativos para sua estratégia. Os dois últimos métodos que discutem bem, onTick e onBar, é onde a magia acontece em uma estratégia. Estou guardando o melhor para o último no próximo post. 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 JForex não é realmente uma linguagem de programação. É uma interface de programação de aplicativos (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. Beginners 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. Tendo estudado a anatomia de uma estratégia vazia JForex (Parte 1 e Parte 2), é hora de dissecar um trabalho. MAPlay é a estratégia que está incluída com cada download da API do JForex como demonstração. Você pode encontrar o código-fonte completo desta estratégia em / src / singlejartest / no pacote compactado da API do JForex. Lembre-se de que o primeiro método Interface que é executado no início da estratégia é onStart. O método onStart do MAPlay é reproduzido abaixo. As variáveis ​​motor. Indicadores. E console são campos da classe MAPlay. São variáveis ​​globais dentro da classe. O que as linhas 42--44 fazem é salvar o IEngine. IIndicadores. E objetos IConsole para uso posterior. A última linha do onStart, linha 45, é meramente imprimir uma mensagem no console do programa JForex para notificar o usuário de que a estratégia foi iniciada. Assim que o onStart terminar de processar, o servidor provavelmente chamará onTick se um tick do mercado chegar. Se o seu não durante o horário de mercado, então não há nenhum sinal 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 IStrategy Interface evento. Para esta estratégia em particular, o programador decide implementar sua estratégia no nível do carrapato. Como tal, grande parte do algoritmo de negociação reside no onTick para MAPlay. Note que esta é uma escolha de design, você pode usar onBar se você quiser que sua estratégia para processar no nível de barra (ou você pode usar tanto onTick e onBar). Heres o código fonte para onTick em MAPlay. De relance, você pode notar que as variáveis ​​ma0 e ma1 desempenham um papel fundamental na determinação da configuração. Dica: Para engenharia reversa de uma estratégia, pode ser mais fácil trabalhar para trás a partir de quando a ordem é colocada, o que é feito por 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. As linhas 56--63 verificam usando testes IF (linhas 56 e 60) para ver se uma das variáveis ​​contém dados inválidos. Se os dados forem inválidos, o indicador é calculado e o restante do onTick é ignorado com a declaração de retorno na linha 62. Nota: Os valores dos indicadores podem às vezes ser inválidos (zero, negativo ou Double. NaN, dependendo da implementação do indicador específico ) Se não houver dados suficientes para o calcular ou se ocorrer um erro, por exemplo. As EMAs são obtidas nas linhas 57 e 59 usando o objeto IIndicators (que foi inicializado no onStart). O JForex Wiki fornece uma explicação do 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 em ma1instrument. ordinal (). Em outras palavras, ele está solicitando o slot de instrumentos atual no array ma1. O instrumento atual é aquele que é passado para o método na linha 55. Movendo para baixo 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, significando nenhuma posição aberta, então a estratégia procede 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 todas as ordens obtidas de engine. getOrders (instrumento) Uma vez que uma das condições longas ou curtas, linhas 68 e 72, respectivamente, é atendida, a estratégia envia uma ordem nas linhas 69 para um curto e Linha 73 durante um longo. Os detalhes de submeter ordens do mercado são descritos no JForex Wiki. Quando você parar essa estratégia, onStop (linhas 48--53) é chamado. Para esta estratégia, o programador faz um loop através de todas as ordens usando novamente engine. getOrders () e fecha cada posição com um comando order. close () na linha 50. Isso é para esta estratégia trivial. Se há um ponto que você deve se lembrar. Note o meu uso de muitos links para o javadoc JForex e JForex Wiki ao longo deste post. É provável que você encontre muitas das suas respostas dessas duas fontes. Se não, há sempre o JForex Support Board. Agora que você teve uma idéia de como MAPlay. java funciona, é hora de testá-lo. No próximo post em janeiro, discutiremos o JForex Historical Tester e o que observar quando executar uma estratégia ao vivo.

No comments:

Post a Comment