Legal. Obrigado. No entanto, não consigo encontrar https://forum.mql4.com/270509 - mostra um erro. Além disso, você pode, por favor, postar seu código. Java e mt4 é algo que eu quero usar, mas preciso ver o código.
Eu corrigi o link: https://www.mql5.com/en/forum/121466
Você pode encontrar o código MQL e Java no arquivo ZIP.
esta é uma excelente ferramenta
de alguma forma, não consigo fazer com que funcione. pode me ajudar.
quando eu dirijo a EA, ela cai mt4
Estou usando janelas 7 64bit, Java 7.0.1, MT4 ver4.00 build 409 25 oct 2011
java está instalado aqui C:|jre|bin_client|jvm.dll
mt4 está instalado aqui C:\MT4
fornece a seguinte mensagem de erro
Assinatura do problema:
Nome do Evento Problema: BEX
Nome da Aplicação: terminal.exe
Versão de aplicação: 4.0.0.409
Timestamp de aplicação: 0028f000
Nome do Módulo de Falha: MSVCR100.dll
Versão do Módulo de Falhas: 10.0.30319.1
Módulo de Falha Timestamp: 4ba1dbbe
Compensação de Exceção: 0008ae6e
Código de Exceção: c0000417
Dados de Exceção: 00000000
Versão do SO: 6.1.7601.2.1.0.256.1
ID local: 2057
Informações adicionais 1: a0db
Informações adicionais 2: a0db43c64a51ee21486e76f538ab825d
Informações adicionais 3: 5a50
Informações adicionais 4: 5a50e927a493324cabb3491f7239cdd1
Leia nossa declaração de privacidade on-line:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409
Se a declaração de privacidade on-line não estiver disponível, favor ler nossa declaração de privacidade off-line:
C:\system32en-US-erofflps.txt
Há duas razões possíveis para a queda de seu terminal MT4
1. Você usa uma JVM de 64 bits
Isto não vai funcionar, porque o MT4 é uma aplicação de 32bit. Você deve instalar um JVM de 32bit em seu Win7-64bit, que pode ser usado junto com o MT4.
A verificação da versão JVM não deve mostrar "64 Bit"
C:\jre\bin\bin\java -versão
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, modo misto)
Até agora, eu testei meu programa apenas com Java6. Talvez haja algumas mudanças no Java7 que desencadeiam o crash.
A nova versão 0.2 está disponível, o que irá corrigir a falha do terminal acima.
Olá cyberflohr,
Sou novato em MT, mas tenho alguma experiência com Java, então a ponte é uma ferramenta muito interessante para mim. Realizei toda a etapa de instalação que você mencionou, mas não fui capaz de lançar o exemplo. Fui seguido no registro de especialistas:
20:53:13 mt4jSample EURUSD,H4: carregado com sucesso
20:53:13 mt4jSamostra EURUSD,H4 entradas: IntProperty=99; BoolProperty=true; DoubleProperty=1,23; StringProperty="helloWorld";
20:53:17 mt4jSample EURUSD,H4: não pode carregar a biblioteca 'mt4j.dll'(erro 126)
20:53:17 mt4jAmostra EURUSD,H4: Perito parado
20:53:17 mt4jAmostra EURUSD,H4: Inicializado
20:54:27 mt4jAmostra EURUSD,H4: carregado com sucesso
20:54:27 mt4jSample EURUSD,H4: não pode carregar a biblioteca 'mt4j.dll' (erro 126)
20:54:27 mt4jSamostra EURUSD,H4: Perito parado
20:54:27 mt4jSamostra EURUSD,H4: desinicializada
20:54:27 mt4jSamostra EURUSD,H4: razão uninit 1
20:54:27 mt4jSamostra EURUSD,H4: retirada
Qual pode ser a causa do problema?
Olá cyberflohr,
20:53:17 mt4jSample EURUSD,H4: não pode carregar a biblioteca 'mt4j.dll' (erro 126)
Qual pode ser a causa do problema?
Hi
Oerro 126, ao meu entender, significa que o MT4 não consegue encontrar o arquivo dll. Supondo que você esteja chamando-o pelo seu nome correto, ele precisa estar principalmente na pasta /experts/libraries/. Ele pode ir para outro lugar, mas esta é sua melhor localização.
Espero que isto ajude.
Abraço
Brooky
Olá Cyberflohr,
Eu segui as instruções para instalar o mt4jv0.2 e não recebi nenhum erro relatado na plataforma MT4. Entretanto, a partir do SampleEA.java descubro que existe um método que parece ser executado quando a inicialização da EA de acordo com a descrição no MT4BasicClient.java
código em SampleEA.java:
@Override
vazio público init() {
System.out.println("init()");
}
descrição em MT4BasicClient.java:
/**
* Chamado pelo cliente MT4 durante a fase init.
*/
A partir destes códigos acho que deve haver algo a ser impresso durante a inicialização. mas U não viu a mensagem "init()" ser impressa na plataforma MT4. Eu entendi o código corretamente?
Além disso, você pode dar outra demonstração para fazer um pedido?
muito obrigado, eu realmente aprecio seu código. :D
Hi
O erro 126, ao meu entender, significa que o MT4 não consegue encontrar o arquivo dll. Supondo que você esteja chamando-o pelo seu nome correto, ele precisa estar principalmente na pasta /experts/libraries/. Ele pode ir para outro lugar, mas esta é sua melhor localização.
Espero que isto ajude.
Abraço
Brooky
correto - a mt4j.dll não está na pasta das bibliotecas.
ou seja: se sua pasta de instalação do metatrader for c:\metatrader, então os arquivos para a ponte mt4j devem estar nos seguintes locais.
c:\i4jSample.ex4
c:\i4jSample.mq4
c:\i4jSample.mq4jSample.mq4jSample.mq4j. c:\i4jSample.mq4jSample.mq4j. c:\i4jSample.mq4jSample.mq4j.properties
c:\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas\fiscos de programas
Olá Cyberflohr,
Eu segui as instruções para instalar o mt4jv0.2 e não recebi nenhum erro relatado na plataforma MT4. Entretanto, a partir do SampleEA.java descubro que existe um método que parece ser executado quando a inicialização da EA de acordo com a descrição no MT4BasicClient.java
código em SampleEA.java:
@Override
vazio público init() {
System.out.println("init()");
}
descrição em MT4BasicClient.java:
/**
* Chamado pelo cliente MT4 durante a fase init.
*/
A partir destes códigos acho que deve haver algo a ser impresso durante a inicialização. mas U não viu a mensagem "init()" ser impressa na plataforma MT4. Eu entendi o código corretamente?
Além disso, você pode dar outra demonstração para fazer um pedido?
muito obrigado, eu realmente aprecio seu código. :D
Prepararei uma amostra mais complexa que fará algumas negociações nos próximos dias.
cumprimentos,
cyberflohr
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Sou um programador JAVA e uso o MT4 desde um ano. Embora o MQL seja muito simples e fácil de aprender, algumas coisas são realmente dolorosas de codificar nesta linguagem. Há algumas semanas atrás, pensei em uma simples integração de código lógico escrito em Java no meu metatrader EA. Pesquisei na Internet e neste fórum por uma solução e encontrei algumas ferramentas interessantes (MT4-Java API https://forum.mql4.com/27050, Java Class to DLL converter, ... ) MAS todos têm seus prós e contras e por isso decidi escrever minha própria integração MT4-Java.
Eu tinha os seguintes quatro requisitos DEVIDO TER para minha solução:
1. Instalação simples2. Capacidade de depuração para o código JAVA
3. Velocidade
4. Nenhuma comunicação em rede entre o MT-Terminal e outro processo
Uma coisa que não era importante para mim, era a necessidade de chamar as funções MT4 (indicador, funções comerciais) de dentro do meu código Java. Para análise técnica, utilizo a biblioteca de código aberto de www.ta-lib.org e o tratamento de pedidos ainda é feito no código MQL. O Javacode simplesmente informa o código MQL quando é hora de COMPRAR ou VENDER.
Tudo o que você precisa é MetaTrader, um JVM instalado (1.6) e o arquivo ZIP anexado que contém o código MQL e a DLL para o recipiente JVM .Copiar os arquivos do ZIP para seu diretório de instalação MT (manter a estrutura do diretório) e editar o arquivo mt4j.properties e ajustar o caminho para seu arquivo jvm.dll. Tudo isso para executar o mt4Sample EA.
A implementação da amostra não faz nada. É apenas um esqueleto para lhe mostrar o que é possível. Leia os comentários dentro dos arquivos MT4BasicClient.java e SampleEA.java. As fontes JAVA que você pode encontrar dentro do arquivo mt4jSample.jar. Sua própria classe deve implementar a interface MT4BasicClient ou deve estender a classe AbstractBasicClient. Não se esqueça de adicionar o diretório ou arquivo JAR com suas próprias classes ao classpath (veja mt4j.properties).
Suas classes Java são carregadas e executadas por um JVM que roda dentro do processo do terminal. Isto lhe dará um ótimo desempenho. Eu fiz alguns testes de desempenho e contei com que freqüência o processTick() foi executado durante um backktest MT. A média de chamadas por segundo foi de 400.000 chamadas/segundo, o que eu acho que é rápido o suficiente para minhas necessidades.
A JVM foi configurada para criar uma porta de depuração no 8001 para que você possa usar sua IDE favorita e depurar seus componentes.Todos os recursos para experimentar minha pequena ponte MT4-Java estão anexados a este post.
Divirta-se :-)Cyberflohr