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

 

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

 
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
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
 
pantural:

Здравствуйте уважаемые разрабы МТ, хочу сообщить об ошибке в алгоритме вычисления коэффициента Шарпа. В приложении отчет ув. господина 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;

}

1.Какие данные содержатся в массиве pnl? Как они вычислены и с чем вы сравниваете свой вариант вычисления коэффициента Шарпа?

2. Что означает данная запись? Выделение ваше

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

 

Почему при оптимизации не всегда происходит округление(нормализация) корректно, я понимаю, что это возможно тот же эффект что и при принте даблов, но для глаза пользователя это не приятно в окне оптимизатора - информация сложно воспринимается визуально.

double ret=Balans_Delta*1000+NormalizeDouble(PF,2);
 

POSITION_REASON при этом не меняется. Например, открыл советником BUY-позу на 1 лот и мэджиком 5, а потом руками сделал SELL 1.2 лота. В итоге имеем SELL-позицию на 0.2 лота, мэджик сброшен в ноль, но POSITION_REASON остается POSITION_REASON_EXPERT, вместо POSITION_REASON_CLIENT.

Просьба исправить эту ошибку.

 
pantural:

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

Ответил там, где этот вопрос возник изначально

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Машинное обучение в трейдинге: теория и практика (торговля и не только)

Rashid Umarov, 2018.11.05 15:15

Вообще, желательно понимать смысл параметров, прежде чем принимать их на веру. Получив такое значение вы должны были задуматься и начать искать ошибку в своих расчетах.

Так как коэффициент Шарпа больше 3 говорит том, что перед нами 100% зарабатывающая стратегия, и вероятность получить прибыль на ней больше чем 99.99 %.  Если распределение PnL  является нормальным, конечно.