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

 
MakarFX:

Não sei, vou ter que verificar.

O que há para verificar...? Se assumirmos que o histórico contém vários negócios com o mesmo tempo de fechamento, eles devem ser processados sequencialmente, um após o outro. O manipulador daOnTradeTransaction faz exatamente isso (trata de eventos comerciais) e não há necessidade de inventar uma "roda".

 
Mihail Matkovskij:

O que há para verificar...? Se assumirmos que existem vários negócios com o mesmo tempo de fechamento na história, então eles devem ser processados sequencialmente, um após o outro. O manipulador daOnTradeTransaction faz exatamente isso (trata de eventos comerciais) e não há necessidade de inventar uma "roda".

como uma alternativa ao lucro total

profit+=HistoryDealGetDouble(ticket,DEAL_PROFIT); 
 
MakarFX:

como uma opção para o lucro total

Não. Isso não é uma opção!

 
Mihail Matkovskij:

Não. Isso não é uma opção!

Por que não?
 
Eugen8519:

Alternativamente, os alertas comerciais podem ser habilitados no terminal e o servidor os enviará para o aplicativo móvelhttps://www.metatrader5.com/ru/releasenotes .

Что нового в MetaTrader 5?
Что нового в MetaTrader 5?
  • www.metatrader5.com
Всего поддерживаются три типа уведомлений: об ордерах, о сделках и о балансовых операциях. При включении опции доступные виды уведомлений будут выведены в журнал терминала:
 
Mihail Matkovskij:

Alternativamente, os alertas comerciais podem ser habilitados no terminal e o servidor os enviará para o aplicativo móvelhttps://www.metatrader5.com/ru/releasenotes .

Parece ser a melhor opção)
 
MakarFX:
Por quê?

Porque as negociações não podem ser ignoradas. Imagine 2 negócios fechados no TP e você só envia notificação de um. Ou seu lucro total (como você sugeriu). O que isso deve dizer ao usuário...? Não está claro... :)

Deixe-me explicar ainda mais claramente. O número de notificações deve sempre corresponder ao número de negócios.

Além disso, aSendNotification tem limitações quanto à freqüência de envio de notificações. Portanto, é preciso ter certeza de que a aplicação não chama a função mais de 2 vezes por segundo e não mais de 10 vezes por minuto. Criar uma fila de notificações e enviá-las com não mais freqüência do que a especificada na documentação.

Документация по MQL5: Сетевые функции / SendNotification
Документация по MQL5: Сетевые функции / SendNotification
  • www.mql5.com
SendNotification - Сетевые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Mihail Matkovskij:

Porque as negociações não podem ser ignoradas. Imagine 2 negócios fechados no TP e você só envia notificação de um. Ou seu lucro total (como você sugeriu). O que isso deve dizer ao usuário...? Não está claro... :)

Você ainda não viu a sua EA.

Eu lhe disse que, pelo que entendi, ele queria notificações de abertura e fechamento de pedidos, e não importa qual seja o motivo.

O homem quer ver em seu telefone que a EA está fazendo algo.

 
MakarFX:

Você ainda não viu a sua EA.

Eu lhe disse que, pelo que entendi, ele quer notificações sobre a abertura e o fechamento de pedidos e não importa por que razão.

O homem quer ver em seu telefone que a EA está fazendo algo.

Eu editei o post anterior.

Não. Ele quer rastrear o fechamento por SL e TP.

Este é o fórum para negociação, sistemas automatizados de negociação e testes estratégicos.

Qualquer pergunta de novatos em MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos

Eugen8519, 2021.08.07 12:20



Ajude-me a posicionar a função corretamente

SendNotification ("текст");




Inseriu-o para relatar a entrada em posição aqui

void OPENORDER(string ord)

  {
  
  double priceL=m_symbol.Ask();
   if(ord=="Sell")      
    SendNotification ("текст");

        //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_BUY,my_lot,priceL)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Sell(my_lot,Symbol(),m_symbol.Bid(),my_SL,my_TP,""))
         Print("BUY_STOP -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of Retcode: ",m_trade.ResultRetcodeDescription(),
               ", ticket of order: ",m_trade.ResultOrder());                     // Если sell, то не открываемся
     double priceS=m_symbol.Bid();
   if(ord=="Buy")
    SendNotification ("текст");
 //--- check for free money
            if(m_account.FreeMarginCheck(Symbol(),ORDER_TYPE_SELL,my_lot,priceS)<0.0)
               printf("We have no money. Free Margin = %f",m_account.FreeMargin());
            else
      if(!m_trade.Buy(my_lot,Symbol(),m_symbol.Ask(),my_SL,my_TP,""))
 
         Print("Buy -> false. Result Retcode: ",m_trade.ResultRetcode(),
               ", description of result: ",m_trade.ResultRetcodeDescription(),
               ", ticket of deal: ",m_trade.ResultDeal());
   return;
 }

E eu já estou recebendo notificações com sucesso em meu smartphone.




Mas como e onde inserir

SendNotification

Para receber uma mensagem quando eu parar de perder outer lucro?


 
Mihail Matkovskij:

Editou a mensagem anterior.

Não. O que ele precisa fazer é rastrear os fechamentos SL e TP.

Ok, você está certo. Eu entendi errado.