Desejos para MQL5 - página 4

 
drknn:
Inteiro:
drknn:
Bem, tenho uma sugestão modesta. Proponho introduzir uma função no idioma, que retornará o número de células da matriz, na qual se encontra o valor dado (ou em caso de falha - retornar menos uma). Caso contrário, temos que fazer um loop cada vez. A função ArrayBsearch() não funciona - ela retorna o valor errado.

O valor retornado por esta função ainda será verificado para ser igual a -1, assim você pode verificar o valor com o índice retornado pelo ArrayBsearch para ser igual ao valor que você está procurando. Não há uma grande diferença

Cito a partir da referência.

int ArrayBsearch(...)
Retorna o índice do primeiro elemento encontrado na primeira dimensão da matriz.
Se não houver nenhum elemento com o valor especificado na matriz, a função retornará o índice do elemento mais próximo (por valor).

Bem, quando você está procurando o índice não apenas de um número, mas de um bilhete na matriz, esta função não se adequa em nada - por que preciso do índice do bilhete semelhante mais próximo, quando preciso exatamente deste bilhete, e se ele está ausente, a ordem não está entre as do mercado - ele está fechado e devemos encontrá-lo na história! Quando se trabalha com matrizes deslocadas sincronizadamente, o índice é uma coisa muito importante, e deve ser preciso ou não disponível.



Mais uma vez, leia o que eu lhe escrevi

"O valor retornado por esta função ainda será verificado para igualdade a -1, assim você pode verificar o valor com o índice retornado pela ArrayBsearch para igualdade ao valor pesquisado. Não é uma grande diferença".

Encontre o bilhete mais próximo, compare-o com o que você estava procurando, se não for igual, não está na matriz.

 
Integer:

Leia novamente o que eu escrevi para você

"O valor retornado por esta função ainda será verificado para igualdade a -1, assim você pode verificar o valor com o índice retornado pela ArrayBsearch para igualdade ao valor que você está procurando. Não é uma grande diferença".

Encontrou o bilhete mais próximo, compare-o com o bilhete, se não for igual, significa que não está na matriz.

Por que você tem que andar por aí o tempo todo? Mostre-me uma linguagem de programação normal que não tenha uma função que devolva o índice do elemento de matriz necessário. Tudo bem, eu mesmo escreverei a função, então pelo menos deixe-me passar a matriz para uma sub-rotina como parâmetro.

As desvantagens na MQL4 são numerosas. A flexibilidade desta linguagem é insignificante. Vamos ouvir nossas necessidades e salvar o código do Expert Advisor. А? Ou os desenvolvedores não se importam com ninguém além deles mesmos?

 
drknn:

Bem, deixe-me escrever eu mesmo esta função, então pelo menos me permita passar a matriz como um parâmetro para a sub-rotina.

Na MQL4 é fácil passar uma matriz para um subprograma e igualmente fácil de aceitar.
Há muitas desvantagens na MQL4. Vamos ouvir o que é necessário e salvar o código do Expert Advisor. А? Ou será que os desenvolvedores não se importam com todos, exceto com eles mesmos?
Sim, as desvantagens são bem conhecidas. Os desenvolvedores não disseram nada contra, pois não? Há muito tempo estamos trabalhando na linguagem MQL5.
 
drknn, dê uma olhada aqui: https://docs.mql4.com/ru/basis/variables/formal. É tudo uma questão de transferir matrizes.
 
xenon13:

Com todo respeito, a MQL4 ainda é a melhor MTS do mercado, faltam muito as seguintes coisas:

1. API ou uma possibilidade de chamar funções EA a partir de DLL (Mister Desenvolvedores - realmente preciso !!!! )

Manipuladores de eventos - pelo menos um evento do sistema (um CallBack ou algo com um número de mensagem, por exemplo, a mensagem - a negociação neste símbolo é interrompida)

3. Estruturas, atribuições em registro a = b = d = e, conversões de tipo implícito.

Peço a outros que se juntem a nós e continuem a lista de desejos nesta linha.

P.S. mais uma vez sobre o primeiro ponto, você pode deixar tudo como está - mas faça ligações a partir da DLL.


Eu gostaria de ver uma linguagem orientada a objetos próxima a C++

Se estamos nos aproximando do comércio

Eu gostaria de obter

1 chamar esta função com temporizador personalizável (seria um recurso muito bom)

2 LOSS TAKE ACTION (Embora eu entenda que isso pode ser rastreado programmaticamente usando diferentes manipuladores)

3 seria bom ter algum tipo de depurador visual (embora eu esteja satisfeito com a impressão do cheque)

 
Mathemat:
drknn, dê uma olhada aqui: https://docs.mql4.com/ru/basis/variables/formal. É tudo uma questão de transferir matrizes.

Obrigado. Vou dar uma olhada.
 
Renat:
Sim, as deficiências são conhecidas. Os desenvolvedores não disseram nada contra, pois não? Há muito tempo estamos trabalhando na linguagem MQL5.

Sinto muito, talvez eu tenha exagerado. O problema é que não existe um guia adequado para o idioma. Se tivéssemos tido uma ajuda adequada, os usuários teriam tido menos perguntas.
 
Uma lista de novas características da linguagem MQL5 seria publicada pela MQ. Teria sido possível discutir alguns itens com antecedência - as novas propriedades lingüísticas. Os desenvolvedores teriam ajustado seus planos. Poderíamos até mesmo fazer uma votação sobre as novas características ou aquelas que são, por exemplo, abolidas.

A propósito, seria bom acrescentar uma classificação de abas com código no meta-editor. Muitas vezes se deseja agrupar alguns módulos lado a lado para não rolar constantemente para encontrar o módulo necessário.
Havia um problema em um idioma quando passei uma variável de caracteres de cadeia que era um parâmetro de outra função.
Não foi assim que funcionou:

func(Símbolo());

func(símbolo de corda) vazio {
mql_func(símbolo);
}

Mas funciona assim

func() {
mql_func(symbol();
}
 
drknn писал (а):


Por que você tem que andar por aí o tempo todo? Mostre-me uma linguagem de programação normal que não tenha uma função que devolva o índice do elemento de matriz necessário. Tudo bem, eu mesmo escreverei a função, então pelo menos deixe-me passar a matriz para uma sub-rotina como parâmetro.


A Delphi não tem tal função. :) E talvez exista em algum lugar em um módulo separado. Se existe, eu não sei nada sobre ele, porque é mais fácil escrevê-lo eu mesmo do que procurá-lo ou não.

A propósito, implementar você mesmo os algoritmos não é apenas uma "solução", mas sim quando você usa componentes, procedimentos, bibliotecas e peças de código prontas de terceiros. Isto é contornar. O termo científico para isso é "lamerismo". :)
Os desenvolvedores já disseram que fazem uma linguagem para programadores, não para programadores de lame-duck. :)

Qualquer função que muitas pessoas queiram, você pode se fazer em meia hora, em vez de esperar 3 anos até que os desenvolvedores o façam por você. Depois você as enfia em uma biblioteca separada e simplesmente insere em cada novo Expert Advisor com um inlude habitual. É tão difícil pensar bem nisso? Este é um jardim de infância. A linguagem é legal, há muitas oportunidades para a criatividade. Mas se uma pessoa não é criativa, esta linguagem é contra-indicada a ela. Ela é contra-indicada em muitas coisas, inclusive no comércio. :) Desculpe pela possível brusquidão, eu não consegui suportar.



Eu só gostaria que um operador de transição tivesse sido adicionado. O resto está bem para mim.

Se eu quisesse mudar o parâmetro OrderLots no comércio real, eu não gostaria de ter que apagá-lo e definir um novo. Tenho todos os meus estados cheios de ordens pendentes. Acho que não deve ser difícil de implementar. Renat, se você estiver lendo isto, por favor, responda.
 
Bauleken:
drknn escreveu (a):


Cara, por que você tem que andar por aí o tempo todo? Mostre-me uma linguagem de programação normal, que não tenha uma função que devolva o índice do elemento de matriz necessário. Vamos, eu mesmo escreverei esta função, então pelo menos deixe-me passar a matriz para uma sub-rotina como um parâmetro.


Não existe tal função na Delphi. :) Se ele existe, não sei nada sobre ele, porque é mais fácil escrevê-lo você mesmo do que procurá-lo ou não.

A propósito, implementar você mesmo os algoritmos não é apenas uma "solução", mas sim quando você usa componentes, procedimentos, bibliotecas e peças de código prontas de terceiros. Isto é contornar. O termo científico para isso é "lamerismo". :)
Os desenvolvedores já disseram que fazem uma linguagem para programadores, não para programadores de lame-duck. :)
Não deveríamos programar totalmente em código de máquina? Por que todas essas línguas de alto nível e até mesmo o assembler? Com uma coisa tão única como código de máquina você pode fazer o que quiser :)


Qualquer função que muitas pessoas queiram, você pode se fazer em meia hora, em vez de esperar 3 anos até que os desenvolvedores o façam por você. Depois você as enfia em uma biblioteca separada e simplesmente insere em cada novo Expert Advisor com um inlude habitual. É tão difícil pensar bem nisso? Este é um jardim de infância. A linguagem é legal, há muitas oportunidades para a criatividade. Mas se uma pessoa não é criativa, esta linguagem é contra-indicada a ela. Ela é contra-indicada em muitas coisas, inclusive no comércio. :) Desculpe pela possível brusquidão, eu não consegui suportar.
:))))))))))) Me animou - me deu uma risada corajosa :))))))))) obrigado. Não, realmente :)))))
Eu só gostaria que um operador de transição tivesse sido adicionado. O resto está bem para mim.

Se eu quisesse mudar o parâmetro OrderLots no comércio real, eu não gostaria de ter que apagá-lo e definir um novo. Tenho todos os meus estados cheios de ordens pendentes. Acho que não deve ser difícil de implementar. Renat, se você estiver lendo isto, por favor, responda.
Se você o leu, por favor me responda, mas poderia me dizer mais sobre ele? Você pode modificar uma posição de colocação ou eu não entendo alguma coisa?