Блог им. Crazy_Trading

Коэффициенты торговли

Всем привет, продолжаю тестировать свои торговые алгоритмы, и собственно вопрос опять к прогерам, тем, кто оценивает торговые стратегии по разного рода коэффициентам, в частности Шарпа и Сортино

вопрос: какие коэффициенты, их значение — являются приемлемыми для рассмотрения стратегии вообще как интересной?
★2
27 комментариев
tashik вы что то говорили про коэффициенты, продолжите свою мысль пожалуста, я так понял вы их используете и как следствие знаете приемлемые значения этих коэффициентов
Наверное, это индивидуально. Приемлема и единица, но кому-то это может и мало (особенно с учетом всяких проскальзываний).
avatar
Если ищете денег в управление, то шарп нужен 2-3. Остальное там на нужный уровень само подтянется с таким Sharp Ratio. Коэффициент Шарпа — это отношение доходности к стандартному отклонению доходности. Как стандартное отклонение подсчитать, наверное, излишне объяснять. Он показывает насколько хорошо доходность компенсирует принимаемый стратегией риск.
avatar
tashik, 
5:20 
avatar
Lagamail, я лично знаю человека, у кого он вручную 3, несколько лет подряд. А так… для себя любую планку можно поставить
avatar
tashik, какую доходность безрисковой инвестиции необходимо вставлять в эту формулу? 

я поставил 6 — норм? 
Тихая Гавань, доходности трежерис для периода тестирования будет достаточно. Если история за 10 лет — то берите доху 10-летних трежерей. Я для нашего рынка 0 беру )
avatar
tashik, это опционы или фьючерсы с таким шарпом? 
avatar
YuryDok, торговля волой, но это наш общий знакомый. У меня пока такое не выходит даже во сне. Но дорогу осилит идущий.
avatar
tashik, СБ?
avatar
YuryDok, да, шарп 3 6 лет подряд, если память не изменяет. Реал, не тесты никакие.
avatar
tashik, прошу не судить строго, я не люблю формулы )) 
и уверен что где то сильно ошибся. 
но никак не могу понять где именно 

посмотрите этот скрин пожалуйста: 




SereneBay1 — название 
SPX500 M5 — инструмент
0-12 — месяцы 
колонка начала месяца
колонка конца месяца
колонка профита за месяц
последняя колонка — ПРОЦЕНТ ЗА МЕСЯЦ

ВВЕРХУ ТРИ СТРОЧКИ вычисление по формуле ШАРПА.

что тут не правильно? 


Тихая Гавань, стандартное отклонение доходности в процентах берем, прибыль тоже в процентах. Макс просадку нужно, иначе SD не посчитать. А вдруг там смыло стратегию в середине месяца или она на полдепо в минус торчит. Нужно по подневным результатам померить SD или, если держите долго — понедельным. И обязательно с макс просадкой в моменте даже по незакрытой сделке. Оно Вам дальше пригодится и для расчета оптимального размера позы.
avatar
tashik, оптимальный размер позы уже просчитан.
все выведено на график для наглядности:
i.gyazo.com/21c927d523a5cfa252c42e852f179e23.png


я вижу воочию где и как были сформированы просадки. 
просто мне интересно было посчитать шарпа.. 
по вышеприведенным формулам в функции — шарп получился 7,58

поискал в инете, да и вы говорите о Шарпе 3, а тут 7 с половиной, вот и задумался — где я мог ошибиться
Тихая Гавань, берете подневную доходность, даже если поза переносилась через ночь — берете результат дня на закрытие дня. Получаете временной ряд.
У этого ряда вычисляете среднее арифметическое. Вычитаете из каждого дневного результата, возводите полученное в квадрат, суммируете все за период — например год, делите на количество торговых дней в году минус 1 день — получаете дисперсию. Извлекаете квадратный корень — получаете стандартное отклонение.
Дальше с доходностью просто — ln (депо на начало года /  депо на конец года) — вот доходность. Делим ее на стандартное отклонение. Получаем шарп по году.

Шарп 7 возможно, получился потому, что пересиживаемая просадка не учитывалась
avatar
tashik, я все так и делал, только по месяцам. 
просадки не пересиживаются в принципе, так как ни стоп ни тейк не переносятся, они как выставляются сразу после входа в рынок, так никогда не изменяются. 
стоп всегда в разы меньше профита.
Тихая Гавань, ок, дайте роботу денег на 1 лот и посмотрите, что в реале получится. Потом пересчитаете еще раз
avatar
tashik, я вас правильно понял, что на предоставленном скрине с предоставленными данными, вычисления сделаны адекватно? 

я осознаю, что это результаты тестирования а не реальной торговли, однако тот факт что
1 — все работает исключительно на ЗАКРЫТИИ БАРА — тоесть ничего на этом баре уже не пересчитывается
2 — стопы и тейки никогда не двигаются
3 — объем торговли тут минимальный, в данном примере максимальный размер сделки — 3 контракта
4 — учитывается биржевое ГО, в начале тестирования выставляется объем с учетом биржевого ГО, а потом стоит ограничение на максимальное количество.  
эти факты дают надежду на примерно похожую торговлю в реале.

однако я понимаю что прошлые прибыли как на тесте так и в реале — не дают гарантии того что такое будет и в будущем. 

резкий скачек эквити в моем примере — это лишь реакция робота на повысившуюся волатильность. без нее результат был бы примерно в 2 раза хуже, тоесть не 800 а 400%

 

Тихая Гавань, можно просто стату сделок скинуть в csv подневно, без входов-выходов, просто дата, депо на открытии дня, депо на закрытии дня, и я посчитаю шарп. На так поставленный Вами вопрос ответить затрудняюсь. Одно могу сказать — если у стратегии больше 70 процентов убыточных сделок, то такие значения шарпа сомнительны, судя по моему небольшому опыту. Могу ошибаться.
avatar
tashik, киньте мне в личку свою почту, завтра с утра напишу функцию вывода сделок в файл и скину вам. 

премного благодарен!
tashik, да, у меня все в процентах считается
tashik, 

сама функция вот: 

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));
}

tashik, я к тому что средний Шарп у фондов 0,6 и им кто-то дает большие деньги в управление.
avatar
Lagamail, потому что сложно найти что-то другое.
avatar
tashik, а SPY + TLT  60/40 
avatar
Lagamail, +5%(наголову проигрывая бенчмарку) с шарпом 0.6( хуже чем у бенчмарка) — считают хорошим показателем и мало фондов такое делают) Но сидят довольные как слоны — нахваливают себя )
avatar
YuryDok, просто это какая-то иррациональность, фонды  облигаций +5% дают, но там риски на порядок ниже.
avatar

теги блога Тихая Гавань

....все тэги



UPDONW
Новый дизайн