MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 103

 
pro_:

Das Problem, über das ich geschrieben habe (Seite 68), wurde noch nicht behoben, aber ich bin sicher, dass es auch bald behoben sein wird.
Und die Gravitsapa wird gemacht werden ;)
 
artmedia70:
Und es wird ein Gravitsapa gemacht ;)


Mama, Mama, was sollen wir nur tun...
"Es ist sehr schwierig, eine Sprache zu durchdringen, wenn man in zwei Sprachen gleichzeitig denkt" (c) Kin-dza-dza

Es ist also schwierig, eine Sprache zu verstehen, die derzeit aus zwei Sprachen besteht (mql4 und mql5).
Ich hoffe wirklich, dass alle Bibliotheken umgeschrieben werden und die Funktionalität erhalten bleibt.

 
Keine Panik, meine Herren... Halten Sie beide Hemisphären zusammen. :)
 
Lion.Fx:

Mama, Mama, was sollen wir nur tun, .....
Es ist sehr schwer, sich in die Sprache einzufinden, wenn man in zwei Sprachen gleichzeitig denkt. (c) Kin-dza-dza

Es ist schwierig, eine Sprache zu verstehen, die sich derzeit aus zwei Sprachen zusammensetzt (mql4 und mql5).
Ich hoffe wirklich, dass alle Bibliotheken umgeschrieben werden und die Funktionalität erhalten bleibt.


Die Funktion ObjectCreate() in der Bibliothek sollte noch ein wenig korrigiert werden.

zum Beispiel in "ChartObjectsBmpControls.mqh" statt:

ObjectCreate(chart_id,name,OBJ_BITMAP_LABEL,window,0,0.0)

machen:

ObjectCreate(name,OBJ_BITMAP_LABEL,window,0,0.0) 
 
ALXIMIKS:


in der Bibliothek, Sie müssen nur die ObjectCreate()-Funktion ein wenig anpassen

z.B. in "ChartObjectsBmpControls.mqh" statt:

machen:

Warum sollte man es ändern? Sie können sie beide behalten. Die harmonischste Option.
 
MetaDriver:
Warum sie ersetzen? Sie können sie beide behalten. Die harmonischste Option.


Bei einem neuen Build wird die Bibliothek ohnehin neu kompiliert.

Der Ausweg ist die Vererbung und das Hinzufügen einer eigenen Funktion, aber wenn die Entwickler das Problem beheben, ist alles sinnlos.

 
#property  strict

int iter=500000;

#define  S1      "abc"
#define  S2      "bcd"

void OnStart()
  {
        uint    startt,stopt;
   string s,s1;

   s1=S1; s="";
   Print("iter=",iter," s1=\"",s1,"\"");
   
//--- first method
   s1=S1; s="";
   startt=GetTickCount(); for(long i=0; i<iter; i++) s+=s1; stopt=GetTickCount();
   Print("s+=s1, time=",(stopt-startt)," ms, strlen=",StringLen(s));

//--- second method
   s1=S1; s="";
   startt=GetTickCount(); for(long i=0; i<iter; i++) StringAdd(s,s1); stopt=GetTickCount();
   Print("StringAdd(s,s1), time=",(stopt-startt)," ms, strlen=",StringLen(s));

//--- third method
   s1=S1; s="";
   startt=GetTickCount(); for(long i=0; i<iter; i++) s=StringConcatenate(s,s1); stopt=GetTickCount();
   Print("s=StringConcatenate(s,s1), time=",(stopt-startt)," ms, strlen=",StringLen(s));
}

teststr ergibt.

2013.12.08 21:12:41.866 teststr USDCHF,H1: entfernt
2013.12.08 21:12:41.855 teststr USDCHF,H1: s=StringConcatenate(s,s1), time=57564 ms, strlen=451434
2013.12.08 21:11:44.295 teststr USDCHF,H1: StringAdd(s,s1), time=16 ms, strlen=1500000
2013.12.08 21:11:44.284 teststr USDCHF,H1: s+=s1, time=530 ms, strlen=1500000
2013.12.08 21:11:43.749 teststr USDCHF,H1: iter=500000 s1="abc"
2013.12.08 21:11:43.746 teststr USDCHF,H1: erfolgreich geladen


STRLEN.... beobachten (funktioniert gut mit iter=3000 oder jedem kleinen iter)

555 bauen

 
Ich habe den Grund gefunden, warum einige Objekte im Diagramm nicht sichtbar sind und keine Parameter haben. Dies geschieht, wenn der Name des Objekts aus einigen Daten im EA gebildet wird und eine bestimmte Anzahl von Zeichen überschreitet und abgeschnitten wird. Ein solches Objekt hat keine Parameter. In der 509. wurde er mit einem abgeschnittenen Namen ausgegeben, in der 555. wird er zwar ausgegeben, hat aber null Preis- und Zeitkoordinaten.
 

Das ist lustig. Der Name des Expert Advisors enthält die Namen seiner Unterordner.

Dadurch wird der Name des Sachverständigen unnötig vergrößert.

Beispiel: Wenn der Name des Expert Advisors Expert lautet und er im Terminal-Verzeichnis\MQL4\experts\Orders\Nickname gespeichert ist ,

dann würde der Name des Expert Advisors nicht Expert, sondern Orders\Customer_name\Expert lauten. Enthält der Name des Objekts Expert_name und object_name_time, ist die Anzahl der Zeichen bereits überschritten, und das Objekt wird zu einem Preis von Null und einer Zeit von Null ausgegeben.

Wenn Objektnamen einen EA-Namen enthalten, der bei der Deinitialisierung bereinigt werden muss, bleibt nur sehr wenig Platz für den Objektnamen selbst.

Wird sich das ändern, oder bleibt das so?

 
sanyooooook:

aktualisiert auf 555 Terminal nicht sehen, Dateien von Skripten, Expert Advisors und Indikatoren, sind sie in der Terminal-Verzeichnis.

Bildschirmfoto


Könnten Sie bitte Ihren Standpunkt klarstellen?

Auf dem von Ihnen gezeigten Screenshot sind Skripte, Experten und Indikatoren zu sehen.