Коэффициенты торговли
Всем привет, продолжаю тестировать свои торговые алгоритмы, и собственно вопрос опять к прогерам, тем, кто оценивает торговые стратегии по разного рода коэффициентам, в частности Шарпа и Сортино
вопрос: какие коэффициенты, их значение — являются приемлемыми для рассмотрения стратегии вообще как интересной?
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));
}