Коэффициенты торговли
Всем привет, продолжаю тестировать свои торговые алгоритмы, и собственно вопрос опять к прогерам, тем, кто оценивает торговые стратегии по разного рода коэффициентам, в частности Шарпа и Сортино
вопрос: какие коэффициенты, их значение — являются приемлемыми для рассмотрения стратегии вообще как интересной?
650 |
Читайте на SMART-LAB:
📈 ЭсЭфАй: загадочный рост
Акции инвестхолдинга резко выросли, рынок считает — все дело в сообщении о проведении заседания СД. Что происходит — рассказывают аналитики Market...
Итоги недели на рынках сырьевых товаров
Если вас интересуют другие аналитические и информационные материалы от банка АО АКБ «ЦентроКредит», смотрите их на нашем сайте в...
Подводим итоги 2025 года по продажам новостроек
По итогам 2025 г. продажи жилья в новостройках увеличились на 1% по площади и на 11% — по сумме. Реализовано 25,6 млн м² на 5,2 трлн...
Актуальный состав портфеля и взгляд на рынок 2026: по-прежнему 0% позитива.
Добрый вечер! С момента предыдущего поста, касающегося моего портфеля, прошел квартал. Пришло время актуализировать его состав. Также поделюсь...
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));
}