Errori, bug, domande - pagina 2317

 
Evgeniytre:

non salvato ((

Sto risparmiando:


 
Saluti a tutti. In realtà, quando eseguo alcuni script, il terminale mi dà questo errore "216655stringherimaste". La ricerca non descrive bene questo problema. Da quanto ho capito, può essere dovuto alla perdita di memoria. Ho allegato una versione semplificata dello script che sto usando. L'idea dello script è che dovrebbe prendere dati da file (file FileWithDATA.txt), convertirli secondo certe condizioni e scriverli nel file finale. Questa opzione converte i numeri 1 e 2 rispettivamente in 3 e 7, ma produce un errore.
File:
ForTest.mq5  7 kb
FileWithDATA.txt  635 kb
 

Come posso cancellare un ordine pendente su un futures scaduto?

Ci sono tre ordini bloccati.

Quando provo a cancellarlo risponde - il trading è disabilitato.

 
fxsaber:

Ho deciso di scrivere interamente il mio codice, piuttosto che modificare quello di qualcun altro.

Sembra essere su un piano di parità. Le prime iterazioni sono molto diverse tra loro. Poi si allinea.

La stringa è un array, e gli array, le variabili di tipo struttura e gli oggetti di classe sono sempre passati per riferimento.

 

Nell'esempio, la stringa viene passata senza riferimento.

 
fxsaber:

Nell'esempio, la stringa viene passata senza riferimento.

Controllato, sì, string è un tipo semplice e può essere passato per valore, anche se è anche un array. Sembra)
 

Ciao cari sviluppatori di MT, voglio segnalare un errore nell'algoritmo di calcolo dello Sharpe Ratio. L'allegato contiene una relazione diAleksey Vyazmikin dove SR=0.29, ma secondo i miei calcoli è circa 3.7-3.8 (a seconda che si consideri o meno lo zero PnL). Penso che l'errore sia nella mancanza di un fattore di scala per la deviazione standard (sqrt(lunghezza)) perché il retour medio non dipende dalla lunghezza della serie, converge e il RMS aumenta come sqrt(lunghezza)

C++

double SharpRatio(vector<double> pnl)

{

double avret = 0;

for (int i = 0; i < pnl.size(); ++i) avret += pnl[i];

avret /= pnl.size();


double var = 0;

for (int i = 0; i < pnl.size(); ++i) var += pow(pnl[i] - avret, 2);

var = sqrt(var / pnl.size()) / sqrt(pnl.size());


return  avret / var;

}

 
L'avvertimento qui è corretto?
class CLASSNAME {};

void ChangePointer( const CLASSNAME* &Pointer ) { Pointer = NULL; } // Если const убрать, то предупреждения не будет

void OnStart()
{
  CLASSNAME* Pointers[1]; // = {0};
  
  ChangePointer(Pointers[0]); // possible use of uninitialized variable 'Pointers'
}
 

Salve.

In MT5 Versione: 5.00 build 1932 x64 del 29.10.2018 si verificano perdite di memoria quando si lavora con gli array dinamici.

class Test
{
public:
  Test(){}
};

void OnStart()
{
  Test t[];
  ArrayResize(t, 10);
}

ArrayFree non aiuta in questo caso, ma ArrayResize(t, 0) cancella tutto.

 

Nella modalità di ottimizzazione"Mathematical Computing" agli agenti viene dato 1 lavoro ciascuno, sia locale che remoto, il che risulta nel non lavorare velocemente - il costo dell'attesa, immagino.

Costruire 1940.

Aggiunto: dopo aver accelerato i calcoli nel codice, vengono emessi 2 o 3 compiti, che naturalmente è già buono.
Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...