MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 103

 
pro_:

Quello di cui ho scritto (pagina 68) non è stato ancora corretto, ma sono sicuro che lo sarà presto.
E la gravitsapa sarà fatta ;)
 
artmedia70:
E un gravitsapa sarà fatto ;)


Mamma, mamma, cosa faremo...
"È molto difficile penetrare una lingua quando si pensa in due lingue contemporaneamente" (c) Kin-dza-dza

Quindi è difficile capire un linguaggio che attualmente è composto da due lingue (mql4 e mql5).
Spero davvero che tutte le librerie vengano riscritte e che la funzionalità rimanga.

 
Niente panico, signori... Tenere insieme i due emisferi. :)
 
Lion.Fx:

Mamma, mamma, cosa faremo, .....
È molto difficile entrare nella lingua quando si pensa in due lingue contemporaneamente. (c) Kin-dza-dza

È difficile capire un linguaggio che attualmente è composto da due lingue (mql4 e mql5).
Spero davvero che tutte le librerie vengano riscritte e che la funzionalità rimanga.


La funzione ObjectCreate() nella libreria dovrebbe essere corretta solo un po'.

per esempio in "ChartObjectsBmpControls.mqh" invece:

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

fare :

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


nella libreria, dovete solo modificare un po' la funzione ObjectCreate()

per esempio in "ChartObjectsBmpControls.mqh" invece:

fare :

Perché cambiarlo? Potete tenerli entrambi. L'opzione più armoniosa.
 
MetaDriver:
Perché sostituirli? Potete tenerli entrambi. L'opzione più armoniosa.


Su una nuova build ricompilerà comunque la libreria.

La via d'uscita è ereditare e aggiungere la propria funzione, ma se gli sviluppatori risolvono il problema, non ha senso tutto.

 
#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 dà.

2013.12.08 21:12:41.866 teststr USDCHF,H1: rimosso
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: caricato correttamente


guardare STRLEN.... (funziona bene con iter=3000 o qualsiasi piccolo iter)

costruire 555

 
Ho trovato il motivo per cui alcuni oggetti non sono visibili nel grafico e hanno zero parametri. Questo succede se il nome dell'oggetto è costruito a partire da alcuni dati nell'EA ed è più di un certo numero di caratteri e viene troncato. Un tale oggetto ha zero parametri. Nel 509 è stato emesso con un nome troncato, nel 555 è emesso, ma ha zero coordinate di prezzo e di tempo.
 

È divertente. Il nome di Expert Advisor include i nomi delle sue sottocartelle.

Questo aumenta inutilmente la dimensione del nome dell'esperto.

Per esempio: se il nome dell'Expert Advisor è Expert ed è memorizzato in Terminal_directory\MQL4\experts\Orders\Nickname,

allora il nome dell'Expert Advisor non sarebbe Expert, ma Orders\Customer_name\Expert. Se i nomi degli oggetti includono Expert_name e object_name_time, è già superato il numero di caratteri, e l'oggetto sarà emesso a zero prezzo e zero tempo.

Se i nomi degli oggetti includono un nome EA da pulire quando vengono deinizializzati, questo lascia poco spazio per il nome dell'oggetto stesso.

Questo sarà cambiato o rimarrà così?

 
sanyooooook:

aggiornato al terminale 555 non vede i file di script, Expert Advisors e indicatori, sono nella directory del terminale.

Screenshot


Potrebbe per favore chiarire il suo punto di vista?

Nella schermata che hai presentato, ci sono script, esperti e indicatori

Motivazione: