Fehler, Irrtümer, Fragen - Seite 1293

 
s2101:

MT5 kommt damit gut zurecht, hat aber ein anderes Problem - es frisst schrecklich viel Speicher. Wenn dies für einen Programmierer akzeptabel ist, so ist es für einen Händler völlig inakzeptabel.

Bitte liefern Sie Beweise und eine genaue Beschreibung des Problems.

Welches Betriebssystem, welche Bauart, welche Bitrate haben Sie?

 
alexl:

Legen Sie Beweise und eine genaue Beschreibung des Problems vor.

Welches Betriebssystem, welche Bauart, welche Bitrate haben Sie?

W-XP SP3 32bit MT5 Build 1100
Alles begann mit der Version 1079. Davor habe ich 4-5 MT5-Terminals geladen und gut gearbeitet.

In der nachstehenden Tabelle können Sie den Ladevorgang sehen Eine Terminal MT5, ich habe 2006 Mb zugewiesenen Speicher, 270 Mb davon werden von OS und aktive Prozesse verwendet. MT5 "frisst" die Differenz.

Das System besteht aus 8 TFs mit jeweils 10 "einfachen" Indikatoren. Insgesamt gibt es 80 Indikatoren. Nicht das "Gewicht" der Indikatoren "frisst" den Speicher, sondern ihre Menge. Ich habe darüber auf der Seite 1306 dieses Forums berichtet, - "eine Potenzbeziehung der Art wurde gefunden - die Anzahl der Millisekunden = 0,000005*n^2, wobei n die Anzahl der zu verarbeitenden Aufträge ist".

Das Gleiche passiert im MT5 und bei der Berechnung von Indikatoren.

Das System und alle aktiven Prozesse werden in der Tabelle angezeigt. Das System erzeugt führende, eindeutig ausführbare Signale für zukünftige Preisänderungen.


Nachfolgend sehen Sie, was nacheinander heruntergeladen wirdFünf MT4-Terminal mit 80 gleichen wie MT5, jeweils mit leichten Indikatoren. Mit dem Gedächtnis ist alles in Ordnung.
Die Systemindikatoren von MQL5 zu MQL4 wurden übertragen, als in MT5 die Linien für den Briefkurs, den Geldkurs und den letzten Kurs irgendwo anders waren, als sie sein sollten, und es war unmöglich, in MT5 zu arbeiten.



 
s2101:
W-XP SP3 32bit MT5 Build 1100
Alles begann mit der Version 1079. Davor habe ich 4-5 MT5-Terminals geladen und gut gearbeitet.

Auf dem Bild unten können Sie den Ladevorgang sehen Eine MT5-Terminal habe ich 2006 MB Speicher zugewiesen, von denen 270 MB vom Betriebssystem und den aktiven Prozessen verwendet werden. MT5 "frisst" die Differenz.

Das System besteht aus 8 TFs mit jeweils 10 "einfachen" Indikatoren. Insgesamt gibt es 80 Indikatoren. Nicht das "Gewicht" der Indikatoren "frisst" den Speicher, sondern ihre Menge. Ich habe darüber auf der Seite 1306 dieses Forums berichtet, - "eine Potenzbeziehung der Art wurde gefunden - Anzahl der Millisekunden = 0,000005*n^2, wobei n die Anzahl der zu verarbeitenden Aufträge ist".

Das Gleiche passiert im MT5 und bei der Berechnung von Indikatoren.

Das System und alle aktiven Prozesse werden in der Tabelle angezeigt. Das System erzeugt führende, eindeutig ausführbare Signale für künftige Preisänderungen.


Nachfolgend sehen Sie, was nacheinander heruntergeladen wirdFünf MT4-Terminal mit 80 gleichen wie MT5, jeweils mit leichten Indikatoren. Mit dem Gedächtnis ist alles in Ordnung.
Die Systemindikatoren von MQL5 zu MQL4 wurden übertragen, als in MT5 die Linien für den Briefkurs, den Geldkurs und den letzten Kurs irgendwo anders waren, als sie sein sollten, und es war unmöglich, in MT5 zu arbeiten.



Manchmal sind "einfache" Indikatoren nicht so einfach, hier sollten wir uns ihren Algorithmus ansehen und ihn großzügiger gestalten, denn die meisten von ihnen werden nach Ticks berechnet, und einige von ihnen berechnen sogar die gesamte Historie jeden Tick neu, aber in Wirklichkeit sind sie alle diskret und die Berechnung einmal pro Balken ist ausreichend.

80 Indikatoren). Ich sollte wohl bescheidener sein, denn die Maschine zieht nicht mehr. Aufgeteilt nach Terminals.

Im MT5 gibt es mehr Ticks.

 
 

Ich habe eine Frage. Wo liegt die Zeichengrenze für die Eigenschaft OBJPROP_TEXT?

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

Ich habe eine Frage. Wo liegt die Zeichengrenze für die Eigenschaft OBJPROP_TEXT?

in der Art
string
 

Aufrufen eines Konstruktors vor der Initialisierung eines statischen Mitglieds

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
und wenn die Beschreibung der Klasse A an erster Stelle steht, ist das Ergebnis 1. Das Ergebnis sollte natürlich nicht von der Reihenfolge der Klassendeklaration abhängen
 

Ausführungsfehler: ungültige EX5-Datei (8)

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

Ich habe eine Frage. Wo liegt die Zeichengrenze für die Eigenschaft OBJPROP_TEXT?

Ich glaube, die maximale Länge für alle Zeichenketteneigenschaften beträgt 63 Zeichen (64, wenn mit "\0");
 

Dies ist die zweite Woche, in der ich einen ähnlichen Fehler am Wochenende gesehen habe.

Auf dem Minutenchart werden am Freitag, nachdem der Markt für eine weitere Stunde geschlossen hat, Null-Hoch-Balken mit einer Periode von 2 Minuten gezeichnet.

Dies scheint mit dem letzten Update geschehen zu sein.