Biblioteca da Roffild - página 3

 
Roffild:

Por que eu precisaria inventar algo complicado?

O exemplo demonstra não o indicador, mas a possibilidade de emitir as informações do Expert Advisor como um indicador sem a necessidade de criar um código externo.

Se o ToIndicator_Example.mq5 não funcionou, então o código na pasta Indicators (Indicadores) não deve ter sido construído quando o terminal foi lançado. O registro seria útil.

É claro que estamos todos acostumados a criar tudo do zero, por isso ninguém quer aprender novas bibliotecas, mas no mundo de hoje, usar código de terceiros é uma prática comum...

Os desenvolvedores da plataforma estão melhorando sistematicamente o sistema de classificação dos módulos de software por funcionalidade, e você e suas bibliotecas estão indo na direção oposta e querem despersonalizar tudo novamente...)
 
Ivan Negreshniy:
Os desenvolvedores da plataforma melhoram sistematicamente o sistema de classificação dos módulos de software por funcionalidade, e você e suas bibliotecas estão indo na direção oposta e querem despersonalizar tudo novamente...)

Para dividir em módulos, você precisa de um sistema de gerenciamento de dependência. Agora não existe tal sistema para a MQL e é pouco provável que exista.

No desenvolvimento normal não há uma divisão clara em Expert Advisor, Libraries, Indicator e Script - tudo está interligado. Na MQ, eles decidiram separá-los. Esta divisão é adequada para pequenos projetos que inundam a CodeBase.

A principal razão para a ausência desta biblioteca no CodeBase é a incapacidade de publicar todos os arquivos em um único arquivo ou através de um sistema de controle de versão. Agora você tem que adicionar cada arquivo individualmente ao banco de dados - mas isso é um absurdo... Portanto, não pode haver projetos médios e grandes na CodeBase devido a essas limitações.

 
Olá, você pode codificar o uso da biblioteca para o log(Log4MQL.mqh eLog4MQL_tofile.mqh+ módulo paraLogMX) como escrever para o log.
 
Arquivos anexados:
 

Biblioteca Roffild

Sou conhecido pela comunidade de programação da MQL5 como Roffild e esta é minha biblioteca de código aberto para a MQL5. É uma tentativa de implementar características na MQL5 que se tornou um padrão para linguagens de programação populares há muito tempo. Uma idéia é implementada em cada arquivo. A biblioteca é reabastecida à medida que são necessárias novas funcionalidades.

Poucas pessoas tentaram publicar o projeto no Github. Não há um padrão unificado. MetaQuotes não leva em conta o uso do sistema de controle de versão ao criar um projeto. Por alguma razão, os programadores da MetaQuotes pensam que um projeto deve ser de um tipo. Para pequenos projetos, que são publicados na CodeBase na MQL5.com, esta divisão é razoável. Para projetos de médio e grande porte, é impossível selecionar um tipo de projeto.

Eu experimentei diferentes estruturas de construção de projetos. Tive que mover os arquivos para fora da estrutura padrão da pasta MetaQuotes para poder usar Git. Criar um link para uma pasta intermediária (nesta biblioteca, a pasta "Roffild") é a melhor opção.

O MetaEditor pode salvar código em UTF-16, mas a codificação UTF-8 com BOM também é suportada. Para converter o arquivo de código-fonte, você precisa usar um editor de terceiros (recomendo o Notepad++).

A biblioteca pode ser subdividida em interesses:

  • tarefas comuns (ArrayList, Log4MQL, ToIndicator, etc.);
  • experiências com AlgLib no aprendizado de máquinas;
  • usando Apache Spark com Amazon Web Services (EC2 e EMR), quando as características AlgLib não são suficientes.

Documentação

MQL5
Java

Referências

Roffild.com
Github
MQL5.com: tópico para discussão em inglês
MQL5.com: tópico para discussão em russo


Instalando

(Opcional)

mklink /j link onde - não requer direitos de administração.

Faz sentido colocar a pasta %APPDATA%\MetaQuotes na raiz de uma partição ou em uma partição maior. O Windows tem um limite de 255 caracteres para o caminho do arquivo. Tenho um caminho completo para a pasta MQL5 contendo 88 caracteres. Ao testar, o terminal copia o histórico pelo número de agentes locais, o que aumenta o tamanho desta pasta em vários Gbytes.

  1. Move folder %APPDATA%\MetaQuotes to D:\MQLProjects
  2. mklink /j %APPDATA%\MetaQuotes D:\MQLProjetos
  3. mklink /j D:\MQLProjects\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\ D:\MQLProjects\MQL5

(Importante)

Execute create_links.bat da MQL5\MyProjects\RoffildLibrary folder após clonar o projeto.

Estilo de código

Estilo Java do Google

Tab = 3 espaços

Limite da coluna = 110

Licença

Licença Apache 2.0

 
Библиотека Roffild’a
Библиотека Roffild’a
  • roffild.com
Я известен сообществу программистов на MQL5 под ником Roffild и это моя библиотека с открытым кодом для MQL5. Попытка реализовать возможности на MQL5, которые уже давно стали стандартом для популярных языков программирования. В каждом файле реализована одна идея. Библиотека пополняется по мере необходимости в новых возможностях. Мало кто...
 
Existe o"Write data to MySQL format file", por que não há leitura deste formato?
 
Aleksey Vyazmikin:
Existe o"Write data to MySQL file format", mas por que não ler a partir deste formato?
Porque é fácil escrever para um formato de texto, mas para ler a partir deste formato você precisa usar um analisador. https://en.wikipedia.org/wiki/Parsing
Parsing - Wikipedia
  • en.wikipedia.org
The term has slightly different meanings in different branches of linguistics and computer science. Traditional sentence parsing is often performed as a method of understanding the exact meaning of a sentence or word, sometimes with the aid of devices such as sentence diagrams. It usually emphasizes the importance of grammatical divisions such...
 
Roffild:
Porque é fácil escrever em um formato de texto, mas você tem que usar um analisador para ler a partir deste formato. https://en.wikipedia.org/wiki/Parsing

Por exemplo, criar 1000 colunas usando MQL não é nada fácil...

 
Aleksey Vyazmikin:

Quem pode e quem não pode, por exemplo, criar 1000 colunas usando MQL não é nada fácil...

Um... A MQL não possui nenhuma coluna. E MQL != SQL são linguagens completamente diferentes.

É mais fácil para aqueles que conhecem SQL peneirar os melhores passes após a otimização, quando seu número excede 5000 passes. Implementado em TesterSql.mqh

Razão: