Errori, bug, domande - pagina 1293

 
s2101:

MT5 è a posto con questo, ma ha un altro problema: consuma la memoria in modo orribile. Se questo è accettabile per un programmatore, è totalmente inaccettabile per un trader.

Si prega di fornire prove e una descrizione esatta del problema.

Qual è il tuo sistema operativo, la costruzione, il bit rate?

 
alexl:

Fornire prove e una descrizione esatta del problema.

Qual è il tuo sistema operativo, la costruzione, il bit rate?

W-XP SP3 32bit MT5 build 1100
Tutto è iniziato con la versione 1079. Prima di questo caricavo 4-5 terminali MT5 e lavoravo bene.

Sul grafico qui sotto potete vedere il processo di caricamento Uno Terminale MT5, ho 2006 Mb di memoria allocata, 270 Mb dei quali sono utilizzati dal sistema operativo e dai processi attivi. MT5 "mangia" la differenza.

Il sistema è di 8 TF con 10 indicatori "facili" su ciascuno. Ci sono 80 indicatori in totale. Non è il "peso" degli indicatori che "mangia" la memoria, ma la loro quantità. Ne ho parlato nella pagina 1306 di questo forum, - "è stato trovato un rapporto di potenza di tipo - conteggio dei millisecondi = 0,000005*n^2 dove n è il numero di ordini da elaborare".

La stessa cosa accade in MT5 e nel calcolo degli indicatori.

Il sistema e tutti i processi attivi sono mostrati sul grafico. Il sistema genera segnali leader, inequivocabilmente eseguibili, di futuri cambiamenti di prezzo.


Qui sotto potete vedere cosa viene scaricato consecutivamenteCinque Terminale MT4 con 80 lo stesso di MT5, indicatori luminosi ciascuno. Non c'è niente di sbagliato nella memoria.
Gli indicatori di sistema da MQL5 a MQL4 sono stati trasferiti quando in MT5 le linee di prezzo ask, bid e last erano ovunque tranne dove avrebbero dovuto essere ed era impossibile lavorare in MT5.



 
s2101:
W-XP SP3 32bit MT5 build 1100
Tutto è iniziato con la versione 1079. Prima di questo caricavo 4-5 terminali MT5 e lavoravo bene.

Nell'immagine qui sotto potete vedere il processo di caricamento Uno Terminale MT5, ho allocato 2006 Mb di memoria, di cui 270 Mb sono utilizzati dal sistema operativo e dai processi attivi. MT5 "mangia" la differenza.

Il sistema è di 8 TF con 10 indicatori "facili" su ciascuno. Ci sono 80 indicatori in totale. Non è il "peso" degli indicatori che "mangia" la memoria, ma la loro quantità. Ne ho parlato nella pagina 1306 di questo forum, - "è stato trovato un rapporto di potenza di tipo - conteggio dei millisecondi = 0,000005*n^2 dove n è il numero di ordini da elaborare".

La stessa cosa accade in MT5 e nel calcolo degli indicatori.

Il sistema e tutti i processi attivi sono mostrati sul grafico. Il sistema genera segnali leader, inequivocabilmente eseguibili, di futuri cambiamenti di prezzo.


Qui sotto potete vedere cosa viene scaricato consecutivamenteCinque Terminale MT4 con 80 lo stesso di MT5, indicatori luminosi ciascuno. Non c'è niente di sbagliato nella memoria.
Gli indicatori di sistema da MQL5 a MQL4 sono stati trasferiti quando in MT5 le linee di prezzo ask, bid e last erano ovunque tranne dove avrebbero dovuto essere ed era impossibile lavorare in MT5.



A volte gli indicatori "leggeri" non sono così facili, qui abbiamo bisogno di guardare il loro algoritmo e renderlo più generoso, perché la maggior parte di loro sono calcolati per tick, e alcuni di loro anche ricalcolare l'intera storia ogni tick, ma in realtà sono tutti discreti e il calcolo una volta per barra è sufficiente.

80 indicatori). Probabilmente dovrei essere più modesto, visto che la macchina non tira più. Divisi per terminali.

Ci sono più tick in MT5.

 
 

La domanda è questa. Dov'è il limite di caratteri per la proprietà OBJPROP_TEXT?

bool  ObjectSetString(
   long    chart_id,          // идентификатор графика
   string  name,              // имя
   int     prop_id,           // свойство
   string  prop_value         // значение - какая длина строки???
   );
 
denkir:

Ecco una domanda. Dov'è il limite di caratteri per la proprietà OBJPROP_TEXT?

in tipo
string
 

Chiamare un costruttore prima di inizializzare un membro statico

class A;
//---
class B { public:
         B() { a = new A; } // здесь A::s не инициализирована на момент вызова
        ~B() { delete a; }
        A *a;
};
//---
class C { public:
        static B b;
};
B C::b;
//---
class A { public:
         A() : a( s ) {}
        static int s;
        int a;
};
int A::s = 1;
//---
void OnStart() { Print( C::b.a.a ); } //результат = 0, а должен быть 1
e se la descrizione della classe A viene messa per prima, il risultato è 1. Ovviamente, il risultato non dovrebbe dipendere dall'ordine di dichiarazione della classe
 

Errore di esecuzione: file EX5 non valido (8)

class A { public:
        A() : text( NULL ) {} // или text( "произвольный" )
        void f() { ::Print( '0' << this.text ); }
        string text;
};
void OnStart()
{
        A a;
        a.f();
}
 
denkir:

Ecco una domanda. Dov'è il limite di caratteri per la proprietà OBJPROP_TEXT?

Credo che la lunghezza massima per tutte le proprietà delle stringhe sia di 63 caratteri (64 se con '0');
 

Questa è la seconda settimana che vedo un bug simile nel fine settimana.

Sul grafico a minuti, il venerdì dopo la chiusura del mercato per un'altra ora, si disegnano barre zero-alto con un periodo di 2 minuti.

Questo sembra essere arrivato con l'ultimo aggiornamento.

Motivazione: