Método Detalhe submitOrder Submita nova ordem. O pedido devolvido está no estado IOrder. State. CREATED e será atualizado 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de montante do pedido enviado - valor em milhões para o preço da ordem - preço preferido para o pedido. Se zero, o último preço de mercado visível no JForex será usado. O preço deve ser divisível em 0,1 pips ou a 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 o deslizamento de deslizamento - derrapagem. O valor de deslizamento significa o seguinte: se negativo, o valor padrão de 5 pips é usado se Double. isNaN (slppage) true, então, não há deslizamento, caso contrário, o deslizamento é definido em pips, você deve passar 1, não 0.0001 stopLossPrice - preço do parar a perda de. O preço deve ser dividido em 0,1 pips ou a ordem será rejeitada takeProfitPrice - preço do lucro obtido. O preço deve ser divisível por 0,1 pips ou a ordem será rejeitada goodTillTime - quanto tempo a ordem deve viver se não for executada. Somente se for 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 Devoluções: nova instância de ordem no estado IOrder. State. CREATED Lances: JFException - se o rótulo não for válido ou já existe, se goodTillTime 0 e orderCommand não forem BIDOFFER, se o valor for menor do que o mínimo permitido , Se alguns dos parâmetros necessários forem null SubmitOrder Submita nova ordem. O pedido devolvido está no status IOrder. State. CREATED e será atualizado 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de montante do pedido enviado - valor em milhões para o preço da ordem - preço preferido para o pedido. Se zero, o último preço de mercado visível no JForex será usado. O preço deve ser divisível em 0,1 pips ou a 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 o deslizamento de deslizamento - derrapagem. O valor de deslizamento significa o seguinte: se negativo, o valor padrão de 5 pips é usado se Double. isNaN (slppage) true, então, não há deslizamento, caso contrário, o deslizamento é definido em pips, você deve passar 1, não 0.0001 stopLossPrice - preço do parar a perda de. O preço deve ser dividido em 0,1 pips ou a ordem será rejeitada takeProfitPrice - preço do lucro obtido. O preço deve ser divisível por 0,1 pips ou a ordem será rejeitada goodTillTime - quanto tempo a ordem deve viver se não for executada. Somente se for 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 Lances: JFException - se o rótulo não for válido ou já existir, se goodTillTime 0 e orderCommand não forem BIDOFFER, se o valor for menor que o mínimo permitido, se alguns dos parâmetros necessários forem nulos SubmitOrder Submita nova ordem. O pedido devolvido está no status IOrder. State. CREATED e será atualizado 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de montante do pedido enviado - valor em milhões para o preço da ordem - preço preferido para o pedido. Se zero, o último preço de mercado visível no JForex será usado. O preço deve ser divisível em 0,1 pips ou a 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 o deslizamento de deslizamento - derrapagem. O valor de deslizamento significa o seguinte: se negativo, o valor padrão de 5 pips é usado se Double. isNaN (slppage) true, então, não há deslizamento, caso contrário, o deslizamento é definido em pips, você deve passar 1, não 0.0001 stopLossPrice - preço do parar a perda de. O preço deve ser dividido em 0,1 pips ou a ordem será rejeitada takeProfitPrice - preço do lucro obtido. O preço deve ser divisível em 0,1 pips ou a ordem será rejeitada Retorna: nova instância de ordem no estado IOrder. State. CREATED Lances: JFException - se o rótulo não for válido ou já existir, se o valor for menor que o mínimo permitido, se algum dos necessários Parâmetros é null SubmitOrder Submita nova ordem. O pedido devolvido está no status IOrder. State. CREATED e será atualizado 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de montante do pedido enviado - valor em milhões para o preço da ordem - preço preferido para o pedido. Se zero, o último preço de mercado visível no JForex será usado. O preço deve ser divisível em 0,1 pips ou a 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 o deslizamento de deslizamento - derrapagem. O valor do deslizamento significa o seguinte: se negativo, o valor padrão de 5 pips é usado se Double. isNaN (slppage) true, então, não há deslizamento, caso contrário, o deslizamento é definido em pips, você deve passar 1, não 0.0001 Retorna: nova instância de ordem No estado IOrder. State. CREATED Lances: 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 alguns dos parâmetros necessários forem null SubmitOrder Submita nova ordem. O pedido devolvido está no estado IOrder. State. CREATED e será atualizado para o status IOrder. State. OPENED após a confirmação do servidor. Nota: o valor padrão de deslizamento de 5 pips é usado. Para especificar o deslizamento personalizado, ou desabilitar o deslizamento, use os métodos extendidos do 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de montante do pedido enviado - valor em milhões para o preço da ordem - preço preferido para o pedido. Se zero, o último preço de mercado visível no JForex será usado. O preço deve ser divisível em 0,1 pips ou a 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 o deslizamento 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 forem nulos. 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 Submita nova ordem. O pedido devolvido está no estado IOrder. State. CREATED e será atualizado para o status IOrder. State. OPENED após a confirmação do servidor. Nota: o valor padrão de deslizamento de 5 pips é usado. Para especificar o deslizamento personalizado, ou desabilitar o deslizamento, use os métodos extendidos do 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 fornecida entre os pedidos atuais. Caracteres permitidos: letras, números e. O rótulo deve ter no máximo 256 caracteres. Instrumento - ordem do instrumentoCommand - tipo de pedido enviado. Somente IEngine. OrderCommand. BUY e IEngine. OrderCommand. SELL permitido neste valor do método - montante em milhões para a ordem Devoluções: instância de nova ordem no estado IOrder. State. CREATED Lances: JFException - se o rótulo não for válido ou já existir, se O valor é menor do que o mínimo permitido, se alguns dos parâmetros necessários forem nulos ou se o pedido não for COMPRAR ou VENDER 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). EnviarOrder (String, Instrument, OrderCommand, double, double, double, double, double, long, String) Retorna a ordem pelo rótulo, ou null se nenhuma ordem foi encontrada. Parâmetros getOrderById: orderId - id das ordias: ordem ou nulo. Tendo estudado o Anatomia de uma estratégia JForex vazia (Parte 1 e Parte 2), é hora de dissecar uma operação. 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.
Comments
Post a Comment