Ошибки, баги, вопросы - страница 2317

 
Evgeniytre:

не сохраняется ((

У меня сохраняется:


 
Всех приветствую. Собственно, при запуске некоторых скриптов у меня терминал выдает такую ошибку “216655 strings left”. В поиске не особо описана эта проблема. Как я понял, возможно, это связано с потерей данных памятью. Прикрепил упрощённый вариант скрипта, который использую. Идея скрипта в том, что он должен брать данные из файла(ов) (файл FileWithDATA.txt), преобразовывать их согласно определённым условиям и записывать их в конечный файл. Данный вариант преобразовывает числа 1 и 2 в соответственно 3 и 7, но при этом выдает ошибку.
Файлы:
ForTest.mq5  7 kb
FileWithDATA.txt  635 kb
 

Как удалить отложенный ордер по истекшему фьючерсу?

Зависли три ордера.

При попытке удалить отвечает - торговля отключена.

 
fxsaber:

Решил написать полностью свой код, а не править чужой.

Похоже, на равных. Первые итерации сильно отличаются друг от друга. Затем выравнивается.

string - массив, а массивы, переменные типа структур и объекты классов всегда передаются по ссылке.

 

В примере строка передается без ссылки.

 
fxsaber:

В примере строка передается без ссылки.

Проверил, таки да, string простой тип и может передаваться по значению, несмотря на то, что это и массив. Показалось)
 

Здравствуйте уважаемые разрабы МТ, хочу сообщить об ошибке в алгоритме вычисления коэффициента Шарпа. В приложении отчет ув. господина Aleksey Vyazmikin где SR=0.29 однако по моим расчетам он равен примерно 3.7-3.8(в зависимости учитывать ли нулевые PnL) предполагаю что ошибка в отсутствии масштабирующего коэффициента при среднеквадратичном отклонении (sqrt(length)), так как средний ретурн не зависит от длинны ряда, он сходится, а СКО растет как sqrt(length)

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;

}

 
Верное ли здесь предупреждение?
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'
}
 

Здравствуйте. 

В MT5 Version: 5.00 build 1932 x64 от 29.10.2018  течет память при работе с динамическими массивами.

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

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

ArrayFree в данном случае не помогает, а вот ArrayResize(t, 0) все чистит.

 

В режиме оптимизации "Математические вычисления" агентам выдается по 1 заданию, как локальным так и удаленным, что приводит к не быстрой работе - издержки на ожидание, я полагаю.

Билд 1940.

Добавлено: После ускорения вычисления в коде стало выдаваться по 2-3 задания, что конечно уже хорошо.
Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...