Friday 3 January 2020

Jforex api docs


Termos de Uso 1. Concessão de Licença A Dukascopytrade (Suisse) SA (doravante denominada quotLicensorquot) e o Usuário Final (a seguir designado por quotLicenseequot) concluem um acordo juridicamente vinculativo. Sujeito aos termos e condições do Contrato de Licença do Usuário Final (doravante denominado quotEULAquot), o Licenciante concede à Licenciada licença não exclusiva, intransferível e mundial para uso pessoal, não comercial (instâncias de uso não pessoal e comercial) São permitidos quando evidenciado por um acordo complementar assinado que é considerado uma parte dos Termos de Uso da Dukascopytrade), uso temporário e acesso à API Jubore de Dukascopytrade. Todas as imagens, materiais, quaisquer outros dados ou informações contidos, qualquer outro serviço ou produto distribuído pelo Licenciador, bem como todas as futuras atualizações, aprimoramentos e seqüelas (a seguir designados por quotContentquot). Certas partes do Conteúdo são expressamente identificadas como livremente disponíveis para integração e modificação limitada dentro da API JForex dos Licenciados com base em uso não comercial. O direito de licenciamento de modificar qualquer parte do Conteúdo oferecido deve limitar-se a modificar apenas o formato, a aparência e a sensação da API JForex da Licenciada. O Licenciador reserva-se o direito de definir os limites do uso não comercial do Conteúdo ou de qualquer parte do mesmo. Todas as formas de uso que estão fora desta definição devem ser consideradas como exemplos de uso comercial. Para obter uma licença comercial (que é oferecida gratuitamente por um período de tempo limitado), solicite por e-mail a apidukascopy. 2. Restrições de Licença O Licenciado não pode vender, alugar, alugar, sub-licenciar, ceder, emprestar, publicar, comercializar ou de qualquer forma distribuir ao terceiro, traduzir para outra linguagem de programação, porta, adaptar, modificar, engenharia reversa, Descompilar, desmontar, armazenar para uso comercial qualquer parte do Conteúdo ou quaisquer seus derivados, usar código fonte ou objeto ou, de outra forma, usar Conteúdo. O Licenciado não pode usar ou acessar o Conteúdo ou integrar qualquer parte dele (no juízo exclusivo dos Licenciantes) se tal ação puder ter um efeito adverso sobre a boa vontade, a reputação, a marca registrada ou a imagem pública dos Licenciadores devido ao uso de uma forma (ou integrada com materiais Que são) moralmente censuráveis, violentos, eróticos, pornográficos, sexistas, racistas, profanos, ilegais ou que dão responsabilidade civil. O Licenciado concorda expressamente em exibir o aviso de direitos autorais ou marca comercial dos Licenciantes (conforme indicado na Seção 8 quotTrademark informationquot) na mesma página da Web que será facilmente identificável (por um observador objetivo) como parte integrante de qualquer parte do Conteúdo usado pelo Licenciado. O Licenciado não pode alterar ou remover qualquer aviso de direitos autorais ou marca registrada ou legenda de propriedade contida em ou em qualquer parte do Conteúdo. Todos os direitos que não são expressamente concedidos no EULA são retidos pelo Licenciador. O Licenciador não possui ou desenvolve o Conteúdo, mas tem o direito exclusivo de sub-licenciar o uso e acesso ao Conteúdo e é um representante de seus proprietários e desenvolvedores. O Licenciante não faz reclamações nem representações sobre Conteúdo. O conteúdo está constantemente sendo desenvolvido e forneceu quotAS ISquot, quotAS DISPONIBILIDADE, quotWITH ALL SUS FAULTSquot e - na medida permitida por lei - é oferecido sem quaisquer convênios ou quaisquer garantias expressas, implícitas ou legais, incluindo (sem limitação e qualificação) quaisquer garantias quanto a Precisão, funcionalidade, desempenho, comercialização, aproveitamento silencioso, integração do sistema, precisão de dados, violação de direitos de propriedade intelectual ou adequação para qualquer propósito específico e quaisquer garantias decorrentes de uso comercial, curso de negociação ou curso de desempenho. Nem o Licenciador nem qualquer outra parte (incluindo - sem limitação e qualificação - proprietários, gerentes, desenvolvedores, funcionários, funcionários, afiliados, agentes, representantes, contratados, prestadores de serviços de comunicação ou qualquer terceiro) monitora, controla ou garante qualidade, precisão, Integridade, pontualidade, veracidade, confiabilidade, ausência de qualquer vírus, adequação ou disponibilidade de Conteúdo (incluindo, mas não limitado a informação, texto, gráficos, links ou outros itens obtidos através do acesso, uso, consulta ou exploração de Conteúdo) e deve ter qualquer Responsabilidade, contingente ou de outra forma, por quaisquer danos diretos, indiretos, incidentais, conseqüentes, especiais, exemplares ou punitivos ou quaisquer outros danos, incluindo (sem limitação ou qualificação) perda de lucro, investimento, perdas comerciais ou qualquer outra perda econômica resultante da provisão (ou Falta de provisão) de Conteúdo, independentemente da causa ou forma de ação, seja em responsabilidade civil, contrato, responsabilidade objetiva, responsabilidade legal Ou se, ou não, tais danos foram previstos, imprevistos ou previsíveis, mesmo que o Licenciante tenha sido avisado da possibilidade de tais danos. Sem limitar o que precede, no caso de estes termos e condições, ou qualquer parte dele, ser considerados inválidos, ilegais ou inexequíveis por um tribunal da jurisdição competente, o Licenciado concorda expressamente que a responsabilidade dos Licenciantes não deve exceder o valor equivalente a 1 ( Um dólar dos EUA). Uso da tecnologia Java Parte do conteúdo envolve o uso da tecnologia Java. A tecnologia Java não é tolerante a falhas e não foi projetada, fabricada ou destinada para uso ou revenda como equipamento de controle on-line em ambientes perigosos que exigem desempenho a prova de falhas, como na operação de instalações nucleares, sistemas de navegação ou comunicação de aeronaves, controle de tráfego aéreo , Máquinas diretas de suporte de vida ou sistemas de armas, em que a falha na tecnologia Java pode levar diretamente à morte, ferimentos pessoais ou danos físicos ou ambientais severos. Nenhuma informação ou material no Conteúdo deve ser invocado para fins de tomada de decisão de investimento ou de comunicação (ou de abster-se de fazer ou de comunicar) ou de qualquer outro tipo de transações. O licenciado deve realizar uma pesquisa independente, obter aconselhamento especializado (aplicável à situação particular da Licenciada) e sempre se referir a fontes alternativas de informação (incluindo - sem limitação e qualificação - as cotações de preços, notícias do mercado, etc.) antes de confiar em qualquer informação Encontrado no Conteúdo. O Licenciado concorda expressamente que recebeu um aviso justo e assume todo o risco de perda no uso do Conteúdo. Notícias fornecidas pela Dow Jones Uma série de produtos Dukascopytrade podem conter texto, manchetes, dados, gráficos e fotografias (doravante denominados coletivamente quotNewsquot) fornecidos pela Dow Jones amp Company Inc. (UES), (a seguir designado por "James Jones") . A notícia é propriedade da Dow Jones ou de seus licenciadores e está protegida pelas leis de propriedade intelectual aplicáveis. As notícias podem ser usadas apenas para fins pessoais não comerciais. A Dow Jones tem o direito de deixar de fornecer notícias ou alterar seu conteúdo a qualquer momento sem uma notificação prévia. O Licenciado concorda em não armazenar, copiar, reproduzir, distribuir, transferir, publicar, criar seu próprio conteúdo de notícias com base em Dow Jones News, transmitir ou disseminar o conteúdo da Dow Jones sem o consentimento prévio por escrito da Dow Jones. A Dow Jones não será responsável por qualquer atraso nos licenciados que receberem a Notícia ou para Notícias contendo informações intempestivas ou incorretas ou para Notícias contendo quaisquer omissões. As notícias são fornecidas com base em quotas e a Dow Jones e suas subsidiárias, agentes e licenciadores não fazem nenhuma e, por meio disso, renunciam especificamente a quaisquer representações, endossos, garantias ou garantias, expressas ou implícitas, incluindo, sem limitação, qualquer precisão, pontualidade , Integridade, comerciabilidade, adequação a um propósito específico, título ou não violação de direitos de propriedade intelectual. A Dow Jones e suas subsidiárias, agentes e licenciadores não serão responsáveis ​​por quaisquer danos além de morte ou lesão diretamente relacionados ao uso da News, na medida em que a morte ou lesão tenha sido causada pela negligência ou contingências da Dow Jones fora do controle do Dow Participações de Jones na obtenção, compilação, interpretação, divulgação ou divulgação Notícias Dow Jones e suas subsidiárias, agentes e licenciadores não serão responsáveis ​​por decisões ou ações feitas com base no conteúdo de Notícias. A Dow Jones e suas subsidiárias, agentes e licenciadores não são responsáveis ​​por quaisquer danos que não sejam danos diretos, incluindo, entre outros, danos indiretos, mesmo que tenham sido avisados ​​dessa possibilidade. Em nenhum caso, a responsabilidade da Dow Jones e de suas subsidiárias, agentes e licenciadores decorrentes de qualquer reclamação relacionada a este contrato ou a matéria acima mencionada excederão o valor total pago pelo seu distribuidor licenciado nos doze (12) meses imediatamente anteriores ao evento Dando origem a tal reclamação. Traduções da JForex API A JForex API está disponível em vários idiomas. A versão em inglês é a versão original e o Licenciante não será responsável por quaisquer traduções erradas, inadequadas ou enganosas da versão original para outros idiomas. O Licenciado aceita expressamente indenizar e isentar o Licenciante ou qualquer outro terceiro de qualquer reclamação, honorários (incluindo - sem limitação e qualificação - honorários advocatícios), responsabilidade, perdas resultantes da provisão (ou falta de provisão) de Conteúdo, violação das provisões de EULA , Ou direitos de terceiros (incluindo - sem limitação e qualificação - direitos de propriedade intelectual). 5. Residência e Restrições Legais A provisão de conteúdo não é destinada a residentes de jurisdições de que, por qualquer motivo, o acesso e uso de Conteúdo ou qualquer parte dela seja proibido ou estritamente regulamentado (por exemplo, EUA). O licenciado sujeito a tais restrições não pode acessar e usar o Conteúdo ou qualquer parte dele. Devido a uma infinidade de regulamentações internacionais e seu constante aumento da incapacidade do pequeno negócio na Internet de cumprir todos os requisitos regulamentares de vários sistemas legais em todo o mundo, não deve ser interpretado como um ato intencional e é pura coincidência. As citações são resultado de uma forma original de compilação de dados e alto grau de criatividade com base na implementação de um método estatístico único. As citações fornecem ao Licenciado um novo tipo de feed de dados em tempo real com propriedades originais em termos de formato, freqüência, eliminação de ruído, etc. E representam uma solução inovadora e criativa para a nova geração de sistemas automáticos inteligentes de negociação. Os nomes das bolsas de valores (por exemplo, NYSE, NASDAQ) são usados ​​no Conteúdo exclusivamente para informar o Licenciado onde um instrumento específico pode ser negociado. Nenhuma bolsa de valores fornece ao Licenciador dados de mercado, a menos que expressamente declarado o contrário. As cotações representam uma gama de valores resultantes de um método de filtragem de dados de mercado Dukascopytrade premiado e patenteado. A filtração é realizada monitorando e processando os dados obtidos dos comerciantes usando o Dukascopytrade Market Machin e, além da comparação das informações recebidas com os dados obtidos das fontes alternativas. O valor real alcançado é uma previsão de preço ideal para um período de dez segundos. Ao determinar a previsão, os preços de mercado sempre flutuantes foram domesticados pelo método de processamento de dados que reduz os efeitos do ruído de preço. O licenciado que consulta as cotações de preços concorda expressamente em organizar e usar o acesso simultâneo às fontes alternativas de dados de mercado. Apenas podendo comparar as cotações fornecidas com as mesmas citações das fontes alternativas, o Licenciado pode verificar se ela é apresentada com uma visão objetiva do mercado. 7. Propriedade das Publicações de Informação, qualquer outra informação que inclua (sem limitação e qualificação) imagens de pessoas ou lugares exibidos no Conteúdo são propriedade do Licenciador ou são usadas com permissão. O Licenciado ou outros terceiros não devem usar essas informações sem um prévio consentimento por escrito. O uso inadequado dessas informações pode violar os regulamentos de comunicação e as leis relativas à privacidade e aos direitos de propriedade intelectual. 8. Informações sobre marca registrada Todas as marcas de comércio e serviços, logotipos e quaisquer outras marcas, registradas ou não registradas, mostradas em Conteúdo são de propriedade de seus respectivos proprietários. Exceto conforme expressamente especificado nestes termos e condições, nada contido neste documento deve ser interpretado como conferindo por implicação, impedimento ou de outra forma qualquer licença ou direito sob qualquer patente, segredo comercial, marca registrada, direitos autorais ou quaisquer direitos de propriedade do Licenciador ou qualquer terceiro. Ao integrar qualquer parte do Conteúdo dentro da API, o Licenciado concorda expressamente em incluir o seguinte reconhecimento na mesma API que será facilmente identificável como parte e parcela de qualquer parte do Conteúdo usado pelo Licenciado: quotPowered by Dukascopytrade. quot Ao escrever sobre, citando, Mencionando ou referindo-se a qualquer parte do Conteúdo (ou o método estatístico ou analítico de processamento de dados usado) em qualquer forma escrita ou Site, o Licenciado concorda expressamente em usar a palavra quot Dukascopytrade quot (começando com a letra maiúscula, guionada em itálico e Incluindo o símbolo da marca registrada USPTO). A marca registrada deve ser usada como um adjetivo descritivo. Ao fazer referências ao Conteúdo, os nomes dos autores e os títulos das fontes devem ser imediatamente seguidos pela única quot Dukascopytrade quot (começando com a letra maiúscula, escritas em itálico e incluindo o símbolo da marca registrada USPTO). A violação das disposições acima mencionadas será considerada pelos autores como violação dos seus direitos de propriedade intelectual. 9. Links para outros sites O Licenciador não está afiliado nem patrocinado por qualquer empresa, bolsa de valores ou qualquer outra organização mencionada no Conteúdo, a menos que expressamente declarado o contrário. Nenhum site da Web referido ou hiperligado no Conteúdo é afiliado, patrocinado ou promovido pelo Licenciador, a menos que expressamente declarado o contrário. O Licenciador não analisou todos os sites que estão vinculados à sua API e o fato de tais links não indicar qualquer aprovação ou endosso de qualquer material contido em qualquer site vinculado. O Licenciador não é responsável pelo conteúdo de qualquer site vinculado a ele e a conexão de Licenciados a qualquer site vinculado é no único risco de Licenciado. 10. Uso de Demos As demonstrações devem ser utilizadas pelo Licenciado somente para os fins que são oferecidos e em estrita conformidade com as instruções dadas, seu uso e disponibilidade podem ser limitados no tempo. 11. Uso indevido da Tecnologia Dukascopytrade pelos Terceiros O Licenciador não será responsável por qualquer uso indevido da tecnologia Dukascopytrade pelos terceiros, incluindo (sem limitação e qualificação) qualquer tipo de atividade que dê origem a responsabilidade legal. O Licenciado que acessou e utilizou o Conteúdo ou qualquer parte dele através de um site da Web de terceiros ou instalações associadas deve fazê-lo no único risco do Licenciado. O Licenciador não é capaz de monitorar, endossar, influenciar ou controlar sites de terceiros ou os serviços que eles oferecem. 12. Clientes de corretores registrados com o Licenciante O titular da licença que acessou e utilizou o Conteúdo através de um contrato com o corretor registrado no Licenciador estará vinculado pelos Termos de Uso da Dukascopytrade. De acordo com o Contrato de Corretagem e Uso de Plataforma de Negociação (Software) - além de outros requisitos - A Seção 3 quotDisclaimerquot deve fazer parte do contrato de Licenciado com tal corretor. Informe qualquer violação deste contrato ao Licenciador (apidukascopy). 13. Cessação de uso O Licenciante, a seu exclusivo critério, reserva (entre outros) o direito de mudar, recusar ou interromper o fornecimento de Conteúdo ao Licenciado sem oferecer nenhum motivo. Se o Licenciado violar qualquer disposição do EULA, o contrato será automaticamente encerrado. A rescisão do EULA está sujeita à Secção 23 quotSeverabilityquot. Em caso de falência, o Licenciante deve ter o direito de rejeitar qualquer contrato de licença, terminando assim todos os direitos de Licenciado sob ele. Qualquer disposição legal na jurisdição aplicável que tenha efeito de preservar direitos de licenciado é expressamente excluída. O Licenciado concorda expressamente que o Licenciador tratará todas as comunicações do Licenciado incluindo (sem limitação e qualificação) dados, perguntas, comentários, sugestões ou envios como não confidenciais e não proprietários. As comunicações podem ser usadas para qualquer finalidade, incluindo (sem limitação e qualificação) reprodução, transmissão, divulgação, publicação, transmissão e publicação. O Licenciador pode usar, sem qualquer obrigação para o Licenciado de qualquer tipo, idéias, sugestões, conceitos, técnicas ou quotknow-howquot contidos nas comunicações dos Licenciados, para qualquer finalidade, incluindo (sem limitação e qualificação) produtos e serviços de desenvolvimento, fabricação e comercialização . O Licenciado autoriza o Licenciador a divulgar as informações confidenciais dos Licenciados quando necessário para fins comerciais (por exemplo, para configurar a conta do Licenciado), exigido por lei, ordem judicial ou autoridades reguladoras. Para mais detalhes, consulte a Declaração de Política de Privacidade. Se o Licenciado optar por não se registrar e fornecer informações pessoais, o Licenciado ainda poderá usar a maioria do Conteúdo. No entanto, o Licenciado não poderá acessar a área ou instalações dentro do Conteúdo que exigem registro. 17. Direito de Execução O Licenciante pode, a seu exclusivo critério, recorrer a processos legais e outros meios legais para fazer cumprir o cumprimento do contrato por parte dos Licenciados. A falta de tal não constitui uma renúncia aos direitos dos Licenciadores. O EULA será regido e interpretado de acordo com o direito suíço como única e exclusiva lei de governo. Somente para o benefício do Licenciador, quaisquer controvérsias decorrentes ou relacionadas a estes termos e condições serão resolvidos exclusivamente pelos Tribunais de Genebra, sendo o direito reservado ao Tribunal Federal Suíço de Lausanne. O Licenciado concorda expressamente em submeter à jurisdição de tais Tribunais para todos os propósitos. Esta disposição, no entanto, não impedirá o Licenciador de iniciar uma ação legal em outra jurisdição relevante. Se o Licenciado não recorrer a processos judiciais no prazo de um ano (365 dias) após a ocorrência da causa, o Licenciado perde seu direito de ter um processo de Licenciado em juízo e não possui remédio. 19. Forçar Maiores Licenciantes a não fornecer Conteúdo e executar quaisquer das suas obrigações contratuais ou legais como resultado de condições além do controle de Licenciantes, tais como (sem limitação e qualificação) guerra, greves, incêndios, inundações, atos de Deus, restrições governamentais, poder Falhas ou danos ou destruição de instalações ou servidores de rede, não devem ser consideradas uma violação das obrigações legais dos Licenciadores. O Licenciado deve pagar todos os impostos e retenções aplicáveis ​​às transações que possam ocorrer usando o Conteúdo ou qualquer parte dele. O Licenciador não será responsável pela evasão de impostos dos Licenciados. Uma vez que o Licenciado tenha se cadastrado no Licenciador, o Licenciado é o único responsável pela guarda dos detalhes do registro de Licenciados e não pode permitir o uso de terceiros da ID e senha do Licenciado. Este é o acordo exclusivo e completo que substitui todas as outras representações orais e escritas. Se qualquer disposição do EULA for declarada inválida ou inexequível por um tribunal de jurisdição competente, tal disposição só será reformada na medida necessária para torná-lo executável, as demais disposições deste Contrato permanecerão em vigor. Todas as seções com exceção da Seção 1 quotGrant of Licensequot devem sobreviver ao encerramento do EULA e aplicar - na medida permitida por lei - em perpetuidade. 24. Recomendações Técnicas O Conteúdo com todas as suas instalações só pode ser usado desde que tenham sido atendidas certas recomendações de hardware e sistema: (i) Java 1.6 ou superior (ii) Conexão com a Internet: 56 Kbs ou superior (iii) CPU: 1500 MHz ou superior (Iv) RAM: 512 Mb ou superior (v) Área de tela de 1024x756 pixels ou superior e 256 cores ou superior. - Concordo com estes Termos de Uso Continue. Há 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. Eles 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 uma função 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. As such, always update your local copy of IAccount within the onAccount method to keep your account information up-to-date for your strategys use. To be continued onStart, onStop, onMessage, and onAccount methods are administrative methods for your strategy. The last two methods that well discuss, onTick and onBar, is where the magic happens in a strategy. I am saving the best for last in the next post. The biggest problem I had when learning to program my own trading strategies in JForex is finding where to start learning. There were few JForex documentation available at the time and I had to teach myself through painstaking trial and error with the help of Dukascopys technical support. Things have certainly changed for the better as a JForex community is starting to sprout and documentation for it is at least sufficient to get anyone started. This post is the first of a series of quick beginners guide to learning JForex programming by putting all these resources in a tutorial. JForex is a Java tool JForex is actually not a programming language. It is an application programming interface (API) for use with the standard Java programming language. As such, the first step to learning to program in JForex is to learn Java. Luckily, Java is one of the most popular programming languages. So therere plenty of resources on and off the web to learn Java programming. Some examples of free online tutorials are: The Java Tutorials -- This is an official tutorial from the developer of Java themselves. Altamente recomendado. Beginners Java Tutorial -- More geared for the absolute beginners to programming. If you prefer a book, I would recommend Head First Java, 2nd Edition. I brushed up on my Java from this book. Dont dwell on Java too much though as you only need to know the basics to get started with JForex. Just read a few chapters to understand the Java syntax and then move on. You can always refer back to them later. Diving into JForex The JForex Wiki is one of the three essential resources for JForex programmers. I will be referring to some specific pages of the Wiki in much of this series of posts. If you havent done so already, signup for a DEMO account at Dukascopy. Then launch the JForex platform and follow the instructions on the Use in JForex wiki page to assemble your first JForex strategy So far so good By this point, I hope you can understand basic Java source code and know how to startopen, compile, and run a JForex strategy. In the next post in this learning JForex series, we will study the anatomy of a JForex strategy .

No comments:

Post a Comment