Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1579

 
MakarFX:

Ich weiß es nicht, ich muss nachsehen.

Was gibt es zu überprüfen...? Wenn wir davon ausgehen, dass die Historie mehrere Abschlüsse mit demselben Schlusszeitpunkt enthält, müssen diese nacheinander abgearbeitet werden. DerOnTradeTransaction-Handler tut genau das (verarbeitet Handelsereignisse) und es besteht keine Notwendigkeit, ein "Rad" zu erfinden.

 
Mihail Matkovskij:

Was gibt es da zu überprüfen...? Wenn wir davon ausgehen, dass es in der Historie mehrere Geschäfte mit dem gleichen Schlusszeitpunkt gibt, müssen diese nacheinander abgearbeitet werden. DerOnTradeTransaction-Handler tut genau das (verarbeitet Handelsereignisse) und es besteht keine Notwendigkeit, ein "Rad" zu erfinden.

als Alternative zum Gesamtgewinn

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

als eine Option für den Gesamtgewinn

Nein. Das ist keine Option!

 
Mihail Matkovskij:

Nein. Das ist keine Option!

Warum nicht?
 
Eugen8519:

Alternativ können Trade Alerts im Terminal aktiviert werden und der Server sendet sie an die mobile Apphttps://www.metatrader5.com/ru/releasenotes.

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

Alternativ können Trade Alerts im Terminal aktiviert werden und der Server sendet sie an die mobile Apphttps://www.metatrader5.com/ru/releasenotes.

Es scheint die beste Option zu sein)
 
MakarFX:
Und warum?

Denn der Handel kann nicht übersprungen werden. Stellen Sie sich vor, dass 2 Geschäfte am TP geschlossen wurden und Sie nur eine Benachrichtigung gesendet haben. Oder ihren Gesamtgewinn (wie Sie vorgeschlagen haben). Was soll das dem Benutzer sagen...? Unklar... :)

Lassen Sie mich das noch deutlicher erklären. Die Anzahl der Meldungen muss immer der Anzahl der Abschlüsse entsprechen.

Außerdem gibt es beiSendNotification Einschränkungen hinsichtlich der Häufigkeit des Versands von Benachrichtigungen. Sie müssen also darauf achten, dass die Anwendung die Funktion nicht öfter als 2 Mal pro Sekunde und nicht öfter als 10 Mal pro Minute aufruft. Erstellen Sie eine Warteschlange von Benachrichtigungen und senden Sie diese nicht öfter als in der Dokumentation angegeben.

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

Denn der Handel kann nicht übersprungen werden. Stellen Sie sich vor, dass 2 Geschäfte am TP geschlossen wurden und Sie nur eine Benachrichtigung über ein Geschäft gesendet haben. Oder ihren Gesamtgewinn (wie Sie vorgeschlagen haben). Was soll das dem Benutzer sagen...? Unklar... :)

Sie haben seinen EA nicht gesehen.

Ich habe Ihnen gesagt, dass er, soweit ich es verstanden habe, Benachrichtigungen über die Eröffnung und Schließung von Aufträgen wünscht, und zwar unabhängig von den Gründen.

Der Mann möchte auf seinem Handy sehen, dass der EA etwas tut.

 
MakarFX:

Sie haben seinen EA nicht gesehen.

Wie gesagt, soweit ich es verstanden habe, möchte er über die Eröffnung und Schließung von Aufträgen informiert werden, und es spielt keine Rolle, aus welchem Grund.

Der Mann möchte auf seinem Handy sehen, dass der EA etwas tut.

Ich habe den vorherigen Beitrag bearbeitet.

Nein. Er will den Abschluss nach SL und TP verfolgen.

Dies ist das Forum für Handel, automatisierte Handelssysteme und Strategietests.

Alle Fragen von Neulingen in MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes

Eugen8519, 2021.08.07 12:20



Helfen Sie mir, die Funktion richtig zu positionieren

SendNotification ("текст");




Eingefügt, um den Eintritt in die Position hier zu melden

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

Und ich erhalte bereits erfolgreich Benachrichtigungen auf meinem Smartphone.




Aber wie und wo einfügen

SendNotification

Um eine Nachricht zu erhalten, wenn ich den Stop-Loss oderTake-Profit erreiche?


 
Mihail Matkovskij:

Die vorherige Nachricht wurde bearbeitet.

Nein. Was er tun muss, ist, die SL- und TP-Schließungen zu verfolgen.

Okay, du hast recht. Ich habe es falsch verstanden.