Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1579

 
MakarFX:

No lo sé, tendré que comprobarlo.

¿Qué hay que comprobar...? Si suponemos que el historial contiene varias operaciones con la misma hora de cierre, deben procesarse secuencialmente, una tras otra. El manejadorOnTradeTransaction hace exactamente eso (maneja eventos de comercio) y no hay necesidad de inventar una "rueda".

 
Mihail Matkovskij:

¿Qué hay que comprobar...? Si suponemos que hay varias operaciones con la misma hora de cierre en el historial, deben procesarse secuencialmente, una tras otra. El manejadorOnTradeTransaction hace justamente eso (maneja los eventos de comercio) y no hay necesidad de inventar una "rueda".

como alternativa al beneficio total

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

como opción para el beneficio total

No. ¡Esa no es una opción!

 
Mihail Matkovskij:

No. ¡Esa no es una opción!

¿Por qué no?
 
Eugen8519:

Como alternativa, se pueden activar las alertas comerciales en el terminal y el servidor las enviará a la aplicación móvilhttps://www.metatrader5.com/ru/releasenotes .

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

Como alternativa, se pueden activar las alertas comerciales en el terminal y el servidor las enviará a la aplicación móvilhttps://www.metatrader5.com/ru/releasenotes .

Parece ser la mejor opción)
 
MakarFX:
¿Por qué?

Porque las operaciones no pueden saltarse. Imagínese que se cierran 2 operaciones en el TP y sólo se envía la notificación de una. O su beneficio total (como sugieres). ¿Qué se supone que le dice eso al usuario...? No está claro... :)

Permítanme explicarlo con mayor claridad. El número de notificaciones debe corresponder siempre al número de operaciones.

Además,SendNotification tiene limitaciones en la frecuencia de envío de las notificaciones. Por lo tanto, hay que asegurarse de que la aplicación llame a la función no más de 2 veces por segundo y no más de 10 veces por minuto. Cree una cola de notificaciones y envíelas con una frecuencia no superior a la especificada en la documentación.

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

Porque las operaciones no pueden saltarse. Imagínese que se cierran 2 operaciones en el TP y sólo se envía la notificación de una. O su beneficio total (como sugieres). ¿Qué se supone que le dice eso al usuario...? No está claro... :)

No has visto su EA.

Ya te dije que, por lo que entendí, quería notificaciones de apertura y cierre de órdenes, y no importa el motivo.

El hombre quiere ver en su teléfono que el EA está haciendo algo.

 
MakarFX:

No has visto su EA.

Ya te dije, por lo que entendí quiere notificaciones sobre la apertura y cierre de órdenes y no importa por qué razón.

El hombre quiere ver en su teléfono que el EA está haciendo algo.

He editado el post anterior.

No. Quiere rastrear el cierre por SL y TP.

Este es el foro para el comercio, los sistemas de comercio automatizados y las pruebas de estrategia.

Cualquier pregunta de los novatos en MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos

Eugen8519, 2021.08.07 12:20



Ayúdame a colocar la función correctamente

SendNotification ("текст");




Lo insertó para informar de la entrada en la posición aquí

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;
 }

Y ya estoy recibiendo con éxito las notificaciones en mi smartphone.




Pero cómo y dónde insertar

SendNotification

¿Recibir un mensaje cuando alcance el stop loss o eltake profit?


 
Mihail Matkovskij:

Editado el mensaje anterior.

No. Lo que tiene que hacer es seguir los cierres de SL y TP.

Vale, tienes razón. Me equivoqué.

Razón de la queja: