Discussão do artigo "Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte IX): Compatibilidade com a MQL4 - Preparação dos dados"
Boa tarde. Gostei de seu Expert Advisor de teste. Quero tentar usá-lo como um núcleo, que receberá sinais e filtros de vários indicadores, suas combinações ou controlados manualmente, pressionando um botão.
Você já viu o primeiro desses Expert Advisors e me ajudou a dar vida a ele em um tópico vizinho deste fórum.
Você pode me mostrar nesse seu EA de teste como pressionar botões de forma programática?
Existe uma função adequada - pode compartilhá-la?
Ou sugerir a melhor maneira de fazer isso, por favor.
Boa tarde. Gostei de seu Expert Advisor de teste. Quero tentar usá-lo como um núcleo, que receberá sinais e filtros de vários indicadores, suas combinações ou controlados manualmente, por meio do pressionamento de botões.
Você já viu o primeiro desses Expert Advisors e me ajudou a dar vida a ele em um tópico vizinho deste fórum.
Você pode me mostrar como pressionar os botões de forma programática nesse seu EA de teste?
Existe uma função adequada - pode compartilhá-la?
Ou sugerir a melhor maneira de fazer isso, por favor.
O Expert Advisor apresentado nos artigos é apenas um EA de teste. Ele não é adequado para ser usado para negociação em contas. Os botões criados nesse Expert Advisor também são apenas um conjunto de objetos comuns para testes rápidos da nova funcionalidade da biblioteca adicionada em cada artigo subsequente. No futuro, ao criar o shell gráfico da biblioteca, esses botões simples serão substituídos por botões criados usando a funcionalidade gráfica da biblioteca.
E para que você precisa "pressionar o botão do software", se é uma chamada regular de funções de negociação? Por que chamar uma função de negociação por meio do pressionamento de um botão de software se você pode chamar a função de negociação do programa imediatamente? Isso será um "pressionamento de botão de software".
O Expert Advisor apresentado nos artigos é apenas um Expert Advisor de teste. Ele não é adequado para ser usado para negociação em contas. Os botões criados nesse Expert Advisor também são apenas um conjunto de objetos comuns para testes rápidos da nova funcionalidade da biblioteca adicionada em cada artigo subsequente. No futuro, ao criar o shell gráfico da biblioteca, esses botões simples serão substituídos por botões criados usando a funcionalidade gráfica da biblioteca.
E para que você precisa "pressionar o botão do software", se é uma chamada regular de funções de negociação? Por que chamar uma função de negociação por meio do pressionamento de um botão de software se você pode chamar a função de negociação do programa imediatamente? Isso será um "clique de software" no botão.
A questão é que tudo já está vinculado lá, funções de negociação, classes, dados. Você não precisa se preocupar com esse lado da questão, basta pressionar o botão. E estou com uma falta catastrófica de experiência e tempo para conseguir isso.
Usando esse núcleo, você pode dedicar mais tempo aos algoritmos de tomada de decisões de negociação do que à mecânica de execução. É claro que a execução das decisões também é importante, mas pode ser um pouco adiada.
Foi assim que entendi a situação.
A questão é que você já tem tudo vinculado lá, funções comerciais, classes, dados. Você não precisa se preocupar com esse lado da questão, basta clicar em um botão. E estou catastroficamente sem experiência e tempo para conseguir isso.
Usando esse núcleo, você pode dedicar mais tempo aos algoritmos de tomada de decisões de negociação do que à mecânica de execução. É claro que a execução das decisões também é importante, mas pode ser um pouco adiada.
Foi assim que eu fiz.
Gradualmente, muitas funcionalidades serão adicionadas à biblioteca, de modo que será muito fácil trabalhar com algoritmos da maneira que você desejar. E esse é exatamente o objetivo para o qual ela foi concebida.
Agora, embora não exista tal funcionalidade, você pode ver como o Expert Advisor de teste funciona com a classe de negociação CTrade incluída na biblioteca padrão em MQL5 e escrever construções semelhantes para chamar as funções de negociação necessárias. Há também uma chamada das funções de negociação do testador para MQL4 (no EA de teste).
- www.mql5.com
Gradualmente, muitas funcionalidades serão adicionadas à biblioteca, de modo que será muito fácil trabalhar com algoritmos - do jeito que você quiser. E é exatamente para isso que ela foi projetada.
Agora, embora não exista tal funcionalidade, você pode ver como o Expert Advisor de teste funciona com a classe de negociação CTrade incluída na biblioteca padrão em MQL5 e escrever construções semelhantes para chamar as funções de negociação necessárias. Lá (no EA de teste) há uma chamada das funções de negociação do testador para MQL4.
Obrigado, vou estudar o assunto.
Boa tarde. Gostei de seu Expert Advisor de teste. Quero tentar usá-lo como um núcleo, que receberá sinais e filtros de vários indicadores, suas combinações ou controlados manualmente, por meio do pressionamento de botões.
Você já viu o primeiro desses Expert Advisors e me ajudou a dar vida a ele em um tópico vizinho deste fórum.
Você pode me mostrar como pressionar os botões de forma programática nesse seu EA de teste?
Existe uma função adequada - pode compartilhá-la?
Ou sugerir a melhor maneira de fazer isso, por favor.
Boa tarde!
Sergey, eu o apoiarei porque vejo que você está em uma situação semelhante.
Sim, os artigos são ótimos, mas contêm muito poucas informações sobre como usar o código escrito. As bibliotecas, de modo geral, são valiosas para ocultar a implementação e fornecer uma interface clara para tarefas práticas. A ajuda da função https://docs.mql4.com/strings/stringsubstr não contém uma única palavra sobre seus aspectos internos. Uma descrição dos parâmetros de entrada, o resultado de seu processamento e exemplo(s). Isso é o que eu gostaria de ver.
Sim, Artem, você é, sem dúvida, um programador talentoso, mas os engenheiros de aplicativos precisam desenvolver outro algoritmo o mais rápido possível e não passar horas sobre centenas de linhas de código de outras pessoas em busca de esclarecimento. A série de artigos até agora é mais teórica.
Esta não é minha primeira postagem sobre esse tópico). De forma alguma quero menosprezar os méritos da série. Pelo contrário, espero, Artem, que você leve em consideração as solicitações dos membros do fórum e que as bibliotecas escritas sejam usadas nos EAs com a mesma avidez com que os bons filmes são citados.
- docs.mql4.com
Boa tarde!
Sergey, eu o apoio, pois vejo que você está em uma situação semelhante.
Sim, os artigos são ótimos, mas contêm muito poucas informações sobre como usar o código escrito. As bibliotecas, de modo geral, são valiosas para ocultar a implementação e fornecer uma interface clara para tarefas práticas. A ajuda da função https://docs.mql4.com/strings/stringsubstr não contém uma única palavra sobre seus aspectos internos. Uma descrição dos parâmetros de entrada, o resultado de seu processamento e exemplo(s). Isso é o que eu gostaria de ver.
Sim, Artem, você é, sem dúvida, um programador talentoso, mas os engenheiros de aplicativos precisam resolver tarefas práticas em vez de passar horas sobre centenas de linhas de código de outras pessoas em busca de esclarecimento. A série de artigos até agora é mais teórica.
Esta não é a minha primeira postagem sobre esse tópico). De forma alguma quero menosprezar os méritos da série. Pelo contrário, espero, Artem, que você leve em consideração as solicitações dos membros do fórum e que as bibliotecas escritas sejam usadas nos EAs com a mesma avidez com que os bons filmes são citados.
O objetivo é orientar o leitor desde o início da criação da biblioteca até sua conclusão.
Como você pode ver, os artigos são mais educativos por natureza, embora tenham uma finalidade prática útil, e mais de uma. O design dos códigos é fácil de entender, sem o uso de reviravoltas e recursos não documentados por causa de reviravoltas e "frescor". Mas há um ponto positivo inegável: quantas versões beta do terminal foram lançadas e quantas pessoas já disseram que seus códigos pararam de funcionar, e a biblioteca vive de compilação em compilação sem correções forçadas porque algo parou de funcionar de repente....
Atualmente, a biblioteca tem um ponto de entrada - a classe CEngine (haverá um segundo ponto de entrada, mas muito mais tarde), e o objeto dessa classe no EA dá acesso total a todos os recursos.
Além disso, não é difícil criar um objeto desse tipo, por exemplo: CEngine lib; e no código digite lib e coloque um ponto (assim: lib.) - após o ponto, o editor mostrará uma janela com uma lista de todos os métodos disponíveis para uso da biblioteca. A maioria deles tem nomes significativos - com um pouco de prática, você poderá usá-los. Todos os métodos são descritos em artigos. Em cada artigo, há um exemplo de um programa de teste que mostra, no entanto, uma pequena parte das possibilidades.
Concordo: procurar os métodos mostrados e sua aplicação em vários artigos sem material de referência é uma tarefa difícil.... Mas o ciclo de artigos é um ciclo para que o leitor passe por ele junto comigo, e então algo será armazenado em sua cabeça :) E o objetivo, eu o lembro, é educacional.
Haverá material de referência. Mas no final, quando a biblioteca for criada. E exemplos, é claro, também.
Enquanto isso, você pode fazer perguntas práticas. Mostre uma parte do seu código e eu lhe darei uma dica. Estou aqui e não vou a lugar algum - não faz parte das minhas regras abandonar o que comecei.
O objetivo é levar o leitor desde o início da biblioteca até a sua conclusão.
Como você pode ver, os artigos são mais educativos por natureza, embora tenham uma finalidade prática útil, e mais de uma. O design dos códigos é fácil de entender, sem o uso de reviravoltas e recursos não documentados por causa de reviravoltas e "frescor". Mas há uma vantagem inegável: quantas versões beta do terminal foram lançadas e quantas pessoas já disseram que seus códigos pararam de funcionar, e a biblioteca vive de compilação em compilação sem correções forçadas porque algo parou de funcionar de repente....
Atualmente, a biblioteca tem um ponto de entrada - a classe CEngine (haverá um segundo ponto de entrada, mas muito mais tarde), e o objeto dessa classe no EA dá acesso total a todos os recursos.
Além disso, não é difícil criar um objeto desse tipo, por exemplo: CEngine lib; e no código digite lib e coloque um ponto (assim: lib.) - após o ponto, o editor mostrará uma janela com uma lista de todos os métodos disponíveis para uso da biblioteca. A maioria deles tem nomes significativos - com um pouco de prática, você poderá usá-los. Todos os métodos são descritos em artigos. Cada artigo contém um exemplo de um programa de teste, que mostra apenas uma pequena parte das possibilidades.
Concordo: procurar os métodos mostrados e sua aplicação em vários artigos sem material de referência é uma tarefa difícil.... Mas o ciclo de artigos é um ciclo para que o leitor passe por ele junto comigo, e então algo será armazenado em sua cabeça :) E o objetivo, eu o lembro, é educacional.
Haverá material de referência. Mas no final, quando a biblioteca for criada. E exemplos, é claro, também.
Enquanto isso, você pode fazer perguntas práticas. Mostre uma parte do seu código e eu lhe darei uma dica. Estou aqui e não vou a lugar algum - não faz parte das minhas regras abandonar o que comecei.
Entendo que suas intenções são as melhores e que você provavelmente tem muito tempo livre.)
Acabei de ver seus artigos da série "MakingSimple" [ Biblioteca para criação fácil e rápida de programas para o MetaTrader] e pensei que, após 10-15 minutos de leitura, eu seria capaz de usar um código útil. Eu esperava ver um artigo clássico comohttps://www.mql5.com/pt/articles/272, em que a lógica está oculta e a interface está aberta, em que as perguntas são respondidas: "por que isso é necessário", "como trabalhar com isso" e exemplos. Acontece que o objetivo é o treinamento, não o RAD (desenvolvimento rápido).
Bem, estamos ansiosos para ver você escrever um desses! ))
- www.mql5.com
Sei que suas intenções são as melhores e que você provavelmente tem muito tempo livre.)
Acabei de ver seus artigos da série "MakingSimple"[ Biblioteca para a criação fácil e rápida de programas para o MetaTrader] e pensei que, após 10-15 minutos de leitura, eu seria capaz de usar um código útil. Eu esperava ver um artigo clássico comohttps://www.mql5.com/pt/articles/272, em que a lógica está oculta e a interface está aberta, em que as perguntas são respondidas: "por que isso é necessário", "como trabalhar com isso" e exemplos. Acontece que o objetivo era o treinamento, não o RAD (desenvolvimento rápido).
Bem, estamos ansiosos para ver você escrever um desses! ))
Oobjetivo é aprendizado + desenvolvimento rápido. Sobre o desenvolvimento rápido, só vale a pena fazer perguntas de aplicação prática se você tiver preguiça de ler e ainda não houver material de referência com exemplos.
O título se traduz como "Make it easy". (Inglês..., permite traduzir da maneira que você quiser, se não houver contexto).
- 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
Novo artigo Biblioteca para desenvolvimento fácil e rápido de programas para a MetaTrader (parte IX): Compatibilidade com a MQL4 - Preparação dos dados foi publicado:
Nos artigos anteriores, nós começamos a criar uma grande biblioteca multi-plataforma, simplificando o desenvolvimento de programas para as plataformas MetaTrader 5 e MetaTrader 4. Na oitava parte, nós implementamos a classe para monitorar os eventos de modificação de ordens e posições. Aqui, nós melhoraremos a biblioteca tornando-a totalmente compatível com a MQL4.
Melhorando a biblioteca
Na pasta raiz da biblioteca DoEasy, nós criamos o novo arquivo de inclusão ToMQL4.mqh. Aqui nós vamos descrever todas as constantes e enumerações necessárias para a MQL4. Incluímos no arquivo Defines.mqh para a compilação em MQL4 no início da listagem de Defines.mqh:
Depois disso, toda a biblioteca em MQL4 será capaz de ver o que está escrito no arquivo ToMQL4.mqh durante a compilação.
Vamos para o início da lista de erros na aba Erros da Caixa de Ferramentas do Editor, pressionando a tecla NUMPAD HOME ou simplesmente rolando para cima até o início. Clique duplo no primeiro erro:
Autor: Artyom Trishkin