Избранное трейдера Краснов Геннадий
Инвестиционный дневник. Начало
Я очень долго присутствую на СЛ, сначала в качестве читателя был несколько лет, затем перепрофилировался в редкие писатели.
Самая ранняя их сохраненных мной статей СЛ — https://smart-lab.ru/blog/329850.php. Сейчас на сайте и людей то, комментировавших эту статью почти не осталось, а я все еще тут)
Статья датирована 2016 годом, как раз в этот год я начал плотно заниматься инвестированием в фондовый рынок, и мне очень нужна была информация — опыт реальных инвестиций, не различные теоретические выкладки, которых в любой книжке полно, а именно реальный опыт людей, которые занимаются инвестициями, с конкретными примерами, цифрами и т.д. И оказалось, в интернете этого практически нет.
И, на самом деле, с 2016 года ситуация не изменилась сильно, да, с тех пор на СЛ появились инвесторы – ЛМ, Клоченок, Ильшат, На пенсию в 35, Fuck you money, АГ и другие
Да, их читать иногда интересно, они делают правильные вещи – популяризируют инвестиции, но все их статьи очень похожи и сводятся к одному – надо найти перспективную акцию с хорошим потенциалом и купить ее по низкой цене. Ощущение от этой догмы только одно:
Для начала, все таки, немного зауми.
1. Об опционах рекомендую почитать книгу — А.Н.Балабушкин Опционы и фьючерсы. Кратко, сжато, все по делу и без воды. Много хорошей математики. В общем, математику можно пропустить, нужно уловить только общий смысл — о чем эта математика.
2. На сайте eLearning есть 6-7 бесплатных лекций Твардовского — просто, ясно, доступно. Он хорошо и интересно излагает. Смотрел лет 10 назад, 2 раза. Очень рекомендую.
Теперь непосредственно об опционных стратегиях.
Простейшей стратегией является — покупка опциона. Если цена базового актива (БА) растет или будет расти — покупаем опцион CALL вне денег, в нескольких страйках (лучше не более 4-5) от центрального. Если БА падает, аналогично покупаем опцион PUT. Больше стоимости опциона при его покупке вы никак не проиграете (хотя, теперь уж и не знаю )). ГО опциона равно его стоимости, и об этом можно не беспокоится.
Теперь более сложная стратегия для совсем ленивых. Если вы считаете, что актив будет хорошо расти или падать, на центральном страйке покупаем CALL и PUT — такая позиция называется Стрэддл. Теперь, куда бы не пошла цена БА, мы будем в выигрыше. Однако, если цена за пару дней никуда существенно не сдвинется, мы проиграем из за уменьшения внутренней стоимости опциона. Это называется временной распад.
Позиция Стрэддл хороша тем, что думать вообще ни о чем не надо, однако, она, пожалуй, очень, даже слишком, дорогая, и, далеко не самая хорошая за такие-то деньги.) Вообще, начинающим в позиции типа Стрэддлы лучше не лезть.
Пожалуй наилучшей позицией в опционах является Стрэнгл. Суть его в том, что мы покупаем опцион CALL вне денег в нескольких страйках от центрального (тоже желательно не более 4-5), и примерно симметрично ему покупаем опцион PUT. Теперь, как и в случае со Стрэддлом, куда бы цена не пошла, мы получаем прибыль. Такая позиция гораздо дешевле Стреддла, и у нее есть масса других преимуществ, но это уже ближе к зауми.
Ну, и недостатки у Стрэнгла аналогичны Стрэддлу — если цена 2-3 дней никуда существенно не пойдет, мы опять получим убытки от временного распада.
Кроме того, Стрэнгл сложнее конструировать, чем Стрэддл, для которого вообще думать не надо.
В опционах есть такой параметр — Дельта, это скорость изменения цены опциона от изменения цена БА
Дельта = (Изменение стоимости опциона)/(Изменение стоимости БА)
Т.е., на сколько рублей изменится стоимость опциона, при изменении стоимости БА на 1 рубль. От страйка к страйку эта скорость меняется, и при приближении нашего опциона к центральному страйку и переходе опциона в деньги она будет возрастать.
Дельта транслируется в Quik, и ее можно добавить в таблицу опционов.
При выборе Стрэнгла желательно, чтобы параметры Дельта для опционов CALL и PUT были равны или близки друг к другу. Можно купить несколько опционов CALL и PUT в разных страйках, чтобы суммы их Дельт были примерно равны для CALL и PUT. Если же вы считаете, что актив скорее пойдет, например вверх, то Дельту для CALL можно выбрать и побольше, чем для PUT. И наоборот, в случае уменьшения стоимости БА.
Графически позиция Стрэнгл выглядит так:
Тут неожиданно призвали к ответу: почему дескать опционный софт написал, а заработать сам не можешь?
Наезд странный: программить это одно, а трейдить этож совсем другое. И знания совсем другие, и психология. Если программист может уйти в астрал и долго там витать, то трейдер должен быть шустрым-быстрым и всегда на чеку. Схватил добычу и быстро в кусты. Не жадничать, а то очень быстро из охотника сам в жертву превратишься. Не быть инертным, быстро признавать ошибку и готовность перевернуться в противоположное направление. Программист же более инертен и упрям. Грубо говоря: программист — интраверт, трейдер — экстраверт.
В общем, торговля и программинг вещи сильно разные. Но лично мне удалось немного заработать. Вот здесь описал свой опыт торговли в 2018г. Там 09.04.2018 за день удалось утроить депо. Но это просто повезло в хорошей позе оказаться перед гэпом. Тем более потом часть слил и закрыл торговлю в реале. Стал снова теорию копать и программить. Но ушел все-таки в плюсе: было 100тр, стало 383тр.
-- -- Выполнение действий с массивами. -- local pairs = pairs local type = type module(...) --- Создать копию массива (таблицы) -- @return копию массива (таблицы) function copy(array) local copy_array = {} if type(array) ~= "table" then return array end for k, v in pairs(array) do if type(v) == "table" then copy_array[k] = copy(v) else copy_array[k] = v end end return copy_array end --- Узнать, начинается ли индексация в массиве с нуля или с единицы. -- @return 0 или 1 function base(array) if array[0] ~= nil then return 0 else return 1 end end --- Вычислить число элементов в массиве. -- @return число элементов в массиве function size(array) local n = 0 for _, _ in pairs(array) do n = n + 1 end return n end --- Проверить пустой или нет массив. -- @return true/false function isEmpty(array) for _, _ in pairs(array) do return false end return true end --- Получить первый индекс массива, где ничего не записано. Поиск начинается с 1. -- @return первый индекс массива, где ничего не записано function firstEmptyIndex(array) local i = 1 while array[i] ~= nil do i = i + 1 end return i end