Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1800
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
O que é o Factor de Diminuição no assessor MT padrão sobre mashcats?
É estranho, os botões estão lá agora. E a confusão do código, porque é um rascunho. De qualquer forma, eu já fiz uma versão funcional, a última coisa que resta é apagar os botões, aqui novamente esta foda começou: a função de apagar não encontra nenhum dos 4 objetos.
Clicando no botão, todas as linhas são criadas:
Se o botão for pressionado - apagar:
Que monte de porcaria está escrito, desculpe-me.
E você não precisa assistir aos eventos. Eles não trabalham de forma alguma no testador. Você tem que observar o status.
UPD. Não modesto, é claro, mas se você tivesse ouvido minhas dicas por uma vez, já teria feito tudo há muito tempo. De forma adequada e sem as muletas de um armazém com vários andares.
Mas todos escolhem o abismo em que querem mergulhar.
Para usar o depurador no testador, aprenda a escrever em MQL5. Tudo funciona lá.
Não existe tal coisa como renomear um objeto. Pense nisso como a substituição de um objeto existente por um novo.
Isto não pode ser. Seu código parece uma confusão de coisas. É provavelmente por isso que você está tendo um atraso com os botões. Como já lhe disse antes, comece com algo simples. Não complique em demasia as coisas. E gradualmente complica quando o simples começa a funcionar e você está confiante nisso.
E como eu vejo os estados se eles são acionados por evento (por clique)? Sim, mas estou escrevendo em mql4, é o mesmo que dizer "aprenda a escrever em c# onde funciona o debug".
"Correto e sem muletas de vários andares". " - portanto, esconder objetos é apenas muletas.
Em tudo o que fiz, tudo funciona
Ao clicar no botão todas as linhas são criadas de uma só vez, depois são escondidas e apenas uma é deixada dependendo da localização do painel de botões. Outras linhas são escondidas/mostradas, dependendo da localização do cursor em relação ao preço.
P.S.
Se não fosse pelo mql4 torto, eu não teria que inventar esse absurdo de esconder objetos, tudo deveria ter funcionado da primeira vez com a eliminação/renomeação de objetos.
E como eu vejo os estados se eles são acionados por evento (por clique)? Sim, mas eu escrevo em mql4, é o mesmo que dizer "aprenda a escrever em c# onde funciona o debug".
"Correto e sem muletas de vários andares". "Então, esconder objetos é apenas muletas".
Em tudo o que fiz, tudo funciona
Ao clicar no botão todas as linhas são criadas de uma só vez, depois são escondidas e somente uma é deixada dependendo da localização do painel de botões. Outras linhas são escondidas/mostradas, dependendo da localização do cursor em relação ao preço.
P.S.
Se não fosse pelo mql4 torto, eu não teria que inventar este absurdo sobre esconder objetos, tudo deveria ter funcionado da primeira vez com a eliminação/renomeação de objetos também.
Esconder um objeto é apenas o método recomendado pelo desenvolvedor. E há uma propriedade especial para isso. Para ver o estado, você precisa olhar para a propriedade "Estado" do botão.
O que está torto aqui é sua lógica e substituição de noções - você toma os meios recomendados pelo desenvolvedor como uma muleta, e toma a constante criação/eliminação de objetos vorazes como puro código, mas é exatamente isso que é uma muleta, contornando o método rápido recomendado.
A propósito, para tornar rapidamente um objeto em cima de todos os outros, é preciso torná-lo invisível, e imediatamente visível - isto redefinirá sua posição na lista de objetos, e ele estará no topo.
ZS. E mesmo ali, no git, você publicou o código com um C menos. Totalmente propenso a erros. Apenas uma linha não é criada e tudo desmorona. Isso foi imediatamente aparente. Você cria linhas no event handler - para quê? Para que você precisa do OnInit()? Você a criou, verificou seu sucesso, colocou uma bandeira e a escondeu. No OnDeinit() você eliminou objetos criados por seu programa. Você também precisa do prefixo do nome para isso.
Você só mostra e se esconde no manipulador de eventos - não deve haver nenhum prédio. Para o seu caso - exatamente.
Eu teria vergonha de publicar tal coisa em domínio público no git. Mas isso é para mim.
E você? As pessoas podem tirar proveito disso?
Esconder um objeto é exatamente o método recomendado pelo desenvolvedor. E há uma propriedade especial para isso. Para ver o estado, você precisa olhar para a propriedade "Estado" do botão.
O que está torto aqui é sua lógica e substituição de noções - você toma os meios recomendados pelo desenvolvedor como uma muleta, e toma a constante criação/eliminação de objetos vorazes como código puro, mas é exatamente isso que é uma muleta para contornar o método rápido recomendado.
A propósito, para tornar rapidamente um objeto em cima de todos os outros, é preciso torná-lo invisível, e imediatamente visível - isto redefinirá sua posição na lista de objetos, e ele estará no topo.
ZS. E mesmo ali, no git, você publicou o código com um C menos. Totalmente propenso a erros. Uma vez que uma linha não é criada, sua coisa toda desmorona. Isso foi imediatamente aparente. Você cria linhas no event handler - para quê? Para que você precisa do OnInit()? Você a cria, verifica seu sucesso, coloca uma bandeira e a esconde. No OnDeinit() você eliminou objetos criados por seu programa. Você também precisa do prefixo do nome para isso.
Você só mostra e se esconde no manipulador de eventos - não deve haver nenhum prédio. Para o seu caso - exatamente.
Eu teria vergonha de publicar tal coisa em domínio público no git. Mas isso é para mim.
E você? As pessoas podem tirar proveito disso?
voraz para criar 1 linha de 4, conforme a necessidade? :) E se houver 200 linhas? Será econômico criá-los todos de uma vez, de acordo com sua lógica? E como ela foi concebida pelos desenvolvedores é conhecida apenas por eles, e concebida de uma forma muito não-intuitiva. Como se nada de incrível ou ilógico fosse necessário. Como eu poderia saber que deveria trabalhar com objetos somente desta maneira e não de qualquer outra maneira? Talvez de um livro didático em mql4? Duvido que este ponto seja explicado ali.
Ao menos, funciona como foi pretendido :) Está entre parênteses no título (público), portanto ainda não está completo, mas sim, não há verificação para criar objetos, vamos corrigi-lo. E eu a afixei somente porque não conseguia me lembrar do caixote do lixo de pasta. Envergonhado? O Git foi criado para que as pessoas aprendam, troquem experiências, compartilhem códigos, trabalhem ou não, não faz diferença, qualquer um pode fazer um garfo e fazer mudanças se não estiver satisfeito com algo.
Aqui você está, 250 objetos foram criados e armazenados na memória durante a vigência do Expert Advisor. Bem, obrigado, eu saberei. Isto é o que quero dizer com "lógica não-intuitiva". Por exemplo, no tutorial sobre o OnInit(), você pode ler apenas que a função é processada durante a inicialização do Expert Advisor/indicador.
Deixe-me contar-lhe um segredo. Você pode criar até 1.000 objetos ou mais, desde que não tenha uma 'calculadora'. Mas ele também pode fazer isso. Uma calculadora é um computador com 4GB de RAM. Qualquer coisa abaixo que seja "calculadora da avó"... :) Assim você pode criar objetos todos de uma só vez ou um de cada vez. Isso não faz diferença. Mas sem fanatismo.
Dessa forma, tudo funciona para todos se você o fizer com sabedoria!
Voraciência para criar 1 linha de 4, conforme necessário? :) E se houver 200 linhas? Seria econômico criá-los todos de uma só vez, de acordo com sua lógica? E como ela foi concebida pelos desenvolvedores é conhecida apenas por eles, e concebida de uma forma muito não-intuitiva. Como se nada de incrível ou ilógico fosse necessário. Como eu poderia saber que deveria trabalhar com objetos somente desta maneira e não de qualquer outra maneira? Talvez de um livro didático em mql4? Duvido que este ponto seja explicado ali.
Ao menos, funciona como foi pretendido :) Está entre parênteses no título (público), portanto ainda não está completo, mas sim, não há verificação para criar objetos, vamos corrigi-lo. E eu a afixei somente porque não conseguia me lembrar do caixote do lixo de pasta. Envergonhado? O Git foi criado para que as pessoas aprendam, troquem experiências, compartilhem códigos, trabalhem ou não, não faz diferença, qualquer um pode fazer um garfo e fazer mudanças se não estiver satisfeito com algo.
Aqui você está, 250 objetos foram criados e armazenados na memória durante a vigência do Expert Advisor. Muitobem, obrigado, eu saberei. Isto é o que quero dizer com "lógica não intuitiva". Você pode ler no tutorial, por exemplo, sobre o OnInit(), que a função é processada durante a inicialização de um EA/indicador.
Você pode criar tantos objetos quantos forem necessários ao mesmo tempo. Na época em que a MT não estava muito desenvolvida em termos de desenho de castiçais indicadores, tivemos que desenhar 400 castiçais visíveis com linhas de tendência, para um castiçal precisamos de 5 linhas, 400*5=2000, mais um objeto para cada um e assim por diante. Ao todo, temos cerca de 2500 objetos. Funcionou sem nenhuma estupidez.
Você não entende bem a lógica de trabalhar com objetos, mas sabe como argumentar. É melhor fazer o contrário.
Voraciência para criar 1 linha de 4, conforme necessário? :) E se houver 200 linhas? Seria econômico criá-los todos de uma só vez, de acordo com sua lógica? E como ela foi concebida pelos desenvolvedores é conhecida apenas por eles, e concebida de uma forma muito não-intuitiva. Como se nada de incrível ou ilógico fosse necessário. Como eu poderia saber que deveria trabalhar com objetos somente desta maneira e não de qualquer outra maneira? Talvez de um livro didático em mql4? Duvido que este ponto seja explicado ali.
Ao menos, funciona como foi pretendido :) Está entre parênteses no título (público), portanto ainda não está completo, mas sim, não há verificação para criar objetos, vamos corrigi-lo. E eu a afixei somente porque não conseguia me lembrar do caixote do lixo de pasta. Envergonhado? O Git foi criado para que as pessoas aprendam, troquem experiências, compartilhem códigos, trabalhem ou não, não faz diferença, qualquer um pode fazer um garfo e fazer mudanças se não estiver satisfeito com algo.
Aqui você está, 250 objetos foram criados e armazenados na memória durante a vigência do Expert Advisor. Muitobem, obrigado, eu saberei. Isto é o que quero dizer com "lógica não intuitiva". A única coisa que você pode ler no tutorial, por exemplo, sobre o OnInit(), é que a função é processada durante a inicialização do Expert Advisor/indicador.
Bem-vindo. Vou tentar explicar isso em russo simples.
Você vai fazer uma viagem de pesca.
Ou você pode levar tudo o que precisa da despensa (OnInit) imediatamente, pescar sem correr e, quando chegar em casa, colocar tudo na despensa e no refrigerador (OnDeinit).
Você deve ter sabido disso aqui no fórum. Você só precisa ouvir e ouvir o que lhe é dito às vezes.
Caso contrário, você recebe uma pergunta, recebe uma resposta, diz "besteira" e faz o que você pensa.
Você deve primeiro pensar sobre a pergunta, fazer perguntas e depois começar a editar.
Você sabe que a coisa mais simples na programação é imprimir código? E a maior parte do desenvolvimento é pensar na lógica.
Sinto muito em trazer isto à tona uma segunda vez.
Mas há um problema que eu ainda não posso resolver, a saber
abrindo uma série de pedidos (um após o outro) no mesmo castiçal.
Preciso impedir que a EA abra um novo pedido no mesmo castiçal.
Pensei em resolvê-lo usando o Sleep(), mas Makar disse que seria melhor não parar o processo.
O código agora é parecido com este:
Preciso que a EA não consiga abrir uma nova encomenda na mesma vela.