← Назад

Мутная статистика

Добрался до статистики! Где обещанный в документации расчет коэффициента Шарпа?

И Вам не кажется, что текущий расчет PnL вводит людей в заблуждение? Если честно я даже не понял как вы его считаете. Вот пример:

Снизу ваш график Эквити. Чуть выше нормальный расчет Профита. Расчет Профита простой. Сделка закрывается, цены вычитаются и локальные профиты суммируются. У вас же либо не правильный расчет, либо добавлены какие-то другие параметры.

Комментарии (18)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Mikhail Sukhov
Mikhail Sukhov

Bond: Расчет Профита простой. Сделка закрывается, цены вычитаются и локальные профиты суммируются. У вас же либо не правильный расчет, либо добавлены какие-то другие параметры.

Можно пойти следующим путем. Подписаться на событие изменения PnL и понять, после какого момента идет расхождение.

pafnuty
pafnuty

Bond И Вам не кажется, что текущий расчет PnL вводит людей в заблуждение?

У меня подтверждается по предварительным оценкам (на собранных в базе данных, полученных с помощью EmulationTrader).

В отладчике я пока не смотрел.

В базе я собираю статистику PnLs (по событию из Strategy), и Orders (тоже по событию). Посчитанный по Orders руками профит (тупо по формулам в Excel забил) существенно отличается от PnLs. (Могу выложить данные.)

Андрей Гунинский
Андрей Гунинский

Bond: Добрался до статистики! И Вам не кажется, что текущий расчет PnL вводит людей в заблуждение? Если честно я даже не понял как вы его считаете. Вот потому и нужно иметь возможность видеть раздельно компоненты из которых формируется кумулятивное эквити или PnL.

Когда всё в куче то сложно уже разобрать что даёт отклонение, так как причин может быть несколько и все они примерно одного порядка влияния. К примеру когда вычисляется приращение прибыли, покупка-продажа фиксируется по оферу-биду, разница и будет единичным приращением эквити, без учета комиссии и проскальзывания, но даже на этом этапе можно затуманить картину, если учитывать бид-аск разницу только с одного конца(по закрытию, открытию, среднюю, вообщн не учитывать) или если добавить рандомный компонент пытаясь смоделировать внутрисвечной тиковый шум. Уплотнения ряда смоделированными тиками, это на мой взгляд бессмысленная алхимия жутко замедляющая тестирование, какой в ней смысл если влияние на эквити оказывает только СКО этих сгенерированных «тиков», которое просто аддитивный статический компонент к издержкам.

Если нет возможности с адекватной точностью выборочно проверить релевантность слагаемых эквити, то я бы не стал доверять такому тестированию. Можно ведь легко так сделать, что бы под понтом точной «генерации тиков», смещать в профит явно сливные типы стратегий и резать профитные, проверить будет это довольно сложно без детальной картины слагаемых эквити, а если что то всё можно будет списать на псевдо-тики.

Mikhail Sukhov
Mikhail Sukhov

Андрей Гунинский: Вот потому и нужно иметь возможность видеть раздельно компоненты из которых формируется кумулятивное эквити или PnL.

Так вроде и так вынесено в отдельный компонент. Как предлагаете еще вынести?

Андрей Гунинский: Если нет возможности с адекватной точностью выборочно проверить релевантность слагаемых эквити, то я бы не стал доверять такому тестированию.

  1. все разбито по компонентам
  2. эмулятор сделан на основе конечного автомата.

уж даже не знаю как проще сделать для проверок. Но всегда рад услышать что-то конкретное.😉

Bond
Bond Автор

Михаил Сухов:

Андрей Гунинский: Вот потому и нужно иметь возможность видеть раздельно компоненты из которых формируется кумулятивное эквити или PnL.

Так вроде и так вынесено в отдельный компонент. Как предлагаете еще вынести?

Андрей Гунинский: Если нет возможности с адекватной точностью выборочно проверить релевантность слагаемых эквити, то я бы не стал доверять такому тестированию.

  1. все разбито по компонентам
  2. эмулятор сделан на основе конечного автомата.

уж даже не знаю как проще сделать для проверок. Но всегда рад услышать что-то конкретное.😉

Михаил, но согласитесь, что графики явно различаются. Ладно там комиссия или расчет не стандартный, но рисунок совсем другой. Хотя какието корреляции провести можно. Но что главное, цифры разнятся принципиально. Повторюсь, либо у Вас ошибка, либо вы как-то мудрено считаете.

П.С. Как? Как Ваш эквити умудряется менять свое значение между сделками? Явно не стандартный расчет.

Ваш:

Мой:

Mikhail Sukhov
Mikhail Sukhov

Bond: Михаил, но согласитесь, что графики явно различаются. Ладно там комиссия или расчет не стандартный, но рисунок совсем другой. Хотя какието корреляции провести можно. Но что главное, цифры разнятся принципиально. Повторюсь, либо у Вас ошибка, либо вы как-то мудрено считаете.

Я же пишу - надо отчет о разнице. Пересчет ПнЛ идет постоянно, отслеживая стоимость позы. Вот собственно на изменение позы и надо делать проверку.

Bond
Bond Автор

Михаил Сухов:

Bond: Михаил, но согласитесь, что графики явно различаются. Ладно там комиссия или расчет не стандартный, но рисунок совсем другой. Хотя какието корреляции провести можно. Но что главное, цифры разнятся принципиально. Повторюсь, либо у Вас ошибка, либо вы как-то мудрено считаете.

Я же пишу - надо отчет о разнице. Пересчет ПнЛ идет постоянно, отслеживая стоимость позы. Вот собственно на изменение позы и надо делать проверку.

Я отслеживаю эквити от сделки к сделке, а вы переводите в значение текущий портфель бумаг. Вот у вас и получаются просадки там, где у меня их нет. Я оцениваю доходность стратегии, а вы считаете текущую потенциальную стоимость активов.

Mikhail Sukhov
Mikhail Sukhov

Bond: Я отслеживаю эквити от сделки к сделке, а вы переводите в значение текущий портфель бумаг. Вот у вас и получаются просадки там, где у меня их нет. Я оцениваю доходность стратегии, а вы считаете текущую потенциальную стоимость активов.

Это вообще то неправильно из-за

  1. Арбитражеров разрывает по маржину как раз на открытых позициях, а вовсе не на фиксе. Тоесть учет стоимости активов важен. Может для трендовой не так важен, но даже для таких стратегий вносятся коррективы.

  2. Для РИ (или любого другого инструмента, стоимость которого рассчитывается в долларомо эквиваленте) можно получить убытки при совершении серии профитных сделок.

Bond
Bond Автор

Михаил Сухов:

Bond: Я отслеживаю эквити от сделки к сделке, а вы переводите в значение текущий портфель бумаг. Вот у вас и получаются просадки там, где у меня их нет. Я оцениваю доходность стратегии, а вы считаете текущую потенциальную стоимость активов.

Это вообще то неправильно из-за

  1. Арбитражеров разрывает по маржину как раз на открытых позициях, а вовсе не на фиксе. Тоесть учет стоимости активов важен. Может для трендовой не так важен, но даже для таких стратегий вносятся коррективы.

  2. Для РИ (или любого другого инструмента, стоимость которого рассчитывается в долларомо эквиваленте) можно получить убытки при совершении серии профитных сделок.

Арбитражем я не занимаюсь. А всеми пересчетами в рубли, перепроверками, отслеживанием портфелей и позиций, я считаю, должна заниматься стратегия самостоятельно. Если там все плохо, то она должна закрывать позиции. Мой график профита оценивает исключительно итоговую работу стратегии, ее конечный результат.

П.С. И все равно у вас цифры не правильные [flapper]

Mikhail Sukhov
Mikhail Sukhov

Bond: П.С. И все равно у вас цифры не правильные [flapper]

Именно поэтому я и предложил разобраться.

Bond
Bond Автор

можно затуманить картину, если учитывать бид-аск разницу только с одного конца(по закрытию, открытию, среднюю, вообщн не учитывать) Все относительно. Конечно здорово брать среднее, а не крайнее значение. Лично я просто уменьшаю таймфрейм. Шумные пятиминутки? Не понятно, что в свечке? Берите минутки и работайте с ними.

Bond
Bond Автор

Андрей, вы вроде подкованы в математике. Работали с оптимизацией методом Монте-Карло? Поиск глабальных экстремумов методом отжига. Пытаюсь разобраться с какой степенью при каждой новой выборке уменьшать диапазон разброса случайных величин. Так сказать как определимость "сходимость" к экстремуму. Опять же какое распределение случайных величин использовать? Нормальное? Х=a+(b-a)random[a:b] ? Как посчитать погрешность расчета? Если получится два близких по значению экстремума, но на большом расстоянии друг от друга? Какой брать для следующей итерации? И т.д. и т.п. По сути этот метод урезанная генетика) И да, я его запилю на базе Оптимизаторов) Сокращу время расчетов и увеличу число переменных в массиве данных) Буду признателен за помощь!)

Андрей Гунинский
Андрей Гунинский

Почему бы не взять очень маленький синтетический ряд цены и ряд сигналов к нему(1,0,-1). Такой что бы за пару минут на калькуле или в уме можно было просчитать и убедиться в верности расчета, я так обычно делаю в таких случаях. Тогда все вопросы отпадут.

Mikhail Sukhov
Mikhail Sukhov

Андрей Гунинский: Почему бы не взять очень маленький синтетический ряд цены и ряд сигналов к нему(1,0,-1). Такой что бы за пару минут на калькуле или в уме можно было просчитать и убедиться в верности расчета, я так обычно делаю в таких случаях. Тогда все вопросы отпадут.

Хорошо. Ждем от вас такой тест.😀

Bond
Bond Автор

Михаил Сухов:

Андрей Гунинский: Почему бы не взять очень маленький синтетический ряд цены и ряд сигналов к нему(1,0,-1). Такой что бы за пару минут на калькуле или в уме можно было просчитать и убедиться в верности расчета, я так обычно делаю в таких случаях. Тогда все вопросы отпадут.

Хорошо. Ждем от вас такой тест.😀

Михаил, ваши формулы в студию, пожалуйста!

Mikhail Sukhov
Mikhail Sukhov

Bond: Михаил, ваши формулы в студию, пожалуйста!

http://stocksharp.codeplex.com/SourceControl/latest#Sources/Algo/PnL/ С тех пор менялась только косметика. Расчеты все те же.

Bond
Bond Автор

Михаил Сухов:

Bond: Михаил, ваши формулы в студию, пожалуйста!

http://stocksharp.codeplex.com/SourceControl/latest#Sources/Algo/PnL/ С тех пор менялась только косметика. Расчеты все те же.


d => d.Sum(p => p.Key.MinStepPrice / p.Key.MinStepSize * p.Value.UnrealizedPnL)

Ну, смотрите сами Михаил. Это скорее Вам нужно, чем мне. У меня свой расчет. Графики несут разную информацию, главное, чтобы у ваших клиентов было ясное понимание, что график отображает.

loop
loop

Для свечного тестирования, сделки нужно фиксировать(открывать закрывать) по ценам открытия следующей свечи, а не той на которой возник сигнал. Иначе получится подглядывание. С тиками тоже следующим тиком, а не тем на котором сигнал возник, но без учета OHLC. Само собой покупка продажа по аску \биду. Не вижу никакого смысла мониторить субспредовые закономерности(фиксировать на одном аске иле биде), но вот отдельно комиссионные и связанные с проскальзыванием потери можно выводить.

Некоторые фиксируют покупку по HighAsk а продажу по LowBid следующей свечи, ориентируясь на мрачный сценарий и эмпирически это оправданно, так что можно сделать на выбор такой режим тоже.

Соглашусь с коллегами, что каждый режим подсчёта PnL должен быть потенциально фальсифицируем(чётко представлена формула), с черными ящиками работать не всем комфортно.