Errori, bug, domande - pagina 2647

 

Ora in MetaEditor quando si lavora su un progetto per spostare i file del progetto nella scheda "Progetto", per esempio in una nuova sottocartella creata, si deve eseguire un intero "rituale":

- assicuratevi che tutte le modifiche fatte ai file da spostare siano state salvate, altrimenti il lavoro fatto potrebbe essere perso;
- trascinare e rilasciare i file nella scheda "Progetto" nella nuova posizione;
- chiudere tutte le schede dei file in fase di migrazione, poiché potrebbero utilizzare un percorso errato;
- riaprire qualsiasi scheda chiusa, solo ora usando il nuovo percorso.
- ridisporre le schede aperte nello stesso ordine in cui erano state chiuse.

Suggerimento:
Quando si spostano i file del progetto nella scheda Progetto, per esempio in una nuova sottocartella creata:
- per i file aperti ma non modificati, aggiorna automaticamente il loro percorso.
- per i file modificati, chiede inoltre una conferma: "Trasferimento con salvataggio", "Trasferimento con perdita delle modifiche", o "Annulla operazione di trasferimento".


 
Igor Makanu :

Ho 12gb di memoria, Windows 10, memoria libera circa 8gb


Avevo bisogno di questo test per scoprire le lunghezze di linea massime consentite nei terminali MT4/MT5

Ora voglio scambiare tra i terminali tramite il database Redis

Redis è un database molto semplice e funziona solo con le stringhe (chiave - valore --> strin - string)

Ieri ho serializzato le strutture POD in Base64 e questo aumenta la dimensione dei dati di circa 1/3

Penso che anche in questo caso ho la possibilità di scambiare strutture con dimensioni di 400 Mb per transazione - che è più che sufficiente per qualsiasi scopo! ;)

Mi chiedo se controllerò questo "Redis", non lo so.

Così ho controllato il tuo codice dalla mia parte, l'ho fermato dopo 1 minuto, troppo lento. Così l'ho cambiato un po' ;-)

#define  STEP      1000000     // 1 million
#define  MILLION   1000000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  printf("m_physical = %i MB, m_total = %i MB, m_available = %i MB, m_used = %i MB, limit = %i MB, used = %i MB",
         TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL), TerminalInfoInteger(TERMINAL_MEMORY_TOTAL),
         TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE), TerminalInfoInteger(TERMINAL_MEMORY_USED),
         MQLInfoInteger(MQL_MEMORY_LIMIT),MQLInfoInteger(MQL_MEMORY_USED));

  string s = "";
  int size=INT_MAX;

  do
    {
    size-=STEP;
    }
  while(!StringInit(s,size,USHORT_MAX));

  long length = StringLen(s);
  printf("StringLen = %lli millions characters, m_used = %i MB, used = %i MB", length/MILLION, TerminalInfoInteger(TERMINAL_MEMORY_USED),MQLInfoInteger(MQL_MEMORY_USED));
  }

2020.02.13 15: 50: 51.199 1111R-2646 (EURUSD, M1) m_physical = 16230 MB, m_total = 32460 MB, m_available = 31786 MB, m_used = 674 MB, limit = 8388608 MB, used = 0 MB
2020.02.13 15: 50: 51.763 1111R-2646 (EURUSD, M1) StringLen = 1073 milioni di caratteri, m_used = 2722 MB, used = 2048 MB

Meno di 1 secondo. Infine, c'è il limite di mql5, che è di 2GB o circa 1,073 miliardi di caratteri.

 

Spiegare perché i file ico non possono essere caricati nel codebase? Sono una parte standard del programma, collegati da strumenti MQL. Il fatto che siano vietati è ovviamente sbagliato. Ma va oltre.

Una ico correttamente preparata può essere rinominata in png senza influire sul funzionamento: è ancora correttamente collegata al programma (usando #proprietà icona "mql5pack.png") e visualizzata nella finestra di dialogo delle proprietà. Ma tutto questo funziona solo a livello locale. Ho caricato tale png su codebase e ho avuto un errore quando ho controllato la fonte:

mql5pack.mq5(27,11) : error 341: cannot open icon file 'mql5pack.png'
main file not found

Si prega l'amministrazione di mql5 di fissare il caricamento o/e almeno di controllare le icone.

PS. Mi correggo, sembra che il sito mangi silenziosamente il file png, cioè lo dia da caricare, ma poi non è nella lista dei file compilati. Ho provato con MQL5\Images, MQL5\Files - niente viene caricato sul server, ma silenziosamente, senza alcun errore. Dà un errore durante il controllo.

 
Puoi dirmi come aggirare un errore di compilazione?
struct STRUCT
{
  static const int Array[];
  int Array2[sizeof(STRUCT::Array)]; // unresolved static variable 'STRUCT::Array'
};

static const int STRUCT::Array[] = {1, 2};

void OnStart()
{
  static const int Array[] = {1, 2};
  
  int Array2[sizeof(Array)]; // OK
}
 

Gente, come posso assicurarmi che in mt5 gli ordini aperti non si scambino?

 
Сергей Проценко:

Gente, come vi assicurate che gli ordini aperti non si scambino?

Scusa, come si scambiano i posti?

 
Сергей Таболин:

Scusa, come si scambiano i posti?

A seconda del profitto, se il profitto è maggiore, si muove verso il basso, l'altro ordine ha un profitto maggiore, scambiare i posti. Se il profitto dell'euro diventa più grande del profitto dell'oro, l'ordine dell'euro sarà più basso e l'ordine dell'oro sarà più alto di esso.
 
Сергей Проценко:
A seconda del profitto, se il profitto è più alto, scendi, l'altro ordine ha un profitto più alto, scambiati i posti.

Clicca su una delle intestazioni della colonna: Simbolo, Biglietto, Tempo

 
Vladimir Karputov:

Clicca su una delle intestazioni della colonna: Simbolo, Biglietto, Tempo

Questo è l'unico risultato.
 
Сергей Проценко:
Questo è l'unico risultato.

Clicca sull'intestazione di una delle colonne: Symbol, Ticket, Time.

Cliccare sul tasto sinistro. Clicca sul TITOLO.

Motivazione: