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
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.
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?
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.
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)
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.
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();
}
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 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.
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.
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.
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.