Всем привет, продолжаю тестировать свои торговые алгоритмы, и собственно вопрос опять к прогерам, тем, кто оценивает торговые стратегии по разного рода коэффициентам, в частности Шарпа и Сортино
вопрос: какие коэффициенты, их значение — являются приемлемыми для рассмотрения стратегии вообще как интересной?
tashik вы что то говорили про коэффициенты, продолжите свою мысль пожалуста, я так понял вы их используете и как следствие знаете приемлемые значения этих коэффициентов
Если ищете денег в управление, то шарп нужен 2-3. Остальное там на нужный уровень само подтянется с таким Sharp Ratio. Коэффициент Шарпа — это отношение доходности к стандартному отклонению доходности. Как стандартное отклонение подсчитать, наверное, излишне объяснять. Он показывает насколько хорошо доходность компенсирует принимаемый стратегией риск.
Тихая Гавань, доходности трежерис для периода тестирования будет достаточно. Если история за 10 лет — то берите доху 10-летних трежерей. Я для нашего рынка 0 беру )
tashik, прошу не судить строго, я не люблю формулы ))
и уверен что где то сильно ошибся.
но никак не могу понять где именно
посмотрите этот скрин пожалуйста:
SereneBay1 — название
SPX500 M5 — инструмент
0-12 — месяцы
колонка начала месяца
колонка конца месяца
колонка профита за месяц
последняя колонка — ПРОЦЕНТ ЗА МЕСЯЦ
Тихая Гавань, стандартное отклонение доходности в процентах берем, прибыль тоже в процентах. Макс просадку нужно, иначе SD не посчитать. А вдруг там смыло стратегию в середине месяца или она на полдепо в минус торчит. Нужно по подневным результатам померить SD или, если держите долго — понедельным. И обязательно с макс просадкой в моменте даже по незакрытой сделке. Оно Вам дальше пригодится и для расчета оптимального размера позы.
я вижу воочию где и как были сформированы просадки.
просто мне интересно было посчитать шарпа..
по вышеприведенным формулам в функции — шарп получился 7,58
поискал в инете, да и вы говорите о Шарпе 3, а тут 7 с половиной, вот и задумался — где я мог ошибиться
Тихая Гавань, берете подневную доходность, даже если поза переносилась через ночь — берете результат дня на закрытие дня. Получаете временной ряд.
У этого ряда вычисляете среднее арифметическое. Вычитаете из каждого дневного результата, возводите полученное в квадрат, суммируете все за период — например год, делите на количество торговых дней в году минус 1 день — получаете дисперсию. Извлекаете квадратный корень — получаете стандартное отклонение.
Дальше с доходностью просто — ln (депо на начало года / депо на конец года) — вот доходность. Делим ее на стандартное отклонение. Получаем шарп по году.
Шарп 7 возможно, получился потому, что пересиживаемая просадка не учитывалась
tashik, я все так и делал, только по месяцам.
просадки не пересиживаются в принципе, так как ни стоп ни тейк не переносятся, они как выставляются сразу после входа в рынок, так никогда не изменяются.
стоп всегда в разы меньше профита.
tashik, я вас правильно понял, что на предоставленном скрине с предоставленными данными, вычисления сделаны адекватно?
я осознаю, что это результаты тестирования а не реальной торговли, однако тот факт что
1 — все работает исключительно на ЗАКРЫТИИ БАРА — тоесть ничего на этом баре уже не пересчитывается
2 — стопы и тейки никогда не двигаются
3 — объем торговли тут минимальный, в данном примере максимальный размер сделки — 3 контракта
4 — учитывается биржевое ГО, в начале тестирования выставляется объем с учетом биржевого ГО, а потом стоит ограничение на максимальное количество.
эти факты дают надежду на примерно похожую торговлю в реале.
однако я понимаю что прошлые прибыли как на тесте так и в реале — не дают гарантии того что такое будет и в будущем.
резкий скачек эквити в моем примере — это лишь реакция робота на повысившуюся волатильность. без нее результат был бы примерно в 2 раза хуже, тоесть не 800 а 400%
Тихая Гавань, можно просто стату сделок скинуть в csv подневно, без входов-выходов, просто дата, депо на открытии дня, депо на закрытии дня, и я посчитаю шарп. На так поставленный Вами вопрос ответить затрудняюсь. Одно могу сказать — если у стратегии больше 70 процентов убыточных сделок, то такие значения шарпа сомнительны, судя по моему небольшому опыту. Могу ошибаться.
Lagamail, +5%(наголову проигрывая бенчмарку) с шарпом 0.6( хуже чем у бенчмарка) — считают хорошим показателем и мало фондов такое делают) Но сидят довольные как слоны — нахваливают себя )
Estebancheg, жесть, а я думаю какие дураки идут в иис — 3 в кабалу и заморозку на 5 лет кажется. Ужас. Тут хоть 3 года проторчать удалось, пока вычет 13 % был побольше чем % по вкладу. А сейчас воо...
zzznth, так я тебя и спрашиваю, почему я должен что-то уточнять в свинарнике? Отвечай за свои слова, что ты имел ввиду?
Вот это «он дичь какую то на форумах пишет» с твоей стороны откровенное, бе...
5:20
я поставил 6 — норм?
и уверен что где то сильно ошибся.
но никак не могу понять где именно
посмотрите этот скрин пожалуйста:
SereneBay1 — название
SPX500 M5 — инструмент
0-12 — месяцы
колонка начала месяца
колонка конца месяца
колонка профита за месяц
последняя колонка — ПРОЦЕНТ ЗА МЕСЯЦ
ВВЕРХУ ТРИ СТРОЧКИ вычисление по формуле ШАРПА.
что тут не правильно?
все выведено на график для наглядности:
i.gyazo.com/21c927d523a5cfa252c42e852f179e23.png
я вижу воочию где и как были сформированы просадки.
просто мне интересно было посчитать шарпа..
по вышеприведенным формулам в функции — шарп получился 7,58
поискал в инете, да и вы говорите о Шарпе 3, а тут 7 с половиной, вот и задумался — где я мог ошибиться
У этого ряда вычисляете среднее арифметическое. Вычитаете из каждого дневного результата, возводите полученное в квадрат, суммируете все за период — например год, делите на количество торговых дней в году минус 1 день — получаете дисперсию. Извлекаете квадратный корень — получаете стандартное отклонение.
Дальше с доходностью просто — ln (депо на начало года / депо на конец года) — вот доходность. Делим ее на стандартное отклонение. Получаем шарп по году.
Шарп 7 возможно, получился потому, что пересиживаемая просадка не учитывалась
просадки не пересиживаются в принципе, так как ни стоп ни тейк не переносятся, они как выставляются сразу после входа в рынок, так никогда не изменяются.
стоп всегда в разы меньше профита.
я осознаю, что это результаты тестирования а не реальной торговли, однако тот факт что
1 — все работает исключительно на ЗАКРЫТИИ БАРА — тоесть ничего на этом баре уже не пересчитывается
2 — стопы и тейки никогда не двигаются
3 — объем торговли тут минимальный, в данном примере максимальный размер сделки — 3 контракта
4 — учитывается биржевое ГО, в начале тестирования выставляется объем с учетом биржевого ГО, а потом стоит ограничение на максимальное количество.
эти факты дают надежду на примерно похожую торговлю в реале.
однако я понимаю что прошлые прибыли как на тесте так и в реале — не дают гарантии того что такое будет и в будущем.
резкий скачек эквити в моем примере — это лишь реакция робота на повысившуюся волатильность. без нее результат был бы примерно в 2 раза хуже, тоесть не 800 а 400%
премного благодарен!
сама функция вот:
void sharp()
{
int i;
double sredn, summ;
// Средняя доходность на сделку
for (i = 0; i< 12; i++)
{
double pr = mnt[i].BalanceB — mnt[i].BalanceA;
double ProfitPerc = pr*100/Bal;
summ += ProfitPerc;
}
sredn = summ/12;
/////////////////
// стандартное отклонение
for (i = 0; i< 12; i++)
{
double pr = mnt[i].BalanceB — mnt[i].BalanceA;
double ProfitPerc = pr*100/Bal;
summ += (ProfitPerc-sredn)*(ProfitPerc-sredn);
}
double standOtk = MathSqrt(summ/12);
Print(" Шарп (", DoubleToStr(Global.Balance*100/Bal-100, 2), " / ", DoubleToStr(standOtk, 2), ") = ", DoubleToStr((Global.Balance*100/Bal-100)/standOtk, 2));
Print(" прибыль стратегии ", DoubleToStr(Global.Balance*100/Bal-100, 2));
Print(" стандартное отклонение ", DoubleToStr(standOtk, 2));
}