Errori, bug, domande - pagina 2

 
Interesting:

Funziona, testato su tre case di intermediazione (ricerca di tutti gli strumenti scambiati sulla casa di intermediazione)

Prova così

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  PrintFormat(SymbolName(li,true));
  } 
Per OnTick, questo è solo un esempio.
 
ddd06:

È quello che sto dicendo: il vero non funziona!

  for(int li=0; li<SymbolsTotal(false); li++)
  {
  PrintFormat("%s",SymbolName(li,false));
  }
Questo è il modo giusto per farlo, dato che state usando la funzione per emettere le informazioni
PrintFormat(....) не путать с Print(.......)
 
sergey1294:
Questo è il modo giusto per farlo, dato che state usando una funzione per emettere le informazioni
Grazie, solo che non li ho capiti, ma la domanda rimane:)
 
ddd06:
Grazie, solo che non li ho capiti, ma la domanda rimane:)

Su quotazioni reali (reali, demo e probabilmente offerte) questo codice funziona bene testato su 3 terminali (chiamato durante l'inizializzazione)

  for(int li=0; li<SymbolsTotal(true); li++)
  {
  //PrintFormat(SymbolName(li,true));
  //Так конечно правильней, но первый вариант тоже проходит за милую душу...
  PrintFormat("%s",SymbolName(li,true));
  } 

Ho mostrato 15 coppie che sono in revisione del mercato.


Nel test normale si considerano solo i simboli specificati nei parametri del tester (se sono necessari altri simboli dovrebbe essere preso come falso e array dei miei simboli), in "tutti i simboli selezionati ..." l'ottimizzazione probabilmente mostrerà tutti i simboli (ma molto probabilmente uno per uno cambiandoli).


PS

Se il tuo EA è multivaluta, dovresti avere la tua lista di simboli nel tester e confrontarla con una lista di simboli presentata nella tua società di brokeraggio.

 

Va bene, ma penso che sia una svista.

Grazie per averlo capito.

È interessante, che cosa circa il primo post, finora nessuno ha risposto, tipo di potrebbe scrivere - Correggeremo nella prossima build.

 

Il numero di ordini e compravendite nella storia non viene restituito:

TerminalInfoInteger(TERMINAL_BUILD) 279
void OnStart()
  {
    Print("+---------------------------------------------------------+");    
    Print("PositionsTotal() ",PositionsTotal());
    Print("HistoryDealsTotal() ",HistoryDealsTotal());
    Print("OrdersTotal() ",OrdersTotal());
    Print("HistoryOrdersTotal() ",HistoryOrdersTotal());    
  }

adescamento

Storia dell'ordine

 
Urain:

Il numero di ordini e compravendite nella storia non viene restituito:


Dovete prima caricare la storia usando la funzione:

HistorySelect(0,TimeCurrent())
 
Valmars:

Devo scaricare prima la storia con la funzione:


Sì grazie, funziona, continuerò a leggere il manuale :o)

Non potevo pensare che ci fosse un flusso separato per l'utente e l'EA,

Ho pensato che se la cronologia viene visualizzata, significa che dovrebbe essere letta dall'Expert Advisor,

Ma questo è più corretto - il terminale crea il proprio spazio per gli Expert Advisors,

Il terminale crea un proprio spazio per gli Expert Advisors,

Questo è simile a ciò che è stato implementato in mql-4 sotto forma di un buffer che veniva periodicamente caricato con la storia.

 
Urain:

Sì grazie, tutto funziona, continuerò a leggere il manuale :o)

Non riuscivo a pensare che ci fosse una separazione dei thread per l'utente e l'EA,

Ho pensato che se la cronologia viene visualizzata, significa che dovrebbe essere letta da un EA,

Ma questo è più corretto - il terminale crea il proprio spazio per gli Expert Advisors,

la selezione delle informazioni viene eseguita nel proprio formato ed è molto più veloce,

L'analogo di questo era implementato in mql-4 sotto forma di un buffer che veniva periodicamente caricato con la storia.


Purtroppo, lo spazio per gli script, gli EA e il terminale è comune. Potete assicurarvene se chiamate la cronologia del terminale per l'ultimo giorno (day) e poi eseguite la funzione di cui sopra dallo script o Expert Advisor. E vedrete che anche la cronologia nel terminale è cambiata in "Tutta la cronologia". Credo che questo sia un difetto del terminale. Immaginate di avere diversi script Expert Advisor in esecuzione e che ognuno richieda la propria cronologia. La storia nel terminale rimbalzerà (visivamente). È necessario che la scheda 'Storia' mostri lo stato attuale indipendentemente dagli Expert Advisors.

Inoltre, la cronologia nel terminale è spesso aggiornata con un ritardo, vale a dire che un'operazione viene eseguita, una posizione viene chiusa ma non appare nella scheda "Cronologia". Una volta ho aspettato di proposito che la cronologia fosse aggiornata. Era minuti..... Non ho mai aspettato. Appare solo dopo aver eseguito un comando contestuale per richiedere la cronologia dalla scheda 'Storia' o uno script che richiede la cronologia.

 
ddd06:

Va bene, ma penso che sia una svista.

Grazie per averlo capito.

È interessante, che con il primo post, ancora nessuno ha risposto, potrebbero scrivere - Lo sistemeremo nella prossima build.

Il difetto è che si usa PrintFormat senza usare esplicitamente la stringa di formato.

Cosa dovremmo sistemare nella prossima build?

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Общие функции / Print - Документация по MQL5
Motivazione: