Блог им. anatolyutkin
Для большинства не слишком искушенных трейдеров ценовые движения рынка представляют собой полностью случайное, броуновское движение. Почему это так, я попытался раскрыть здесь: http://anatoly-utkin.livejournal.com/16424.html. Если бы не было комиссий, то динамика счета такого трейдера также была бы броуновской, и он жил бы долго. При наличии комиссий происходит плавное сползание счета, то есть время на обучение ограничено. Но есть еще одна, очень существенная опасность для счета “броуновского” трейдера–это взятие плечей, и в настоящей статье я бы хотел пояснить существо этой проблемы.
ээДля моделирования ситуации возьмем случай вкладывания постоянной доли капитала. Тогда капитал после очередной сделки, s_next, выражается через капитал до этой сделки, s как s_next=s*(1+f*x/100), где f–доля вложенных средств, x–результат сделки на один лот. В этой простой формуле уже содержится ответ. Во-первых, следующий капитал–это предыдущий УМНОЖИТЬ на что-то. Поэтому если мы умножимся на ноль, то дальше капитал всегда будет нулем. Таким образом, критическим является вопрос о том, на что умножается капитал, то есть о величине (1+f*x/100). Ясно, что x не может быть слишком большим, по крайней мере, оно ограничено размером -100% (для лонга, по крайней мере). Поэтому для любых долей f, меньших единицы, множитель (1+f*x/100) всегда больше нуля, то есть на ноль при отсутствии плеча мы не умножимся никогда. Напротив, при f больших единицы (взятии плеча) существуют такие x, при которых множитель равен нулю. К примеру, при f=5 достаточно x=-20, чтобы капитал занулился. В общем-то, это очевидная вещь, но очевидные вещи надо повторять.
Рассмотрим теперь проблему количественно. Смоделируем динамику капитала трейдера при помощи генератора случайных чисел. Для этого в формулу s_next=s*(1+f*x/100) будем подставлять в качестве x случайные числа. Здесь достаточно тонким является вопрос о выборе распределения для x. Очевидный, казалось бы, выбор распределения с нулевым средним (например, нормального) не будет правильным, поскольку при этом появится постоянное смещение счета вниз из-за геометрических эффектов. Не вдаваясь в детали, скажу, что правильным распределением будет, например, логнормальное. Запишу сразу конечную формулу для x, которая использовалась: x=exp(sigma*z)-1+M, где sigma–параметр, определяющий волатильность цены инструмента, z–случайная величина, распределенная нормально с нулевым средним и единичным СКО, M–параметр качества трейдера, для “броуновских” трейдеров он равен комиссии, для опытных он положителен.
Перейду к результатам моделирования. Прежде всего, рассмотрим случай отсутствия комиссий и плечей, то есть M=0, f=1. В этом случае счет показывает обычную броуновскую динамику:
Отсюда видно, что шансы продержаться неплохи, аж за 10000 сделок ничего особо не происходит (sigma равнялась 1%, что соответствует интрадэйным сделкам). Замечу, что по одной реализации выводы делать не стоит, поэтому в конце я привожу код VBA, по которому каждый может повторить это моделирование. Далее, введем комиссию в размере 0.03%. В общем-то, очевидно, что будет. Счет уменьшится на порядок за число сделок порядка 1/0.03%=около 3000 сделок:
Комиссии убивают счет и это путь неплечевых “броуновских” трейдеров. Вывод такой, что у “броуновского” неплечевого трейдера есть около 0.5/комиссия сделок, пока его счет уменьшится в два раза.
Теперь самое интересное–влияние плечей. Выберем в качестве f тройку–это соответствует вложению 300% капитала в каждую сделку. А комиссию занулим–без комиссий! Я привожу достаточно типичную картинку:
Это так похоже на работу многих трейдеров (смотри, например, на comon.ru), не правда ли? Рассмотрев множество таких картинок, можно прийти к выводу, что использование плечей СИСТЕМАТИЧЕСКИ убивает счет. То, что было нейтральным при отсутствии плеча (первый рисунок), становится убийственным при его присутствии. Качественные причины этого приведены во втором абзаце статьи. Ну, и наконец, динамика счет при наличии комиссии 0.03% и f=3:
Тут, как говорится, без комментариев. 500 сделок–и полсчета нет, 1000 сделок–нет счета полностью.
Выводы:
1) Не умеешь–не торгуй!
2) Если не знаешь, умеешь или нет, торгуй без плечей и пореже–будет больше времени научиться.
3) Единственный способ заработать–это сделать M положительным (то есть, как говорят, торговать с положительным матожиданием). Но даже при этом большое плечо все равно убьет счет–желающие могут убедиться, поэкспериментировав с кодом.
””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””
Ниже прикладываю код VBA. Он выдает эквити в третий столбец того листа Excel, к которому он приложен. Последовательность действий:
1) Открываем новую книгу Excel (пусть она называется book1)
2) Жмем alt+F11–открываем Microsoft Visual Basic
3) Слева выбираем VBAProject (book1)–Microsoft Excel Objects–Sheet1. Жмем туда правой кнопкой мыши и выбираем View Code
4) В открывшуюся вкладку копируем код.
5) Жмем на сохранить
6) Возвращаемся в excel, жмем alt+F8 и выбираем макрос Sheet1.Leverage. Запускаем его–три первых столбца листа Sheet1 должны заполниться.
7) Строим диаграмму в виде графика по третьему столбцу.
8) Управление параметрами M (comiss в коде), share и sigma–через код VBA. Положительные M соответствуют положительной комиссии и приводят к убыванию счета.
“”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”"”
Option Explicit
Sub Leverage()
Dim i%, imax As Integer
Dim s!, comiss!, sigma!, share!, x!, y As Single
imax = 10000
For i = 2 To imax
x = Rnd()
y = Rnd()
Cells(i, 1) = (-2 * Log(x)) ^ (0.5) * Cos(2 * 3.1415926 * y)
Next i
sigma = 1
sigma = sigma / 100
comiss = 0.03
comiss = comiss / 100
share = 3
For i = 2 To imax
Cells(i, 2) = Exp(sigma * Cells(i, 1)) — 1 — comiss
Next i
s = 1
For i = 2 To imax
s = s * (1 + share * Cells(i, 2))
If s < 0 Then s = 0
Cells(i, 3) = s
Next i
End Sub
А тренды бывают и на беспамятном случайном блуждании--картинки выше в помощь. Но заработать там нельзя точно, М без плечей и комиссов равно нулю, поэтому никакие тренды там торговать не надо.
Поэтому даже относительно опытный спекулянт должен быть особо осторожен при выборе допустимого плеча
Диверсификация по системам и по активам, вот что позволяет хоть как-то контролировать риск, помимо макДД и волюнтаристкой оценки риска на ночном гэпе.
1. Систем у меня много. Разноплановых, много реализаций одних и тех же торговых принципов.
2. Овернайтовые фондируются методом мозгового штурма для гэпа. Или как в пункте 3, если гэповый метод дает бОльшую долю, чем в п.3
3. Интрадейные фондируются через МДД, при приближении к МДД доля начинает плавно уменьшаться. Для плавности я использую сглаженную Ферми ступеньку, формула (1/(1+b*exp(a*LDD/MDD)), LDD--текущая просадка, MDD--максимальная на истории, a и b--коэффициенты плавности, уж не помню точно, чему равны, но там на глаз--чтоб ступенька была плавная в меру. Плавность мне нужна для того, чтоб резко не выключать систему, это мне психологически некомфортно.
4. Уже несколько лет я наблюдаю то, что у меня практически никогда нет большой направленной позиции. То есть одна вверх, другая вниз, общая поза невелика. Поэтому общая кривулька эквити весьма гладкая и я просто умножил все позы на полтора-два. Это в знак признания антикорреляции своих систем. То есть моя нынешняя диверсификация--это диверсификация не просто некоррелированных, а антикоррелированных систем.
5. БОльшая часть капитала таки держится в депозитах итп квазибезрисковых активах. Ибо х его з, что может быть на рынке.
6. На то, что на ФОРТС, максимальная видимая мной просадка процентов 20-25. То есть никаких маржинколлов там и рядом нет. При доходностях в разы в год. То есть в принципе, можно вполне относится к ФОРТСовой части как к отдельному счету, но я так не делаю, ибо нефиг. Мало ли что на базаре бывает.
Но ЛЧИ я люблю, да. Хорошая штука, особенно раньше была, когда секунды сделок показывали :)
Подумайте на досуге о том, что для разных людей может быть разное «лучше».
По тому что так и есть ;-) Если не Броуновское, то 1000% что рандомное, наверное просто трейдеры верят сказкам учителей что он не не рандомное и что им просто надо продолжать учится… :-) :-) :-)
Не на любом финансовом инструменте можно получить прибыль одной и той-же стратегией.
Систематическое увеличение плечей ведет к систематическому увеличению риска, что приводит к систематическому увеличению просадки, что при определенных обстоятельствах приводит к недостатку средств на счете для открытия новых позиций. К сожалению, движения финансов вверх и вниз не являются арифметически симметричными. Вот и всё.
В принципе, то, что вы говорите, может увидеть любой желающий прямо из статьи, достаточно дисперсию x увеличить, не 1% сделать, а двадцать, например. И будет видно, что доли, при которых счет начинает плыть вниз, уже меньше 100%. Так что все учтено :)
В качестве замечания к обсуждению терминов отмечу первый комментарий к этой статье от SergeyJu. Имхо, он во многом прав, и те, кто способны разобраться в этой статье, разберутся и с терминологией.
Еще одно замечание. Когда это писалось (2010 вроде год), я еще был добрый и наивный :), поэтому помимо строгой математики еще хотел написать «не берите плечи, если не понимаете, зачем они вам!». Поэтому работа так и написана. Гыгыгы, Марья Иванна еще не знала, какое количество хороших, годных систем получается на эксплуатации стопов и маржинколлов :) :) :) Сейчас бы я вообще такого не написал, но иногда приступы альтруизма накатывают, так что перепечатать еще могу :)
МДД=MDD=MaxDrawDown на исторических тестах одним лотом или фикс суммой.
некорректно "-" минус переносит, надо подправить вручную. Она выделяется красным цветом в коде.
Т.е. Вы (как искушенный трейдер) считаете, что в ценовых движениях все-таки есть память?
Насколько понял, в той публикации утверждаете, что есть инерция в движениях? Т.е. после достаточно большого приращения, последующие приращения в течении некоторого времени скорее всего будут продолжать первоначальный импульс?
Попробовал это проверить, взял историю фРТС с 2008, приращения всех минуток (примерно 1.3 млн приращений), и для каждого приращения, которое больше 0.1% запоминаю все последующие в течении 1 часа. Получается вот такое облачко зависимостей. По оси Х — первоначальное приращение, по оси Y — те что были после него в течении часа. Как видно — матожидание тут равно 0. Если бы среднее было бы с положительным наклоном, то можно было бы говорить про инерцию (тренд). Если бы с отрицательным — контртренд. Но тут чистый нулевой наклон. Так что, в данном конкретном случае боюсь ни «эджа», ни «памяти» никакой нет :(
А какая длина у той памяти, которую Вы обнаружили? Т.е. как долго рынок для Вас более-менее закономерен (после распознавания паттерна)?
Вот вам примеры памяти на рынке:
smart-lab.ru/blog/331151.php
smart-lab.ru/blog/194112.php
smart-lab.ru/blog/153193.php
smart-lab.ru/blog/142195.php
Кстати, парочка из них является торгуемыми системами.
Ну и техническое замечание--отсутствие линейной корреляции не обязательно означает отсутствие памяти. Это по поводу вашего облака. То есть могут быть ситуации, когда облако не наклонено, но зависимости типа памяти в ценах есть.
PS Статья от 31 мая 2016 года--это smart-lab.ru/blog/331151.php Утверждений про инерцию в движениях там нет :)
Да, может быть я не совсем понимаю, что такое «память», и анализ с облачком не позволяет ее обнаружить. Но, имхо, даже такой простой анализ показывает, что обсуждаемый пример (ждем достаточно большого приращения и потом торгуем в течении какого-то времени) имеет нулевое матождание, как и СБ. А нулевое МО (вернее, чуть отрицательное, если вспомним про комис) говорит, что OptF=0, т.е. надо быть вне позы. Вы же согласны, что с помощью тейков/стопов отрицательное МО в положительное не переделаешь?
А вот это: "если цена в эти минуты уж пошла вверх, то она пойдет и выше"?
В статье от 31.05.2016 речь про конкретную минуту--минуту 10:00. И она очень, экстремально трендова. Что и демонстрирует простейший код, приведенный в статье. Но на корреляции минуток вы этого не увидите, это слишком грубый инструмент. Ваше облако даже и не увидит сильнейшего эффекта, связанного с механизмом открытия ФОРТС в 10:00.
Я имею в виду, что если в минуту 10:00 купить/зашортить по стопу, и выйти на закрытии этой же минуты, то будет постоянный, стабильный, имеющий ясный физический смысл профит. Сама минута трендовая, а не то, что после нее. Ударная минута, как в тусовке говорят. Почитайте статью, там же код, кривульки--все есть.
В любом случае, это получается уже уровень HFT, и тут вполне допускаю, что на тиках в определенные моменты можно найти какие-нибудь закономерности. Вопрос — есть ли память в приращениях цены начиная с минуток...
теоретически и по тестам все так и есть. Практически в минуту 10:00-10:01 для того, чтобы торговать так, как в обычное время, необходимо иметь совершенно другую инфраструктуру исполнения заявок :(
Вообще-то сравнение двух выборок покажет в первую очередь не наличие памяти, а неоднородность (нестационарность) процесса. Но в данном случае общий уровень волатильности в 2008 году был выше, чем в 2013 и эту разницу не убить исключением 1-2 точек.
Вот смотрите, после 81 года доходность 30-летних государственных облигаций США падала 30 лет. Какая к бесу случайность!