Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 761

 
psyman:

Se há mais de uma posição aberta à mão, como atribuir a EA à que precisa ser arrastrada?

Até agora, eu só pensei em começar um roteiro que criasse um GP e copiar o bilhete a partir daí.

É possível alimentar o valor do bilhete para a entrada da coruja como entrada int ou pelo menos como enumeração de enumerações de carrapatos de todas as posições do símbolo dado?

Clicando no ícone de posição aberta/ordem definida seleciona-o como um alvo de arrasto. Clicando+Ctrl seleciona múltiplas posições/ordens para a rede de arrasto. Tudo o que você precisa fazer é escrever a reação para clicar nos eventos sobre os objetos. E permitir a definição de ícones de posição/ordem.

 
Artyom Trishkin:

:)

E se você executar a EA às 9.22 ?

E se houver uma falha no sistema ou no terminal? O preço será perdido.

Ou seja, você tem que procurar o que era 20 minutos atrás quando esta verificação é feita. Chegou o momento em que os minutos são maiores ou iguais a um múltiplo de vinte - verifique o estado do RSI na barra, que era 20 minutos atrás. Se tiver a travessia desejada, então procedemos como planejado.

Entretanto, na M15 você não pode determinar a hora exata da travessia e o preço exato, mas você pode olhar o preço na M1 - pelo menos 15 vezes mais preciso.

Você não pode fazer um bloco de notas que registre a hora exata da travessia e o preço?)
Há EAs que registram todos os tipos de informações em um bloco de notas.

 
Alexey Viktorov:

Mais freqüentemente é usado GV da GlobalVariable***, eu não faria esta pergunta então. A questão é ambígua. Há muitas posições, mas precisamos apenas de uma rede de arrasto. É o mesmo Expert Advisor que define as posições? A pergunta parece estranha neste caso. Se as posições forem colocadas manualmente ou por outro EA, então, quando você executar o EA, insira no ticket de entrada e pronto... Se o Expert Advisor definir um número aleatório de posições e a lista puder ser mudada na hora... O freelancing é útil.


Você entende corretamente e até escreve o que precisa ser feito, mas não diga como :-)

As posições são abertas à mão, a coruja só pode distingui-las pelo bilhete. Posso colar o bilhete à mão através de cópia para o buffer, mas é melhor não fazer isso, mas oferecer para escolher a partir de uma lista. É possível fazer isso?

 
Artyom Trishkin:

Pergunta: você está falando sobre o ambiente de desenvolvimento IntelliJ IDEA ?

Sim, eu estou falando doIntelliJ IDEA

 
secret:

Toda a vida parece estar aqui, ninguém olha para os fios individuais.

Veja minha pergunta, por favor: Posso inventar um análogo de CopyBuffer() para o MT4?

https://www.mql5.com/ru/forum/302404

Sim, mas neste caso você precisa completar o código de indicador, que deve produzir seu próprio buffer

 
psyman:

Você entende corretamente e até escreve o que precisa ser feito, mas não diga como :-)

As posições são abertas à mão, a coruja só pode distingui-las pelo bilhete. Posso colar o bilhete à mão através de cópia para o buffer, mas é melhor não fazer isso, mas oferecer para escolher a partir de uma lista. É possível fazer isso?

Tudo é possível. Por exemplo, para exibir um painel com posições, e nele escolher para que faixa. Mas é mais como você disse acima em Freelance.

 
Artyom Trishkin:

Clicando em um ícone de posição aberta/ordem seleciona-o como um alvo de arrasto. Clique+Ctrl para selecionar várias posições/ordens para arrasto. Tudo o que você precisa fazer é entrar em reação aos eventos de clique sobre os objetos. E permitir a definição de ícones de posição/ordem.


Então corresponde à execução do PositionSelect?

 
psyman:


Então isto corresponde à execução do PositionSelect?

Não, não tem. Foi uma sugestão de como isso poderia ser feito.

 
Artyom Trishkin:

Clicando no ícone de uma posição aberta/ordem definida seleciona-se como um alvo de arrasto. Clicando+Ctrl seleciona múltiplas posições/ordens para a rede de arrasto. Tudo o que você precisa fazer é inserir a reação aos eventos de clique. E permitir a definição de ícones de posição/ordem.

Você deve estar se referindo à rede de arrasto embutida no terminal? Não pode fazer fechamento parcial, que é o que eu quero fazer, por isso é uma bagunça tão grande.


=Precisoapenas colocar em reação aos eventos de clicar nos objetos.

E como posso lidar com eventos fora da janela gráfica?

Pelo que está escrito na ajuda, nenhum dos tipos de eventos é adequado.

 
psyman:

Você deve estar se referindo à rede de arrasto embutida no terminal? Não pode fazer fechamento parcial, que é o que eu quero fazer, por isso é uma bagunça tão grande.


=Precisoapenas colocar em reação aos eventos de clicar nos objetos.

E como posso lidar com eventos fora da janela gráfica?

Pelo que está escrito na ajuda, nenhum dos tipos de eventos se encaixa.

Entendo que o Expert Advisor precisa de alguma forma indicar o bilhete da posição aberta manualmente que deve ser arrasto.

  1. Adicione ao Expert Advisor o rastreamento de posições recém abertas e se não tiver um magik, significa que ele é aberto manualmente. O Conselheiro Especialista deverá colocar um ícone de abertura desta posição no preço e barra de sua abertura. O nome do objeto deve conter um prefixo com o nome comum do objeto para todos esses objetos, por exemplo "manual_" e o bilhete da posição também deve estar presente. Como resultado, o nome do objeto pode ser o seguinte: "manual_12345678". Aqui: manual_ - prefixo, 12345678 - bilhete de posição.
  2. Adicione ao Expert Advisor OnChartEvent() e monitore o evento do clique do mouse sobre o objeto. Analisar o nome do objeto e se ele contém um manual de substrato_, então olhar para o número após o manual_. Este número é o bilhete da posição cujo ícone você clicou.
  3. O próximo passo é uma questão técnica: você precisa armazenar o número encontrado, para que ele não se perca quando reiniciar o Expert Advisor/Terminal/Computer/World... Por exemplo, em recursos ou variáveis globais do terminal.
  4. O Conselheiro Especialista deve ler este recurso e tomar o bilhete da posição a ser arrancada dele
  5. No ciclo de arrasto, você deve ir buscar o bilhete da posição selecionada e procurar este número na lista de bilhetes salvos. Se tal bilhete for encontrado, a posição com este bilhete deve ser arrasto.
  6. Se o número de posições for alterado, o bilhete da posição fechada deve ser verificado e encontrado na lista gravada. Se tal bilhete existe na lista, ele deve ser excluído da lista - a posição não existe mais, e não há nada a ver com seu bilhete na lista de bilhetes para isca.
É mais ou menos assim. A lógica foi escrita de joelhos, por isso posso não ter levado nada em conta...