Auto-aprendizagem da linguagem MQL5 a partir do zero - página 27

 
Vasiliy Sokolov:

Este é um cavalo esférico no vácuo, não um fluxograma de um EA em funcionamento. Alguns blocos podem não existir de forma alguma. Os blocos podem ser rearranjados. Qualquer programa MCL é um manipulador de eventos. Este é o principal postulado que não está no esquema, o que significa que ele engana os leitores. Meu conselho para você: não leia estas coisas antigas. O livro didático de Kovalev está desatualizado. Muitas das informações nela contidas não são corretas, especialmente no que diz respeito ao sistema de pedidos do MT5. Kovalev oferece essencialmente para memorizar este esquema ridículo, depois memoriza conjuntos de eventos e depois puxa a coruja para o globo: onde supostamente este esquema é implementado no programa Expert Advisor. Não há esquemas na MKL. Existem padrões típicos de utilização do ambiente comercial. Mas não há um esquema universal, que tem que ser compreendido e lembrado. Todos os "esquemas" são compostos utilizando funções e reações dessas funções aos eventos. Além disso, há dados que são solicitados... novamente por funções.

Com o devido respeito. Não existe tal coisa aí. É que os estudantes entendem que este é um Expert Advisor educacional e não é permitido negociar usando-o. E para negociar, é preciso aprender estratégias comerciais... Mas isto é depois de aprender a língua. A propósito, a explicação é boa e clara. O que muitas vezes sentimos falta aqui, especialmente nos comentários na kodobase. Às vezes é difícil entender o que está escrito)))) Concordo, não existe tal coisa em bom código)

 
MrBrooklin:

No livro didático MQL4 de Sergei Kovalev encontrei o que procurava. Aqui está um extrato do livro:"Estrutura de um simples Expert Advisor . Abaixo está a estrutura básica de um simples Expert Advisor baseado em vários blocos funcionais, cada bloco realizando uma certa parte independente dos cálculos".


A este respeito, preciso de algum conselho especializado, este esquema estruturado é aplicável para escrever um Expert Advisor na MQL5, ou devo acrescentar alguns outros blocos?

Com os melhores cumprimentos, Vladimir.

Sim, este esquema lhe convém. É simples e ordenado. Uma vez dominado o idioma, você pode complicar/alterar/adicionar bloqueios como achar conveniente, mas pode começar com este. O esquema certo.
 
Vasiliy Sokolov:

Este é um cavalo esférico no vácuo, não um fluxograma de um EA em funcionamento. Alguns blocos podem não existir de forma alguma. Os blocos podem ser rearranjados. Qualquer programa MCL é um manipulador de eventos. Este é o principal postulado que não está no esquema, o que significa que ele engana os leitores. Meu conselho para você: não leia estas coisas antigas. O livro didático de Kovalev está desatualizado. Muitas das informações nela contidas não são corretas, especialmente no que diz respeito ao sistema de pedidos do MT5. Kovalev oferece essencialmente para memorizar este esquema ridículo, depois memoriza conjuntos de eventos e depois puxa a coruja para o globo: onde supostamente este esquema é implementado no programa Expert Advisor. Não há esquemas na MKL. Existem padrões típicos de utilização do ambiente comercial. Mas não há um esquema universal, que tem que ser compreendido e lembrado. Todos os "esquemas" são compostos utilizando funções e reações dessas funções aos eventos. Além disso, há dados que são solicitados... novamente por funções.

Eu não entendo suas críticas. O esquema é lógico, todas as ações são ordenadas sequencialmente. Dá uma idéia da estrutura correta da EA. É claro que você pode misturar as coisas, cortar algumas coisas e acrescentar outras, mas a estabilidade de tal programa seria dramaticamente afetada. Em geral, não vejo o que há a reclamar no esquema.
 
Реter Konow:
Eu não entendo suas críticas. O esquema é lógico, todas as ações são ordenadas sequencialmente. Dá uma idéia da estrutura correta de uma EA. É claro que podemos misturar as coisas e jogar algumas coisas fora, mas a estabilidade deste programa irá mudar drasticamente. Em geral, não vejo o que há a reclamar no esquema.

OK, tudo bem. Deixe-me tentar explicar.

1) Aqui está um esquema. Alguns blocos são dados (o que é um bloco, como aplicado ao programa mql, não é explicado). Talvez seja uma função, talvez um conjunto de procedimentos, talvez outra coisa, mas tudo bem, vamos entender intuitivamente o que é um bloco no mesmo nível do autor).

2) Os blocos formam uma cadeia desde o início do programa até o seu fim. Em alguns blocos, a cadeia de execução do programa é dividida em dois (mas por que, a propósito, apenas dois? Não é possível dividir três em quatro? E se for necessário quatro, como mostrá-lo em um diagrama? Devemos mudar para o formato A1?). Aparentemente, é uma forma de mostrar a ramificação.

3) Existem alguns blocos muito estranhos, como "mensagens". Que tipo de bloco é este? Provavelmente algum tipo de notificação do programa de que não há condições adequadas: cada carrapato virá uma mensagem: "Muito caro para comprar, muito caro para comprar, também...". - legal, é claro, mas é tudo adivinhação.

4) O bloco mais estranho, é o bloco "manipulação de erros". Você pode entrar nela, mas não pode sair dela. O programa pegou um erro e fica neste bloco (provavelmente fica pendurado até uma reinicialização completa, melhor ainda fazer com que o terminal fique pendurado permanentemente, o que não faria mais erros - esta é a idéia!)

5) Se iniciarmos o programa pela primeira vez, ou se não houver posições abertas na conta, então o bloco de fechamento do pedido faz o quê? Nada. Mas este esquema lógico ainda deve nos levar ao bloco de fechamento do pedido. Chegamos lá porque o esquema é estrita e hierarquicamente estruturado. Todos os blocos devem ser processados um a um, mesmo que seja inútil e implacável o processamento de uma lista vazia de posições.

6) O bloco de cálculo do valor do pedido é colocado abaixo do bloco de fechamento do pedido. Como pode ser? Talvez fechemos um pedido com base em seu "valor". Não está claro o que está acontecendo aqui.

E eu olho para este esquema e não entendo realmente como podemos recomendar esta "coisa" a ser estudada? Como pode ser considerado bom, grande e educativo?

 
Vasiliy Sokolov:

OK, tudo bem. Deixe-me tentar explicar.

1) Aqui está um esquema. Alguns blocos são dados (o que é um bloco, como aplicado ao programa mql, não é explicado). Talvez seja uma função, talvez um conjunto de procedimentos, talvez outra coisa, mas tudo bem, vamos entender intuitivamente o que é um bloco no mesmo nível do autor).

2) Os blocos formam uma cadeia desde o início do programa até o seu fim. Em alguns blocos, a cadeia de execução do programa é dividida em dois (mas por que, a propósito, apenas dois? Os três não podem ser divididos em quatro? E se for necessário quatro, como mostrá-lo em um diagrama? Devemos mudar para o formato A1?). Aparentemente, é uma forma de mostrar a ramificação.

3) Existem alguns blocos muito estranhos, como "mensagens". Que tipo de bloco é este? Provavelmente algum tipo de notificação do programa de que não há condições adequadas: cada carrapato virá uma mensagem: "Muito caro para comprar, muito caro para comprar, também...". - legal, é claro, mas é tudo adivinhação.

4) O bloco mais estranho, é o bloco "manipulação de erros". Você pode entrar nela, mas não pode sair dela. O programa pegou um erro e fica neste bloco (provavelmente fica pendurado até uma reinicialização completa, melhor ainda fazer com que o terminal fique pendurado permanentemente, o que não faria mais erros - esta é a idéia!)

5) Se iniciarmos o programa pela primeira vez, ou se não houver posições abertas na conta, então o bloco de fechamento do pedido faz o quê? Nada. Mas este esquema lógico ainda deve nos levar ao bloco de fechamento do pedido. Chegamos lá porque o esquema é estrita e hierarquicamente estruturado. Todos os blocos devem ser processados um a um, mesmo que seja inútil e implacável o processamento de uma lista vazia de posições.

6) O bloco de cálculo do valor do pedido é colocado abaixo do bloco de fechamento do pedido. Como pode ser? Talvez fechemos um pedido com base em seu "valor". Não está claro o que está acontecendo aqui.

E eu olho para este esquema e não entendo realmente como esta "coisa" pode ser recomendada para ser estudada? Como pode ser considerado bom, maravilhoso e educativo?

OK. Agora a crítica é mais clara. Bem, de muitas maneiras você pode concordar se você o vê "sob a lupa", mas não há sentido em fazê-lo. Um iniciante deve ter uma idéia rápida, generalizada e simplificada da composição mais comum e correta (no sentido global) da EA.

Um bloco é um conjunto logicamente isolado de condições, verificações, funções e programas.

O projeto dos blocos do programa implementa a correta execução do programa.

A ramificação e a hierarquia profunda das ligações em bloco não são mostradas no diagrama para não confundir o estudante. Tudo é simplificado deliberadamente e isto é correto do ponto de vista pedagógico. Se Kovalev tivesse descrito uma "galeria" de possíveis hierarquias de estrutura para 20 páginas, teria sido melhor? Provavelmente não, afinal de contas...) Mas, sim, tudo é na verdade mais complicado e variado na vida do que no diagrama. Mas você tem que começar com uma simples.
 
Реter Konow:
Um iniciante deve ter uma idéia básica, generalizada e simplificada da composição mais comum e correta (no sentido global) da EA.

Aha, bem, isto é, globalmente Kovalev está certo, então que tal erros no esquema - um principiante entenderá onde estão esses erros e onde ele é desenhado corretamente. Ele é um principiante para isso para obter a essência da representação generalizada do dispositivo do assessor. E o que é um bloco, o que são flechas, e por que tenho que congelar depois de lidar com erros- um principiante pensará nisso com sua inteligência de alto poder.

 
Реter Konow:
Ok. Agora a crítica é mais clara. Bem, de muitas maneiras você pode concordar se olhar para ele "sob a lupa", mas não há sentido em fazê-lo. Um iniciante deve ter uma idéia rápida, generalizada e simplificada da composição da EA mais difundida e correta (no sentido global).

Um bloco é um conjunto logicamente isolado de condições, verificações, funções e programas.

A estrutura do bloco implementa a correta execução do programa.

A ramificação e as ligações hierárquicas dos blocos não são mostradas no diagrama para não confundir o estudante. Tudo é simplificado deliberadamente e isto é correto do ponto de vista pedagógico. Se Kovalev tivesse descrito uma "galeria" de possíveis estruturas hierárquicas para 20 páginas, teria sido melhor? Provavelmente não, afinal de contas...) Mas, sim, tudo é na verdade mais complicado e variado na vida do que no diagrama. Mas você tem que começar com uma simples.

Olá Peter! Estou resumindo as informações de todas as mensagens. Na linguagem de programação MQL5 não existe um algoritmo BASE claramente definido para a criação e execução de um programa (script, Expert Advisor). Todos os algoritmos são únicos à sua maneira e não podem ter o chamado "kernel", que pode então ser expandido. Então acontece que meu programa de auto-aprendizado está em um beco sem saída? Se alguém notou, todos os meus roteiros previamente escritos seguem um esquema de complicação, ou seja, do simples ao complexo. Em essência, eu preciso quebrar a própria noção de organizar pensamentos em minha cabeça. Será que funciona assim?

Com todo o respeito, Vladimir.

 
MrBrooklin:

Olá Peter! Vou resumir as informações de todas as mensagens. Na linguagem de programação MQL5 não existe um algoritmo BASE claramente definido para criar e executar um programa (script, Expert Advisor). Todos os algoritmos são únicos à sua maneira e não podem ter o chamado "kernel", que então pode ser expandido. Então acontece que meu programa de auto-aprendizado está em um beco sem saída? Se alguém notou, todos os meus roteiros previamente escritos seguem um esquema de complicação, ou seja, do simples ao complexo. Em essência, eu preciso quebrar a própria noção de organizar pensamentos em minha cabeça. Será que funciona assim?

Com todo o respeito, Vladimir.

Não. De forma alguma. As críticas de Vassily não diminuíram de forma alguma a correção lógica do esquema de EA. Sim, você pode encontrar algumas falhas e "pegá-las", mas em geral, é correto, e isso é o mais importante. Este esquema o ajudará a começar a escrever seus próprios EAs quando você chegar lá. De modo geral, não há diferença entre mql4 e mql5. Os detalhes são diferentes, mas são fáceis de entender. Continue aprendendo como antes.
 
Vasiliy Sokolov:

Aha, bem, isto é, globalmente Kovalev está certo, então que tal erros no esquema - um principiante entenderá onde estão esses erros e onde ele é desenhado corretamente. Ele é um principiante para isso para obter a essência da representação generalizada do dispositivo do assessor. O que é um bloco, o que são flechas, e por que se tem que congelar depois de manipular erros - um principiante pensará bem nisso com sua mente poderosa.

Não temos um livro de texto melhor de qualquer maneira, então....

Pequenos erros não são uma desculpa para parar e "colar" partes do código de outras pessoas, como muitos fazem. Além disso, você ignora a exatidão básica da apresentação do material, da qual há muita coisa.
 
MrBrooklin:

Olá Peter! Vou resumir as informações de todas as mensagens. Na linguagem de programação MQL5 não existe um algoritmo BASE claramente definido para criar e executar um programa (script, Expert Advisor). Todos os algoritmos são únicos à sua maneira e não podem ter o chamado "kernel", que então pode ser expandido. Então acontece que meu programa de auto-aprendizado está em um beco sem saída? Se alguém notou, todos os meus roteiros previamente escritos seguem um esquema de complicação, ou seja, do simples ao complexo. Em essência, eu preciso quebrar a própria noção de organizar pensamentos em minha cabeça. Será que funciona assim?

Com todo o respeito, Vladimir.

Certo! Todos estão tentando aprender programação, usando concepções incorretas do programa, com base na experiência de vida. Por exemplo, que um programa é como um texto em um livro com um índice, introdução, tabela de conteúdo e conclusão. Ou seja, o programa é uma espécie de esquema seqüencial do início ao fim. No início, esta idéia funciona, mas depois, à medida que o programa se torna mais complexo, surgem dificuldades e não é possível escrever um programa de trabalho confiável de forma alguma. Kovalev é muito bom na prestação de serviços em baixa: ele tenta explicar ao leitor, usando seu aparato conceitual acessível, que o programa é o mesmo livro com um esquema de sucção e tal. Mas não há esquemas! O roteiro tem um "esquema" fundamentalmente diferente do do Expert Advisor, e o Expert Advisor tem um esquema diferente do indicador.