Ошибки, баги, вопросы - страница 2319
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Настройки символа, а не графика.
В обзоре рынка в контекстном меню символа выбрать «спецификация символа»
Спасибо.
Покажите пожалуйста логи терминала на момент проблемы от начала старта
Спасибо.
Покажите пожалуйста логи терминала на момент проблемы от начала старта
Лог-файл направил личным сообщением.
Лог-файл направил личным сообщением.
Да, спасибо.
По логам всё чисто.
Скажите, описанная Вами ситуация продолжается?
Объем без DoubleToString(Volume, 2). На скрине EURUSD.
Да, спасибо.
По логам всё чисто.
Скажите, описанная Вами ситуация продолжается?
После перезагрузки терминала пока все нормально.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
pantural, 2018.11.01 16:03
Здравствуйте уважаемые разрабы МТ, хочу сообщить об ошибке в алгоритме вычисления коэффициента Шарпа. В приложении отчет ув. господина 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;
}
Возьмем две одинаковые ТС. Запустили их одновременно. Через сутки они обе показали массив pnl. Первую остановили, вторую - нет. Еще через сутки вторая показала точно такой же pnl.
Т.е. у первой pnl[], а у второй pnl[]+pnl[]. Т.е. вторые сутки торговля была идентична первым суткам.
Тогда по предложенной формуле коэффициент Шарпа у второй ТС будет в sqrt(2) (корень из двойки) меньше, чем у первой. Но торговали же они идентично!
Возьмем две одинаковые ТС. Запустили их одновременно. Через сутки они обе показали массив pnl. Первую остановили, вторую - нет. Еще через сутки вторая показала точно такой же pnl.
Т.е. у первой pnl[], а у второй pnl[]+pnl[]. Т.е. вторые сутки торговля была идентична первым суткам.
Тогда по предложенной формуле коэффициент Шарпа у второй ТС будет в sqrt(2) (корень из двойки) меньше, чем у первой. Но торговали же они идентично!
Как там в анекдоте? "Их нужно убивать пока они маленькие" .
Ну давайте разберем на примере из файла, приложенного в #11396. А то в теории всё выглядит устрашающе, пока руками не пощупаешь.
Там в этом файле 144 трейда, для которых Шарп получился 0.29 (на сайте показывается с точностью до 2 знаков, и то нормально - никому не нужно 5 знаков после запятой, в данном случае 2 знака хватает за глаза для сравнения двух стратегий).
Шарп считается как отношение K/STD, где:
Пусть у нас стало в два раза больше трейдов, которые были копией предыдущих трейдов. Это означает, что теперь трейдов сталов 288 = 144*2. При этом K у нас не изменится. Значит, изменение Шарпа может происходить только за счет изменения STD.
Начальный STD=MathSqrt(X2/(n-1)), где:
То есть Sharpe=MathSqrt(X2/(144-1)) = MathSqrt(X2/143)
У нас стало в два раза больше трейдов, поэтому для истории в два раза больше новый Шарп вычисляется так:
где X2_new=2*X2. Поэтому отношение SharpeNew/Sharpe = MathSqrt(X2/(144-1)) / MathSqrt(X2_new/(2*144-1)) =
Даже если я перепутал знаменатель с числителем, то SharpeNew будет находиться в интервале 0.292919 - 0.296025. То есть разница будет где-то на третьем знаке.
Но никак в 10-20 раз. Проверьте сами, где я ошибся.
Как там в анекдоте? "Их нужно убивать пока они маленькие" .
Вы меня не поняли.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
fxsaber, 2018.11.06 13:23
Тогда по предложенной формуле коэффициент Шарпа у второй ТС будет в sqrt(2) (корень из двойки) меньше, чем у первой. Но торговали же они идентично!
Имелась в виду процитированная формула из C++.
ЗЫ А в используемой в MT формуле, конечно, единицу бы не отнимал. Тогда предложенный пример, сколько бы интервалов по 144 не наблюдалось, Шарп всегда бы совпадал.