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

 
Alexey Viktorov #:
Perché aspettare fino a domani? Se sei troppo pigro per guardare attraverso le specifiche, esegui lo script attraverso tutti i simboli di interesse e trova una corrispondenza per la valuta di margine e la valuta di profitto.
Non ho controllato tutto prima di scrivere, ma non ho trovato nessuna coincidenza...

Un po' occupato oggi.


Taras Slobodyanik #:

Bene, il punto è veloce - ha preso il codice della valuta, ha fatto una ricerca su un array pronto che viene aggiornato quando viene aperto un trade.

Tutto è difficile da segnare in un array una sola volta

 
Yevhenii Levchenko variabile statica var del metodo X::doJob(). C'è una classe U che crea un oggetto di tipo X, fa del lavoro e poi lo distrugge. E questo accade periodicamente. Domanda: quando viene cancellata la variabile var?


Vivrà per sempre.

 
Koldun Zloy #:

Vivrà per sempre.

Finché l'oggetto U è vivo? O fino al riavvio del terminale? Più o meno, dopo di che viene cancellato?

 
Yevhenii Levchenko #:

Finché l'oggetto U è vivo?

No, l'istanza della classe potrebbe anche non essere creata, ma il campo statico della classe sarà allocato in memoria e inizializzato.... A proposito, il tuo esempio, secondo me, non dovrebbe compilare, l'inizializzazione statica dei campi dovrebbe essere fuori dalla descrizione

Yevhenii Levchenko #:

Se fino a quando il terminale è sovraccarico? Più o meno, dopo di che viene rimosso?

Il terminale non ha nulla a che fare con esso, la durata è la stessa delle variabili dichiarate globalmente o delle variabili statiche regolari - la memoria è allocata quando si carica il programma MQL e rilasciata quando si scarica il programma MQL

 
Igor Makanu #:

No, l'istanza della classe potrebbe anche non essere creata, ma il campo statico della classe sarà allocato in memoria e inizializzato.... A proposito, il tuo esempio, secondo me, non dovrebbe compilare, l'inizializzazione dei campi statici dovrebbe essere fuori dalla descrizione.

Ok, sembra compilare...

Igor Makanu #:

Il terminale non ha nulla a che fare con esso, la durata è la stessa delle variabili descritte globalmente o delle variabili statiche regolari - la memoria è allocata al momento del caricamento del programma MQL e viene rilasciata quando si scarica il programma MQL

Cioè, se è tutto dentro l'EA, la variabile rimarrà in memoria fino a OnDeinit() dell'EA?

 
Yevhenii Levchenko #:

Norm! sembra compilare...

Quindi, se è tutto dentro EA, la variabile rimane in memoria fino a OnDeinit() di EA?

Le variabili statiche sono distrutte dopo OnDeinit().

 
Koldun Zloy #:

Le variabili statiche sono distrutte dopo OnDeinit().

Ok! Grazie :)

 
L'aiuto nella scelta di un broker, dove meglio fare trading e il ritiro non dovrebbe essere un problema.
 
dryun777 #:
Aiuto nella scelta di un broker, dove è meglio fare trading e il ritiro non sarebbe un problema...Grazie

Su questa risorsa, nominare un broker equivale a discutere. E la ninnananna non dorme e minaccia rappresaglie. Quindi cercate voi stessi...

 
Alexey Viktorov #:

Valeri ha la giusta direzione di pensiero. Ma non capisco perché dobbiamo definire la valuta che cerchiamo nelle valute d'ordine ad ogni iterazione del ciclo? E penso che sia più facile prendere la valuta del margine e la valuta del profitto invece di guardare nella linea. Guarda le specifiche per le valute ... io l'avrei fatto.

bool Search(string _sy)
 {
  int OT = OrdersTotal();
  string curencyProfit = SymbolInfoString(_sy, SYMBOL_CURRENCY_PROFIT),
         currencyMargin = SymbolInfoString(_sy, SYMBOL_CURRENCY_MARGIN);
  for(int i = 0; i < OT; i++)
   {
    if(OrderSelect(i, SELECT_BY_POS))
     {
      bool res = StringFind(OrderSymbol(), curencyProfit) >= 0 ||
                 StringFind(OrderSymbol(), currencyMargin) >= 0;
      if(res)
        return(true);
     }
   }
  return(false);
 }

L'ho controllato e funziona correttamente.

Grazie!