Auto-aprendizagem da linguagem MQL5 a partir do zero - página 29
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Você preencheu um novato com informações inúteis).
Se a informação é útil ou não, cabe ao iniciante decidir
Bem dito, informativo, obrigado.
Isto sugere que você não deve ostentar seus desejos de tal forma. Vladimir poderia muito bem ter feito perguntas específicas sobre esta ou aquela função e recebido conselhos úteis, ao invés do absurdo de "especialistas" como aprender C++ ou aprender assembler. Você poderia começar estudando cartões perfurados.
Seguindo em frente:
- Como há muitos eventos, há muitos manipuladores de eventos. Uma vez que os eventos são chamados de inconsistentes, seus manipuladores de eventos também são chamados de inconsistentes. Como há uma chamada inconsistente, os manipuladores de eventos não podem depender uns dos outros, e também não podem depender dos dados uns dos outros. A única construção que atende a estes requisitos estritos é uma função.
- As funções não podem depender uma da outra. Se uma função retorna a soma a+b, e a segunda devolve o produto a*b, então o resultado destas duas funções não dependerá da seqüência de chamadas. Podemos chamar a primeira função com os argumentos 3 e 5 e obter 8. Então, ligue para a segunda função com os mesmos argumentos e ganhe 24. Em seguida, trocar suas ligações. Os resultados serão os mesmos. A função de adição sempre retornará 8 com os argumentos 3 e 5. A função de multiplicação sempre retornará 24 com os mesmos argumentos.
- Está claro do exposto acima que o manipulador de eventos só pode ser uma função. Se ocorrer um novo evento de carrapato, este é tratado pela função OnTick. Se o evento Start (um lançamento único do roteiro) ocorrer, isto é tratado pela função especial OnStart.
- Esta função é universal. Esta função não pode tratar apenas de eventos. A função pode devolver algo útil, por exemplo, a hora atual. Uma função pode realizar cálculos complexos com os argumentos passados a ela e retornar o resultado final desses cálculos como um valor único. Finalmente, uma função pode ser um fornecedor de dados: Você chama a função e obtém os dados necessários, tais como citações, a partir dela.
- Internamente, o MetaTrader consiste em milhares de funções, das quais cerca de 1500 mil são gentilmente colocadas à disposição dos usuários. Estas são funções muito úteis. Eles permitem que você verifique o tempo do sistema e obtenha os dados de um instrumento que lhe interessa. As funções são usadas para enviar ordens comerciais. Você pode abrir o manual da ICL e ver que ele consiste de funções e seus argumentos. Portanto, o MetaTrader, no que diz respeito aos programas de usuário, é um grande conjunto de funções.
- As funções universais não são suficientes. Não importa quantas funções novas sejam adicionadas ao sistema, sempre haverá falta delas. A razão é que cada um tem necessidades diferentes. Não há uma característica de tamanho único para todas as ocasiões. As características mais genéricas e universais já estão incluídas no MetaTrader e são gentilmente compartilhadas conosco. No entanto, as necessidades dos usuários são infinitas. A MetaQuotes não pode atender às necessidades individuais de 100.000 usuários de seu terminal. Em vez disso, eles fizeram algo mais flexível: eles deixaram os usuários criarem as características que eles mesmos desejam. Os usuários foram beneficiados com isso. Em vez de usar uma função do sistema que não é adequada para eles, eles podem escrever sua própria função que resolve seu problema perfeitamente. Nenhuma função do sistema é perfeita por causa de sua universalidade.
- A habilidade que um usuário é capaz de escrever suas próprias funções e entender como elas funcionam lhe diz quão habilidoso é um programador. Se ele/ela entender que um programa é um conjunto desarticulado de manipuladores (na forma de funções) que não lidam consistentemente com eventos recebidos, ele/ela é bom. Se ele souber escrever suas próprias funções, isso é outra vantagem. Se ele pode combinar o trabalho de várias funções (tanto as suas próprias funções como as do sistema) em um algoritmo comum, isso é outra vantagem para ele.
- Se você entender que tudo no MetaTrader (o quarto e o quinto) é de alguma forma baseado em funções, funções e funções - tudo se torna claro de repente. A ajuda não é mais apresentada como um livro grosso com um monte de trechos de código espalhados, mas como um guia para as funções disponíveis e para o que elas fazem. Tudo o mais, como tipos de dados, matrizes, estruturas, classes, é irrelevante. Trata-se de funções de apoio para que eles possam devolver algo e aceitar algo.
(por enquanto)Ótimo!!! Vasily, você tem um talento natural para ensinar. Tudo é claro e compreensível, especialmente para aqueles que estão em um zero completo. Você já pensou em escrever um livro similar ao MQL4 Tutorial de Sergey Kovalev, só que agora seria chamado de MQL5 Tutorial de Vasily Sokolov?
Você acha queeste assunto dará um estímulo a tal iniciativa, não acha, Vasily?
Cumprimentos, Vladimir.
Vasily concentra sua atenção apenas em alguns aspectos particulares, acreditando que eles são mais importantes do que outros. Por exemplo, uma Função ou um Evento. Leia sobre as funções de S. Kovalev e você encontrará não menos (e até mais) explicações detalhadas e acessíveis, mas sem se concentrar nelas, em detrimento das outras áreas. Portanto, você tem que ler o livro didático.
E você, Peter, pode propor que você e Vasily façam um bom trabalho juntos e escrevam um livro sobre a MQL5.
Escrever um livro é a melhor maneira de deixar um rastro na história da humanidade, particularmente na história da programação. Pense sobre isso!
Cumprimentos, Vladimir.
Peter, proponho que você e Vasily façam um bom trabalho juntos e escrevam um livro sobre a MQL5.
Escrever um livro é a melhor maneira de deixar uma marca nahistória humana, particularmente na história da programação. Pense sobre isso!
Cumprimentos, Vladimir.
Obrigado pela oferta, mas Vasily me "bate" facilmente em uma abordagem clássica, que é exatamente o que eu preciso em tal livro. Só posso oferecer uma compreensão abstrata do Objeto e do Meio Ambiente em sua interação dinâmica através do prisma da programação, mas este será o capítulo final. ))))
Estou vendo. Agora eu gostaria de saber a opinião de Vasily sobre minha proposta de livro.
Neste momento estou estudando seu artigo "Universal Trading Expert Advisor: Working with Custom Trailing Stops (Parte 6)".
Atenciosamente, Vladimir.
Continua em
Ficou claro no post acima que o foco estava nas funções. Tudo era dedicado a eles e nada além deles. Pode-se pensar que se trata de um óbvio viés subjetivo ou de alguma "filosofia" arcana. No entanto, não há aqui nenhuma filosofia. E tal atenção às funções não é acidental. A questão é que, na programação, a função é de fundamental importância. Além disso, a função é uma noção muito importante e fundamental em matemática. Nos anos 20 do século passado, a Igreja Alonzo desenvolveu um sistema de cálculo baseado em funções. Isto foi chamado de lambda-calculus. Os principais programadores do mundo desenvolveram as chamadas linguagens de programação funcional baseadas em lambda-calculus, nas quais as funções ocupam o primeiro lugar. Por exemplo, na linguagem de programação funcional Haskell, não há sequer um loop ou algo semelhante. Em vez disso, propõe-se chamar uma função de maneira especial, recursivamente, para calcular o valor desejado. Pode ser comprovado que com apenas funções e sem atribuição, é possível escrever uma linguagem de programação Turing completa. Esta é uma linguagem que permitiria escrever tudo o que é possível em qualquer outra linguagem completa de turing, como linguagem processual ou OOP.
MQL não é uma linguagem funcional, mas sim uma linguagem processual, extensível por classes, com digitação estrita e API rica e orientada a assuntos (na forma das mesmas funções, oh surpresa). Por outro lado, a teoria das funções é baseada em uma sólida base matemática, oferece padrões simples e eficazes de utilização de qualquer linguagem de programação onde existam funções, portanto, pelo menos não é clarividente abandonar funções e bases matemáticas por trás delas. É por isso que eu presto tanta atenção às funções. Não importa o quão bem você entende o projeto da matriz, ou se você comete um erro com um determinado tipo de dado. Isto pode ser rapidamente consertado e corrigido. Mas se você não entender as funções e como elas estão relacionadas, você não se tornará nem mesmo um programador médio.
Assim, para aprender como progredirem normalmente, ou seja, linearmente ao longo do tempo para expandir a funcionalidade de seu programa, você precisa aprender o seguinte:
As funções parecem simples. "O que há para aprender". Você só precisa ler um parágrafo aqui, e isso é tudo. E depois arrays, para, enquanto..." - Não, não são. As funções são realmente aparentemente simples (e isso é bom). Mas para que eles realmente resolvam tarefas de forma eficiente, as funções devem ter certas propriedades e ser combinadas umas com as outras de uma certa forma. Como fazer tudo isso, talvez eu escreva mais tarde.
Estou vendo. Agora eu gostaria de saber a opinião de Vasily sobre minha proposta de livro.
Atualmente estou estudando seu artigo "Universal Trading Expert Advisor: Working with Custom Trailing Stops (Parte 6)".
Atenciosamente, Vladimir.
Não. Não haverá livro. Talvez alguns artigos. Mas não no tempo mais próximo, com certeza.
Peter, posso sugerir que você e Vasily façam um bom trabalho juntos e escrevam um livro sobre a MQL5.
Acho que não. Minhas opiniões com Peter e eu somos muito diferentes. Você pode dar uma olhada em alguns de nossos códigos para ver como eles são diferentes).