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

 
MakarFX #:
PM

controlla il tuo portafoglio)

 
Alexey Viktorov #:

Ho incontrato questo in un thread

L'ho copiato, l'ho guardato, non ho capito niente, l'ho commentato e me ne sono dimenticato.

Ora mi sono ricordato, l'ho trovato nei miei codici di prova, ma non riesco a trovarlo sul forum. Non capisco come funzionano le macro, forse qualcuno può spiegare come funziona o trovare il problema da cui l'ho copiato...

In generale ho bisogno di definire in qualche modo la sostituzione macro.........

Tutto questo funziona in fase di compilazione, ma non durante il caricamento del programma

 

Buona giornata a tutti !!!!

Potreste dirmi qual è il numero del penultimo biglietto?

C'è una funzione per determinare l'ultimo ordine:

//+----------------------------------------------------------------------------+
//| Расчет тикета максимального ордера в сетке                                 |
//+----------------------------------------------------------------------------+
int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
           {
            if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
              {
               if(OrderType() == OP_BUY || OrderType() == OP_SELL)
                 {
                  if(OrderTicket() > max_ticket)
                     max_ticket = OrderTicket();
                 }
              }
           }
        }
     }
   return(max_ticket);
  }

Una variante per applicare questa funzione e supporre -1 da max_ticket non funziona perché l'EA negozia diversi strumenti e può succedere che tra l'ultimo e il penultimo ordine venga aperto un ordine di un altro strumento.

Ho bisogno che l'ordine sia selezionato tra tutti gli ordini meno quello massimo tra quelli rimasti o il prossimo biglietto più alto dopo quello massimo o può essere una vostra decisione. Grazie.

 
Vitaly Muzichenko #:

Tutto questo funziona in fase di compilazione, ma non quando il programma viene caricato

Il caricamento di un programma non dipende da come viene compilato?

 
EVGENII SHELIPOV #:

Buona giornata a tutti !!!!

Questa funzione non può funzionare correttamente

int GetTicketMaxOrder()
  {
   max_ticket = 0;
     {
      for(int cnt = OrdersTotal() - 1; cnt >= 0; cnt--)
        {
         if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
           {
 
MakarFX #:

Questa funzione non può funzionare correttamente.

Sì Makar hai ragione, come sempre si può aggiustare, ma stranamente questa funzione funziona come un orologio.

 
MakarFX #:

Esattamente.

È possibile farlo attraverso?

L'unica via d'uscita è scrivere il proprio pannello di parametri e usarlo da OnInit() invece di usare il meccanismo standard dei parametri di input.
 
Sergey Gridnev #:
L'unica via d'uscita è scrivere il proprio pannello di parametri e usarlo da OnInit() invece di usare il meccanismo standard dei parametri di input.

Idea interessante! Grazie.

No, non è interessante(

Ogni volta che si cambia di nuovo timeframes, non è bello inserire le impostazioni (

 
EVGENII SHELIPOV #:

Sì Makar hai ragione, come sempre è risolvibile, ma stranamente questa funzione funziona come un orologio

Ha funzionato come un orologio perché stavi cercando l'ultimo ordine max_ticket

non riuscivi a trovare un altro biglietto.

 
EVGENII SHELIPOV #:

Buona giornata a tutti !!!!

Potete dirmi il numero del penultimo biglietto?

È possibile memorizzare un biglietto prima di aprire un nuovo ordine.