Tempo para converter bibliotecas para MQL5 - página 5

 

A propósito, os comandos de armazenamento não poderiam estar numa língua humana? - Como por exemplo:

"Enviar para repositório".

"Descarregar do repositório".

"Sincronizar com o repositório".

"Sincronizar com ME".

E os comandos que são agora - bem, não é claro. E nisto sou solidário com Urain. E se algo que alguém não compreende intuitivamente, é pouco provável que essa pessoa queira gastar tempo a estudar os comandos para utilizar a nova funcionalidade, especialmente se antes o fazia sem ela (funcionalidade).

 

Este fio está a transformar-se numa lista de desejos, vou colocar o meu aquitambém .

Quanto às bibliotecas numéricas, são estas:

  • interpolação, suavização e aproximação
  • manipulação de matrizes
  • Optimização (procura de um extremo), métodos:

Univariados: Método da Relação de Ouro, Dicotomia, Método Parabola, Pesquisa de Malha, Método Fibonacci, Pesquisa Trinária
Métodos directos: Método Gauss, Método Nelder-Meade, Método Hook-Jeeves, Método de Configuração, Método Rosenbrock
Primeira encomenda: Descida por gradiente, método Zoytendijk, descida por coordenadas, método de gradiente conjugado, métodos Quasi-Newton, algoritmo Levenberg-Marquardt
Segunda encomenda: Método Newton, Método Newton-Raphson
Estocástico: Método Monte Carlo, Recozimento Simulado, Algoritmos Evolutivos, Algoritmos Genéticos, Evolução Diferencial, Algoritmo de Formiga, Método de Enxame de Partículas

Lista da Wikipedia, provavelmente não precisa de tudo.

  • redes neurais?

Para além das bibliotecas de métodos numéricos:

  • gráfico

E na linguagem para construir um análogo da API de Reflexão Java

  • Definição de classe de objecto.
  • Obter informação sobre modificadores, campos, métodos, construtores.
  • Criar uma instância da classe, cujo nome é desconhecido até à execução do programa (especificado por string).
  • ...

E expressões regulares.

E a isso, seria uma boa adição poder executar o programa não numa janela de tabela de caracteres. Mas numa janela normal. Já é óbvio que as "aplicações" do utilizador não podem ser evitadas, então porquê ligar a um símbolo, porque se pode aceder a qualquer, para qualquer operação. Geralmente, em 5, a pairar por defeito sobre o símbolo é completamente desnecessária. Este é o lote de indicadores e aplicações especializadas para as quais é realmente útil.

E, no mínimo, fazer um bloqueio de eventos "popping" ao gráfico a partir de elementos de interface, agora é irritante arrastar um objecto de janela juntamente com a rolagem do gráfico (ou talvez já esteja?).

Obrigado pelos métodos estáticos - os meus singletons já não são funções globais.

 
Renat:
Fizemos um enorme trabalho de afinação do compilador MQL5 para facilitar a conversão das bibliotecas existentes escritas noutras línguas.

E a linguagem MQL5 continua a evoluir. Espera-se que surjam em breve novas características, incluindo um poderoso profiler de código.

Temos agora duas tarefas a cumprir:
1) para seleccionar bibliotecas úteis de terceiros para conversão
2) reunir voluntários para implementar projectos de conversão (financiá-lo-emos).

Gostaríamos de começar com uma lista de potenciais projectos. Ajuda com links e uma breve descrição, por favor.
Penso que é mais rentável para quem está disposto a colocar bibliotecas no mercado, uma vez que é uma solução a longo prazo, e está a oferecer um pagamento único. Claro que, se estiver disposto a oferecer $10.000 a $50.000 ou mais por projecto, então outra conversa, então estou disposto a mover algo.
 
-Alexey-:
Penso que é mais rentável para quem está disposto a colocar bibliotecas no mercado, uma vez que é uma solução a longo prazo, e está a oferecer um pagamento único. Claro que, se estiver disposto a oferecer $10.000 a $50.000 ou mais por projecto, então outra conversa, então estou disposto a mudar alguma coisa.
Muito interessante, o que é que está preparado para oferecer? Apenas uma pequena dica, por favor?
 
Mais trabalho com números complexos, com grandes números. Converter coordenadas, com posterior criação de gráficos tridimensionais.
 
TheXpert:
Mova-o:)
Ow! Ow! :)
 

Outra questão - se está a tentar tornar a MQL5 o mais próxima possível de C++, porque não reconsidera a questão sobre #ifdef ou #if definida ou apenas #if?

A seguir, levantarei uma questão sobre a depuração de bibliotecas, talvez não tenha reparado?

Небольшой вопрос -- сейчас есть возможность нормально дебажить библиотеки? Просто не всегда все баги вылазят сразу -- некоторые могут остаться и вылезти уже во время активного пользования библиотекой.

É claro que é parcialmente resolvido por controlo interno, mas à luz do crescente código da biblioteca, é muito relevante.

E.M.N.I., os folhetos da biblioteca não funcionam.

 
Renat:
É estranho ouvir falar de "acesso garantido a dll" quando funciona perfeitamente bem em MQL4 e MQL5 há 7 anos.

Funciona bem quando pegar numa dll C++ (ou C#) com um ficheiro de cabeçalho, colocá-la na pasta apropriada, incluir o ficheiro de cabeçalho original (ou ficheiros) via #include no seu código e está feito. Será isso possível hoje em dia?

 
Isto é possível em qualquer outra língua não-C/C++?

A completa falta de segurança do C/C++ e do acesso directo aos dados não vai bem com línguas que se preocupam pelo menos minimamente com a segurança. Os ficheiros *.h do cabeçalho podem ser utilizados em MQL5 quase como está, rebaptizado para MQH. Mas os locais que funcionam com ligações e acesso directo aos dados devem ser corrigidos.

Ligações com DLL funcionam muito bem.

 
Renat:
. . . Os ficheiros *.h do cabeçalho podem ser utilizados em MQL5 quase como está, rebaptizado em MQH. Mas os locais que operam com ligações e acesso directo aos dados terão de ser corrigidos.

Presumo que terá de mudar muitas coisas.

Na verdade, não há nada de errado com o acesso directo aos dados. Afinal, o próprio MetaTrader está provavelmente escrito em C/C++, e nada. Além disso, os ligadores geralmente permitem até inserções de montadores, e isso também não faz mal. Lembre-se que o MetaTrader a correr sob Windows directa ou indirectamente utiliza muitas dlls de sistema, e também não há nada de errado com ele.

Acho que não devemos privar o utilizador do seu direito de escolha. Gostaria muito de ter a opção onde poderia, por exemplo, levar o ALGLIB-dll e o(s) seu(s) ficheiro(s) de cabeçalho nativo(s) e usar uma biblioteca fiável sem "sujar as minhas mãos", mas simplesmente dizer ao compilador MQL que este ficheiro de cabeçalho é C++ e não MQL.

Poder-se-ia perguntar - e se esta biblioteca for maliciosa e perigosa? Mas decidi usá-la eu próprio.

Por outras palavras - o conteúdo programado pela MQL pode ser tão seguro quanto se queira, mas se eu ousar usar algo externo, é o meu próprio problema pessoal. Assim como a segurança do meu sistema operativo, que, a propósito, também pode constituir uma ameaça para o MetaTrader.

Razão: