Errori, bug, domande - pagina 2542

 
Perché quando spengo il computer e vado in MT4 il giorno dopo i livelli non vengono salvati?
 

Sviluppatori, ciao.

In CArrayList da capacità ginerica è usato in modo errato. Se è una dimensione di riserva, dovrebbe essere chiamata nel costruttore in questo modo:

ArrayResize(m_items,0,m_default_capacity);

In questo momento è così:

ArrayResize(m_items,m_default_capacity);

Se volete allocare e contabilizzare voi stessi, allora iniziate a posizionare e utilizzare ovunque, compreso bsearch e altro, anche se non è una buona idea.


PS. Studiando il codice, ho scoperto che si passa m_size dopo tutto. Quando l'array è vuoto, BinarySearch restituisce 0, non -1.

E perché dovremmo organizzare noi stessi la capacità quando l'abbiamo a livello di ArrayResize?

PPS. Ci sono piani per creare un LowerBound?
 

Ci sono tre punti principali suCArrayList:

1. Pensare di rimuovere l'implementazione aggiuntiva della capacità, dato che esiste già in ArrayResize

2) Fissare BinarySearch per l'array vuoto. Per impostazione predefinita, ci sono 4 elementi nell'array e l'indice 0 viene passato per primo e viene restituito quando la dimensione dell'array è zero.

3. È auspicabile aggiungere LowerBound. È strano che nessuno abbia chiesto prima

 
Yevhenii8370:
Perché quando spengo il computer ed entro in MT4 il giorno successivo i livelli non vengono salvati?

Ci sono due opzioni qui - o c'è un indicatore/consigliere che pulisce tutti i livelli durante l'inizializzazione, o il set non ha tempo per salvare. Ho incontrato entrambi i problemi, il primo può essere risolto modificando il codice, e il secondo salvando il set due volte e caricando la versione salvata all'avvio del terminale.

 
Sergey Dzyublik:

MT5 (build 2118), Quanto ancora possiamo aspettare per risolvere i bug nella funzionalitàtypedef?
Alcune sciocchezze - un passo a sinistra di un esempio primitivo sull'uso di typedef e questo è tutto - un mucchio di bug che bloccano ulteriori sviluppi.

Grazie per il codice.

Bug risolto.

La build demo di MT4 1192 è stata rilasciata oggi, provate a usare MetaEditor 2121 che viene fornito con MT4 per compilare i file MQ5

 

ha tolto l'indicatore, lasciato qui sul grafico (allegato).

Come rimuovere?

Ho cercato nell'elenco degli oggetti - non l'ho trovato. ho tolto tutti gli indicatori e l'EA - non ha aiutato.

File:
 
barashka:

ha tolto l'indicatore, lasciato qui sul grafico (allegato).

Come rimuovere?

Ho cercato nella lista degli oggetti - non ho trovato. ho tolto tutti gli indicatori e l'EA - non ha aiutato.

L'elenco degli oggetti ha un pulsante per mostrare gli oggetti nascosti, cancellarli lì...

 
Vladimir Pastushak:

Nella lista degli oggetti, c'è un pulsante per mostrare gli oggetti nascosti, quindi cancellali lì...

: )
 
Sergey Dzyublik:

https://www.mql5.com/ru/docs/basis/types/classes

All'inizio ero sorpreso, perché non sapevo che l'offsetof esistesse.
Ma la realtà ha messo tutto al suo posto:

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- объявим переменную типа Children 
   Children child;   
//--- узнаем смещения от начала структуры  
   Print("offsetof(child.c)=",offsetof(child.c)); 
   Print("offsetof(child.s)=",offsetof(child.s));
}   



'offsetof' - funzione non definita

Grazie per il messaggio.

Ci sono errori di copia-incolla nella guida, correggiamoli:

invece del nome della variabile child dovrebbe essere il tipo di classe Children e invece di '. (accesso al campo) dovrebbe essere una virgola (offsetof è una macro incorporata (condizionale))

struct Parent{ 
      char              c;    // sizeof(char)=1 
};
     
struct Children pack(2) : Parent{ 
      short             s;   // sizeof(short)=2 
};

void OnStart(){ 
//--- узнаем смещения от начала структуры  
   Print("offsetof(Children,c)=",offsetof(Children,c); 
   Print("offsetof(Children,s)=",offsetof(Children,s));
}   

 

Problema con .NET. Il programma si blocca quando la libreria accede ad altri moduli personalizzati, dicendo che il file non viene trovato:

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.TypeInitializationException: Инициализатор типа "MDD.IQFeedAPI" выдал исключение. ---> System.IO.FileNotFoundException: Не удалось загрузить файл или сборку "NLog, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c" либо одну из их зависимостей. Не удается найти указанный файл.

Tutte le dll utilizzate (inclusa la citata NLog.dll) sono nella stessa cartella, ma per qualche motivo il sistema non le vede quando viene eseguito da MT. Funziona bene solo con il framework normale. È lo stesso per tutti o mi manca qualcosa? Se qualcuno sa come risolvere questo problema, lo apprezzerei.

Motivazione: