Errori, bug, domande - pagina 2912

 
Kira27:

Grazie mille!!! dove posso leggerlo?

L'ho trovato)) --- Ogni oggetto grafico deve avere un nome unico all'interno di ungrafico, comprese le sue sottofinestre. Cambiare il nome di un oggetto grafico genera due eventi: il primo è l'evento di cancellazione dell'oggetto con il vecchio nome e il secondo è l'evento di creazione di un oggetto grafico con un nuovo nome. La domanda è perché complicare così tanto la vita del programmatore?

Операции с графиками - Справочник MQL4
Операции с графиками - Справочник MQL4
  • docs.mql4.com
Функции, устанавливающие свойства графика, фактически служат для отправки ему команд на изменение. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Изменение графика производится в процессе обработки очереди событий данного графика. По этой причине не следует ожидать немедленного визуального обновления...
 
Konstantin Seredkin:

Chi ha incontrato questo

Vin 10

Terminale build 2715.

Dopo aver fatto qualsiasi ottimizzazione dell'Expert Advisor, dopo aver chiuso il terminale, gli agenti sono ancora appesi nei processi, consumando RAM.


Come volume di RAM non critico è molto, ma quando eseguo il gioco, a causa del fatto che la memoria si riferisce costantemente a un mucchio di ritardatari ho cali di FPS di almeno 20 frame.

Devo sovraccaricare il computer o sedermi un processo alla volta per uccidere...

Onestamente sta già iniziando a diventare fastidioso.

Dimmi se questo bug o così progettato, tranne il terminale dall'apertura del broker qualsiasi altra cosa non è messo, di volta in volta è aggiornato, qualsiasi o manipolazioni con esso non ha fatto.

Gli agenti aspettano qualche minuto per i prossimi test per risolvere i compiti più velocemente.

Scaricato automaticamente dopo alcuni minuti di inattività.

 
Aleksei Lesnikov:
Grazie, è un'opzione!
E se l'intervallo è di diverse migliaia, o addirittura decine di migliaia di numeri?

questa opzione mescola casualmente un array di qualsiasi dimensione fino a 1 073 741 824 il più velocemente possibile.

void OnStart() {
   int i1[]= {1,2,3,4,5,6,7,8,9,10,11,12,13};
   ArrayPrint(i1,0);
   MixArray(i1);
   ArrayPrint(i1,0);

   string str ="abcdefghijklmnopqrstuvwxyz";
   Print(str);
   uchar c[];
   StringToCharArray(str,c);
   ArrayResize(c,ArraySize(c)-1);
   MixArray(c);
   str=CharArrayToString(c);
   Print(str);
}
//+------------------------------------------------------------------+

template <typename T>
void MixArray(T &arr[]) {
   int size = ArraySize(arr);
   for (int i=0; i<(size-1); i++) {
      T temp = arr[i];
      int j=(rand()<<15|rand())%(size-i);
      arr[i]=arr[i+j];
      arr[i+j]=temp;
   }
}

risultato:

2020.11.28 20:24:09.009 MixArray (EURUSD,M6)     1  2  3  4  5  6  7  8  9 10 11 12 13
2020.11.28 20:24:09.009 MixArray (EURUSD,M6)     2 11  4  9 10  1  8  7  5  6 13  3 12
2020.11.28 20:24:13.114 MixArray (EURUSD,M6)    abcdefghijklmnopqrstuvwxyz
2020.11.28 20:24:29.322 MixArray (EURUSD,M6)    rhxuwjlyzkobpcvnefdmqasitg
 
MetaQuotes:

Gli agenti aspettano qualche minuto per i prossimi test per lavorare più rapidamente ai compiti.

Scaricato automaticamente dopo alcuni minuti di inattività.

Li ho tutto il tempo finché non li scarico io stesso, quando ho fatto lo screenshot, usando MT5 era finito il sabato mattina quando il mercato ha chiuso nel mio fuso orario, la domenica mi sono seduto a giocare e ho iniziato a uccidere i processi.

Probabilmente il problema è dalla mia parte, anche se ho reinstallato la licenza un mese fa.

 
Nikolai Semko:

questa opzione mescola casualmente un array di qualsiasi dimensione fino a 1.073.741.824 il più velocemente possibile.

risultato:



Grazie!
 
Alexey Viktorov:

Perché quando un oggetto viene rinominato, viene ricreato. Uno è cancellato, l'altro è creato e nella lista di tutti gli oggetti sono disposti in ordine di quando sono stati creati.

Per favore correggetemi se ho sbagliato)))

Quando si cambia il nome di un oggetto nullo, questo viene cancellato e ricreato per essere l'ultimo della lista (3)? E in 4 integrazioni di selezione di oggetti in ordine nella lista, si allineeranno nel loro stato originale? ?

 
Kira27:

Per favore correggetemi se ho sbagliato)))

Quando si cambia il nome di un oggetto nullo, questo viene cancellato e ricreato come ultimo oggetto della lista (3)? E in 4 integrazioni di selezione di oggetti in ordine nella lista, si allineeranno nel loro stato originale?

Cosa vi impedisce di controllare?

 
Alexey Viktorov:

Cosa vi impedisce di controllare?

L'ho fatto, prima di scrivere per essere sicuro di aver capito bene, perché il risultato del controllo della selezione degli oggetti è ancora lo stesso

 
Kira27:

Ho controllato prima di scrivere per essere sicuro di aver capito bene, perché il risultato del controllo della selezione degli oggetti è sempre lo stesso.

Anche se ora ho chiuso il terminale e l'editor, l'ho riaperto, ho eseguito il codice 2 volte e tutto è normale, la selezione è corretta. Ho notato che a volte ho bisogno di ricaricare l'editor per una corretta elaborazione del codice, di cosa si tratta?

 
Kira27:

Ho controllato prima di scrivere per essere sicuro di aver capito bene, perché il risultato del controllo della selezione degli oggetti è sempre lo stesso

Non sono io che dovete capire, è la documentazione. Ho suggerito l'ordinamento sulla base di una lista di ordini o posizioni. E in uno dei thread Slava ha detto che è sufficiente nascondere semplicemente l'oggetto e mostrarlo di nuovo, così sarebbe sopra tutti gli altri e otterrebbe l'evento "clic del topo" per primo. Se è sbagliato, mi dispiace. Capire come è ordinata la lista e dirlo a tutti. Anch'io cambierò idea.