Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1579

 
MakarFX:

Non lo so, devo controllare.

Cosa c'è da controllare...? Se supponiamo che la storia contenga diversi trade con lo stesso tempo di chiusura, essi devono essere processati sequenzialmente, uno dopo l'altro. Il gestoreOnTradeTransaction fa esattamente questo (gestisce gli eventi commerciali) e non c'è bisogno di inventare una "ruota".

 
Mihail Matkovskij:

Cosa c'è da controllare...? Se supponiamo che ci siano diversi trade con lo stesso tempo di chiusura nella storia, allora devono essere processati in modo sequenziale, uno dopo l'altro. Il gestoreOnTradeTransaction fa proprio questo (gestisce gli eventi commerciali) e non c'è bisogno di inventare una "ruota".

come alternativa al profitto totale

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

come opzione per il profitto totale

No, non è un'opzione!

 
Mihail Matkovskij:

No, non è un'opzione!

Perché no?
 
Eugen8519:

In alternativa, gli avvisi di trading possono essere abilitati nel terminale e il server li invierà all'applicazione mobilehttps://www.metatrader5.com/ru/releasenotes .

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

In alternativa, gli avvisi di trading possono essere abilitati nel terminale e il server li invierà all'applicazione mobilehttps://www.metatrader5.com/ru/releasenotes .

Sembra essere l'opzione migliore)
 
MakarFX:
Perché?

Perché gli scambi non possono essere saltati. Immagina che 2 operazioni si siano chiuse sul TP e che tu abbia inviato solo la notifica di una. O il loro profitto totale (come hai suggerito tu). Cosa dovrebbe dire questo all'utente...? Non è chiaro... :)

Lasciatemi spiegare ancora più chiaramente. Il numero di notifiche deve sempre corrispondere al numero di compravendite.

Inoltre,SendNotification ha delle limitazioni sulla frequenza di invio delle notifiche. Quindi, dobbiamo assicurarci che l'applicazione chiami la funzione non più di 2 volte al secondo e non più di 10 volte al minuto. Creare una coda di notifiche e inviarle non più spesso di quanto specificato nella documentazione.

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

Perché gli scambi non possono essere saltati. Immagina che 2 operazioni si siano chiuse sul TP e che tu abbia inviato solo la notifica di una. O il loro profitto totale (come hai suggerito tu). Cosa dovrebbe dire questo all'utente...? Non è chiaro... :)

Non hai visto la sua EA.

Te l'ho detto, per quanto ho capito vuole le notifiche di apertura e chiusura degli ordini, e non importa quale sia il motivo.

L'uomo vuole vedere sul suo telefono che l'EA sta facendo qualcosa.

 
MakarFX:

Non hai visto la sua EA.

Te l'ho detto, per quanto ho capito vuole le notifiche di apertura e chiusura degli ordini e non importa per quale motivo.

L'uomo vuole vedere sul suo telefono che l'EA sta facendo qualcosa.

Ho modificato il post precedente.

No. Vuole tracciare la chiusura per SL e TP.

Questo è il forum per il trading, i sistemi di trading automatico e il test delle strategie.

Tutte le domande dei neofiti in MQL4 e MQL5, aiuto e discussione su algoritmi e codici

Eugen8519, 2021.08.07 12:20



Aiutami a posizionare correttamente la funzione

SendNotification ("текст");




Inserito per segnalare l'entrata in posizione qui

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 sto già ricevendo con successo le notifiche sul mio smartphone.




Ma come e dove inserire

SendNotification

Ricevere un messaggio quando raggiungo lo stop loss o iltake profit?


 
Mihail Matkovskij:

Modificato il messaggio precedente.

No. Quello che deve fare è tracciare le chiusure di SL e TP.

Ok, hai ragione. Ho sbagliato.