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

 
Mickey Moose:


É isso mesmo, é por isso que eu quero tirá-lo.

para obter o código fonte deste arquivo é muito mais difícil do que resolver este tipo de problema)

você pode fazer uma coisa legal em geral: um EA (ou o que quer que você tenha sem fontes) enviará o correio para um gráfico próximo :-)

só no meu lazer fez http://luxtrade.tk/atcl:start (tópico do fórum: https://www.mql5.com/ru/forum/224745)

e lá em pacotes é SMTP-server(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

Em outras palavras, você pode usar Eval("package require smtpd") no indicador, então definir a chamada de retorno para entrega e receber o correio necessário de uma vez, sem deixar MetaTrader, no mesmo processo

ATcl
  • luxtrade.tk
Рад представить вам библиотеку ATcl v1 beta - интерпретатор Tcl для MT4. Расширяте возможности ваших программ MQL, используйте СУБД, дополняйте сетевыми средствами, интегрируйте их с любыми программами используя Tcl.
 
Maxim Kuznetsov:

você pode fazer uma coisa divertida em geral: uma EA (ou o que quer que você tenha sem código fonte) enviará correio para um gráfico vizinho :-)

acabo de fazer http://luxtrade.tk/atcl:start (tópico do fórum: https://www.mql5.com/ru/forum/224745) à minha vontade

e há um servidor SMTP nos pacotes(https://core.tcl.tk/tcllib/doc/tcllib-1-18/embedded/www/tcllib/files/modules/smtpd/smtpd.html)

Em outras palavras, você pode usar Eval ("package require smtpd") no indicador, então definir a chamada de retorno para entrega e recebimento do correio necessário de uma só vez, sem deixar MetaTrader, no mesmo processo

Tentarei resolver o problema e, se necessário, serei capaz de compartilhar os resultados

 
Artyom Trishkin:

Este deve apenas pontilhar todo o histórico sobre a distância em barras que você definir nas configurações.

Obrigado, mas estou tentando descobrir o número da barra onde está a seta e só depois comparar com um 10 (por exemplo) que não posso fazer sem um laço aninhado.

Preciso saber, no momento atual, qual a seta do indicador chamado está ligada.

Acho que não sou muito bom em me expressar ). Com um exemplo, eu acho, será mais claro o que eu quero fazer

Por exemplo, por uma condição se(Abrir[i+1]>Cloce[i+1]) eu quero ajustar o texto para Alto[i+1] com o número de barra onde a seta está localizada
 
Mickey Moose:

Vou tentar descobrir, e se o fizer, posso compartilhar os resultados

Se você tiver alguma dúvida, pode fazer pessoalmente ou entrar em contato comigo em meu perfil. Visito o site com freqüência, mas não olho para o fórum inteiro - é difícil acompanhar o assunto e posso acidentalmente perder uma pergunta
 

Você pode me dizer como implementar na MQL5 para fechar todos os negócios em todos os pares de moedas quando eles alcançarem um certo lucro para todas as negociações, não importa se eles são abertos por este Expert Advisor ou de qualquer outra forma?

Eu fiz assim, está certo?

   if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=0; i<OrdersTotal(); i++)
            trade.PositionClose(OrderGetTicket(i),40);
 

Artyom Trishkin, decidiu. Os laços aninhados são de fato desnecessários. Obrigado )

 
Roman Sharanov:

Você pode me dizer como implementar na MQL5 para fechar todos os negócios em todos os pares de moedas quando eles atingirem um certo lucro para todas as negociações, independentemente de serem abertos por este Expert Advisor ou de qualquer outra forma?

Eu fiz assim, está certo?

Não, não é. Em mql5, OrdersTotal() é o número de ordens pendentes, e as ativas são chamadas de posições. Assim, o laço deve ser construído pelo número de posições, PositionsTotal()
 
Roman Sharanov:

Eu fiz isso, está certo?

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(PositionGetTicket(i),40);

Algo parecido com isto.

Você está usando um loop de zero, enquanto você precisa ir de mais a zero, porque você está fechando os pedidos bem no loop. E o segundo, já foi dito para você usar PositionsTotal().

 
Entendi, obrigado pela ajuda!
 
Roman Sharanov:
Entendido, obrigado pela ajuda!

Só não se esqueça de mudar OrderGetTicket() para PositionGetTicket() na linha destacada.

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta para iniciantes sobre MQL4, ajuda e discussão sobre algoritmos e códigos

Konstantin Nikitin, 2018.02.03 08:38

if(AccountInfoDouble(ACCOUNT_PROFIT)>profit_close_all)
         for(int i=PositionsTotal()-1; i>=0; i--)
            trade.PositionClose(OrderGetTicket(i),40);

Algo parecido com isto.

Você usa o ciclo de zero e vice-versa, de mais para zero, porque fecha os pedidos logo no ciclo. E o segundo, já foi dito para você usar PositionsTotal().