Блог им. pride

Подсчет доходности торговой системы

С интересом для себя, уже не в первый раз сталкиваюсь с тем, что даже опытные в инвестициях/торговле/спекуляциях люди не знают или не понимают как правильно посчитать и оценить доходность своей (или той, которую разрабатывают/оптимизируют) торговой системы.  И эта заметка делается с целью один раз все записать и иметь потом ссылочку где это написано. И так…


Для простоты возьмем выдуманный пример из трех сделок.

Пусть при стоимости инструмента 200 пунктов (можете считать в рублях/долларах/в чем угодно) мы открыли сделку и взяли тейк размером 20 пунктов.

Затем инструмент стал стоить 100 пунктов мы зашли в сделку и проиграли 20 пунктов.

После этого инструмент опять стал стоить 200 и мы открыли сделку и взяли 10 пунктов прибыли.


Соответственно средний П/У (средняя прибыль/убыток на сделку) в пунктах у этих трех сделок будет равен (20 — 20 + 10) / 3 = 3.33 пункта. Класс! У нас отличная торговая система, она зарабатывает в каждой сделке в среднем 3.33 пункта!


Теперь мы хотим узнать сколько в среднем процентов в каждой сделке мы будем зарабатывать на вложенный капитал, т.е. мы такие прям инвесторы/спекулянты и хотим понять, вот мы вложили полностью свой капитал (ну, вот прям все свободное бабло туда засунули, или часть засунули и хотим понять сколько на засунутое мы процентов заработаем) в эту торговую систему и хотим понять сколько же процентов мы сможем заработать. То здесь уже исходы каждой сделки в процентах выигрыша/проигрыша будут равны +10%, -20%, + 5% (считаем сколько процентов от цены входа составляет наш выигрыш/проигрыш в каждой сделке), что эквивалентно +0.1, -0.2, +0.05. Тогда средний процент выигрыша/проигрыша в сделке будет равен (0.1 — 0.2 + 0.05) / 3 = -0.017. И тут уже что-то как-то не очень классно получается, мы в каждой сделке в среднем уже начинаем проигрывать 1.7% на вложенный капитал (вот, прям, вложили 3 рубля и проиграли 5 копеек, и так в каждой сделке).


Но мы же тут деньги собрались зарабатывать, все по взрослому, реинвестировать все заработанное обратно, чтобы заработанное еще больше бабла приносить стало. И теперь мы хотим посмотреть сколько в среднем на сделку мы будем зарабатывать в случае когда мы всю полученную прибыль/убыток реинвестируем обратно (по сути получая те самые «волшебные пузырьки» — сложный процент), то в этой ситуации финансовый результат такой торговли/инвестиций будет равен 1 * (1 + 0.1) * (1 — 0.2) * (1 + 0.05) = 1 * 1.1 * 0.8 * 1.05 = 0.924 (и это прям не круто уже, потеряли 7.6 процента от первоначального депо). И теперь мы хотим понять какая в среднем сделка у нас была в процентах, а для этого надо из полученного финансового результата взять корень по степени количества сделок (наш финансовый результат — это произведение доходностей сделок, соответственно среднее здесь будет геометрическое, а это корень степени по количеству сделок), т.е. т.к. сделок у нас было 3, то надо взять корень третьей степени из 0.924, что примерно равно 0.97 (т.е. 0.97 * 0.97 * 0.97 = 0.913). И если это перевести в проценты, то 0.97 — 1 = -0.03. И вот тут уже оказывается, что мы в каждой сделке начинаем проигрывать уже целых 3% на вложенные средства. И это уже фиаско братан!


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


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


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

 
32 комментария
а если сделки только в плюс закрываю, нормально будет?)
avatar
открытый безидейщик, Если только в плюс, то можно и не считать ничего. И так норм! :)))
avatar
Гордость, спасибо)












avatar
Лошади кушают овес и сено. Волга впадает в Каспийское море. 
 А. П. Чехов «Учитель словесности»
avatar
SergeyJu, это типа я очевидные вещи в посте описал? Или шо-то где-то не по русски написал? :)
avatar
Гордость, нах*вертил так,
что простую по сути вещь даже я перестал понимать. )))))))
Пишешь о простых математических вещах — будь проще,
пиши без вывертов и люди к тебе потянутся.
Возможно даже будут благодарны.

Кстати, правильных методов посчитать доходность несколько.
Их можно посмотреть в действии на ПАММах, на Мухобойке и т.п.
Там же и методика расчета описана простыми словами.

А реинвестирование при любом методе учитывается автоматически, если торгуется не фиксированным объёмом.
avatar
VladMih, так я и не топлю за то, что это прям единственный способ. Я лишь о том, что некоторые люди не понимают даже такого. А объяснить попытался как уж смог, надеюсь кому-нибудь откроет глаза...
А деформация она такая… Видна же только со стороны… :)))
avatar
Гордость, ну уж, проще-то точно смог бы.
Просто мода щас такая дебильная писать типа «с юморком», с приподвывертом. У кого-то может получается, у кого дар писательский, остальные со словом как обезьяна с гранатой.
И это почти поголовно.
Аж тошнит уже от этого всеобщего выпендривания.
Без обид.
avatar
VladMih, не выпендривался я.
Это вот как с бородой… Всю жизнь небритый хожу, периодически подстригая бороду, а тут вот раз и модный стал… :)
Да и мальчик я уже взрослый, не обижаюсь :)
avatar
Гордость, дак я и не пытался обидеть, сказал как вижу. 
А вы зацепились за обиду, значит …
не такой взрослый, каким себе кажетесь.

Да все мы дети. Особенно мужики. Особенно до 40-ка.
Я уж молчу про после 60-ти )))))
avatar
VladMih, вы меня точно не поняли :)
Ваще ни разу не зацепился ни за что.
Разговор поддерживаю только :)
avatar
Гордость, дак разговор-то не про то, обидитесь вы или нет!

Знаете, курю на балконе и зачастую «подслушиваю» разговоры бабушек на скамейке. Одна про одно, другая про другое, а если и про одно, то мнения вплоть до прямо противоположных.
И при этом друг другу кивают, поддакивают, соглашаются...
Разговор поддерживают ))))))))
avatar
VladMih, курить бросил лет 8-мь назад, но про бабушек улыбнуло :)))
avatar
Гордость, 8 лет назад я тоже бросил. Щас снова бросаю ))))
avatar
RoboScalp, так о миллиардах миллиардов разговора-то и нет, речь идет о том, чтобы свои кровные три рубля вложить и посчитать сколько на этом можно заработать (или было заработано). А если торговать миллиарды миллиардов, то ликвидности не хватит, да, это факт.
avatar
На самом деле проблема оценки доходности до сих пор до конца (мной) не решена, тк у каждой стратегии есть просадки, риски слива, размер депо и пр … и доходность это не просто сумма или процент на капитал, а кмк сложный синтетический показатель. Частично проблема была решена мной в ходе многочисленнных форвардных тестах. Я моделировал рынок на 500 ппримерно лет вперёд и запускал генетический алгоритм и смотрел по какому критерию оценки доходности я получал макс капитал . 
avatar
Daniil Lazarev, а как это вы так моделировали рынок? По каким законам? И чего вы искали с помощью генетического алгоритма?
avatar

Гордость,  рынок имеет всего две фазы — накопление и распределение. Накопление — это боковик, который характеризуется случайным диапазонном и длительностью, а тренд — случайной амплитудой и случайной длительностью. Момент переключения между фазами — случайная величина. Ооооочень упрощенно, но это реально похоже на то, что происходит на рынке. 

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

avatar
Daniil Lazarev, не проще взять реальную историю за лохматые годы прошлого века и посмотреть как ТС, построенная на ТЕХ данных поведет себя на сегодняшних ценах.
Теоретически вы правы, но у вас дополнительный (лишний)
и плохо учитываемый фактор — качество вашего моделирования.

Тем более, что ДА -  рынок имеет 2 фазы, НО
характеристики этих двух фаз на разных рынках разные.
Например, биржа или внебиржа, бумаги или сырьё, продукты или IT… И т.д. и т.п.
Если скажете, что это неважно, с вами тогда говорить не о чем.

Кстати, про лохматую историю я сказал лишь в контексте сравнения с вашей «генерацией». На самом деле это тоже… глуповато. )
С одной стороны суть рынков не меняется, с другой стороны рынки сейчас совсем не те, что в лохматые годы. Другая волатильность и т.п.
avatar
VladMih, я тут ни с кем не спорю, я просто делюсь опытом … возможно кому-то будет полезно. Как факт — есть 3 рабочее безубыточные стратегии. Но опять таки, тут каждый сам для себя решает …
avatar
Daniil Lazarev, не спорите — и не надо.
Я ж понимаю, на мои аргументы не каждый найдет чем возразить обоснованно. А рабочие ли ваши стратегии — жизнь покажет. Думаю, что пока еще выводы делать рано.

В профиле написано «не торгую».
Поторгуете лет 17, как я — расскажете.

Или может сначала раскроете секрет откуда взялись ваши 5 подписчиков и 3 друга, если вы не написали еще ни одного поста?
avatar
VladMih, все верно. Я не торгую, у меня своя торговая платформа с прямым подключением к 5 биржам. Работают мои стратегии на платформе BASIS. Есть свой патент. Пока вы там занимаетесь воздушными шариками, я автоматизирую. А что касается постов, мне это не нужно. Я не инфоциган.
avatar
Daniil Lazarev, боюсь спросить, но какие закономерности (смещения вероятности, неэффективности рынка) забирает ваша торговая система? Если вы генерируете случайные котировки, то и торговая система забирает случайные движения. Но в чем смысл? На рынке же не так.
П.С.: Я знаю что такое генетические алгоритмы, но тут, подумалось, может вы что-то какое-то другое делаете с помощь их…
avatar
Гордость, у чувака 5 подписчиков + 3 друга, хотя нет ни одного поста. Явный признак инфоциганства или чего-то подобного. Трейдеры так не химичат, им незачем.
Я жалею, что сначала с ним связался и только потом глянул в профиль.
avatar
VladMih, ээээ это ты про меня? Инфоциган без постов и друзей ?? Ню ню 😀 
avatar
Гордость, ген алгоритмы я использовал чтобы найти показатель эффективности и отсеивать заведомо убыточные идеи. В итоге пришёл к очень простой модели — это расчёт средней цены текущего периода (не обязательно дня), на основе данных прошлых пентодов. Грубо говоря я  знаю где сегодня будет средняя цена, ну а дальше все просто 
avatar
Daniil Lazarev, шо-то вы меняете показания на ходу. Сначала вы говорите, что с помощью генетических алгоритмов вы оптимизировали стратегии на случайных котировках, теперь вы заявляете, что вы с помощью «генетики» искали показатель эффективности. Но в основе генетического алгоритма лежит «функция приспособленности» и вот эта функция задает показатель, который максимизируется (или минимизируется, кому как нравится). Так вот чего вы искали с помощью «генетики» на случайных котировках?
avatar
Гордость, с помощью генетики можно делать и то и другое. Сначала мне нужно было найти оптимальный KPI для оценки стратегий, потом оценивать стратегии. генетика нужна только потому что прямой перебор невозможен 
avatar
Daniil Lazarev, все равно непонятно для чего вы гарантированно (хотя тут тоже могут быть вопросы, смотря какие случайные/спевдослучаные числа вы для генерации использовали) случайную торговлю оценивали. Я бы еще понял, если бы вы пытались найти такие оценки стратегий, которые бы вам не позволяли выбрать хороший вариант на гарантированно случайных котировках. Но вот, насколько я вас понял, вы делали что-то другое…
avatar
Гордость, вы невнимательно читали, я написал что в моей модели случайной были параметры, но не модель. Тренд, какой же он случайный ? 
avatar
Daniil Lazarev, параметры чего? Если вы про генетическую оптимизацию, то там, да, параметры случайные и с помощью «этого алгоритма» позволяют выйти на экстремум (часто глобальный) «функции приспособленности». Но и вы невнимательно читает мои вопросы, также как и не ответили ни на один из них. А началось все с того, что я просил как вы моделировали рынок и что искали с помощью генетики.
Тут вы уже меня спрашиваете случаен ли тренд. Когда-то он случаен, а когда-то нет, но важно чтобы ваша торговая система забирала неслучайные движения, а не была подогнана под случайные. Надежно отделить случайные движения от неслучайных мне не представляется возможным, можно лишь попытаться создать себе некую уверенность (и это далеко даже не «почти всегда») в определении, но не более.
Походу ничего вразумительного тут не будет.
avatar
Гордость, вы хотите, чтобы я выложил вам подробно все методы? ммм… нет )) достаточно того, что я уже сказал 1) тестировать нужно не на прошлых данных, а моделировать «будущие» 2) можно использовать ген алгоритмы и это действительно работает 3) нужно найти KPI эффективности, без которого невозможно корректно оценить ни эффектиность ни сравнить разные стратегии и для этого тоже подходит ген алгоритмы 4) торговать лучше роботом 

avatar

теги блога Гордость

....все тэги



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