Избранное трейдера Sergvlad
Раз пошла мода обсуждать всякие опционные идеи и позиции ( тут и там ), задам и я вопрос коллективному разуму.
Думал над стратегией Дмитрий Новиков (когда надо просто сидеть под шапкой и облизывать тету) и прошла у меня другая мысль. Полагаю, весьма не новая.
Что если делать эту идею бабочками?
1. Стартуем. Продаем бабочку (так, чтобы тета была в нашу пользу). Ждем.
2. Рынок, понятно, захочет уйти из-под страйка. Допустим, проходит страйк. Окей. Продаем бабочку на новом центре.
Получается, мы снова сидим под шапкой. Это уже будет кондор.
Я хотел бы максимально упростить понимание и практическое применение опционов. Сегодня мы не будем о сложном. Но в таком случае, не зная всех тонкостей процесса, вам придется поверить мне на слово. Мне не интересна направленная покупка и эта тема не этого топика. Конечно, речь пойдет о дельта нейтральных стратегиях.
Работает это очень просто. Вам надо купить опционов колл и продать нужное количество БА так, что бы дельта была 0. Теперь в таблице опционов вы смотрите волатильность купленных опционов. Допустим, она равна 32%. Это волатильность IV выраженная в годовых процентах. А торговать мы будем один день. Поэтому переведем эту волатильность в волатильнось одного дня. Тут вам надо мне слепо поверить. Я 32 разделю на 16 и получу 2%. Вам надо запомнить число 16. И все остальное можно будет делать в уме. Что означает эти 2%. Теперь, если цена пройдет более 2% за день то, дневная волатильность превысит волатильность опциона и вы получите профит. Если цена не пройдет 2% или пройдет меньше, то вам не хватит веги что бы компенсировать тету. Вам надо просто угадать, какой будет следующая дневная свеча. Берите свои графики, рисуйте уровни, заваривайте кофе. Но вы должны угадать. Это не сложнее чем бинарные опционы. Вы строите канал по 2% в каждую сторону и делаете ставку. Максимально, что вы можете проиграть, это тетта. Максимальный выигрыш не ограничен. Причем, нам не важно, в какую сторону пойдет цена. Теперь, если кто скажет, что я пишу какие то сложности я вас ЗАБАНЮ отведу и объясню, кто вы есть на самом деле. На этом можно было бы закончить рассказ про покупку опционов но, как обычно есть тонкости.
У меня идет все в жизни гладко
И аварий не было пока.Мне знакома каждая палатка,
Где нальют мне кружечку пивка.(Владимир Гуляев, Х/ф «Весна на Заречной улице», 1956-й год)
Начинаем обходиться на бирже без аварий!
В предыдущей части «Опционов с нуля» я достаточно подробно описал идеологию и технологию выбора опциона или простейшей опционной конструкции (спреда) для покупки.
https://smart-lab.ru/blog/429246.php
Теперь попробуем открыть опционную позицию, используя наши предыдущие рассуждения и наш накопленный опыт.
Как обычно, небольшое лирическое отступление…
В мои золотые-молодые годы, когда я был студентом факультета «Т» (Теоретической и экспериментальной физики) МИФИ, лекции по теоретической физике нам читал некий Черепушкин, как мы его называли промеж себя. Всего Ландау (многотомник по теоретической физике) отчитал.
Наконец-то, меня выпустили из бана. Ну тут уж я сам оказался дурён и нелюбомудрен. В общем, сам виноват…
Это я к тому, что выкладываю следующую часть с опозданием. Прошу меня за это простить.
Итак, мы решили спекульнуть РИшечкой, чтобы выиграть денюшек на хлебушек.
Лирическое отступление. Да, я не описАлся, ещё мой любимый Альберт Айнстан говорил, что «Все события в природе носят вероятностный характер». Поэтому биржевая торговля – это Игра, Игра и ещё раз Игра! Не работа, не бизнес, а именно ИГРА! С вероятностными исходами.
Ничего плохого или предосудительного в этом не вижу. Шахматы, например, это тоже тяжелая, кропотливая, но игра. В которой, чтобы чего добиться, нужно много и упорно учиться и тренироваться. Но учиться – Игре. И играть, играть, играть…
Или шпионы-разведчики-контразведчики, которые ведут радиоигру и пускают дезу. Тоже игра.
Написал под впечатлением вчерашнего поста о недостатке времени на трейдинг при активной торговле.
Может показаться странным, но с моей торговлей обратная ситуация. Сейчас ежедневная работа настолько упростилась, что даже как-то неудобно. Неудобно перед рынком. Вроде бы полностью нужно окунуться в атмосферу, коли активно торгуешь. Быть в теме: следить за новостями, строить какие-то прогнозы, искать информацию… Но вроде и не нужно этого. Почему?
Подобное произошло, поскольку удалось сформулировать перечень правил, следуя которым, во-первых, фокусируешься на том, что действительно важно для твоего подхода. А во-вторых, игнорируешь большое количество неважного. Отрезаешь массу сжигателей времени, которые только «сбивают прицел». Попробую перечислить эти правила.
Всем привет друзья!
Сегодня начинает жизнь наш чатик.
Дабы не делать его клоном чата Романа Андреева, я не буду:
1 — писать что было вчера — у всех нас есть глаза — сами посмотрите и прочитаете что было вчера
2 — поскольку я не торгую ничего кроме опционов на РИ, то и как такового ведения сделок по другим инструментам НЕ БУДЕТ
теперь что будет:
1 — Тех.Анализ заявленных инструментов, в том числе и крипты
2 — детальный Тех.Анализ РИ
3 — разбор торговли опционами на РИ
4 — понятное дело с небольшим отставанием будут даны торговые сигналы по опыионам на РИ. которые будут включать в себя — риски, страйки и даты экспирации. ))
5 — ну и ржача с весельем тоже не помешает ))
6 — чего бы не хотелось видеть: политоты, срача, перехода на личности, и не приемлемы любые формы религиозного фанатизма.
почему опционы на РИ:
за свои почти 17 лет торговли, чем и как только я не торговал… сливал и зарабатывал, зарабатывал и сливал… надоело ))
потому перешел на опционы. чем интересен РИ:
IsRun = true class_code="TQBR" function main() -- Получает доступный id для создания t_id = AllocTable() -- добавить столбцы AddColumn(t_id, 1, "Бумага", true, QTABLE_STRING_TYPE, 20) AddColumn(t_id, 2, "Кол-во", true, QTABLE_INT_TYPE, 7) AddColumn(t_id, 3, "Цена покупки", true, QTABLE_DOUBLE_TYPE, 14) AddColumn(t_id, 4, "Цена текущая", true, QTABLE_DOUBLE_TYPE, 14) AddColumn(t_id, 5, "Прибыль, р", true, QTABLE_DOUBLE_TYPE, 14) AddColumn(t_id, 6, "Прибыль, %", true, QTABLE_DOUBLE_TYPE, 14) t = CreateWindow(t_id) for iRow=1, getNumberOf("depo_limits")-1, 1 do rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам" qtyBoughtLots = tonumber(rowInPortfolioTable.currentbal) limitKind = rowInPortfolioTable.limit_kind if qtyBoughtLots>0 and limitKind<1 then InsertRow(t_id, iRow)-- добавить новую строку вниз таблицы end end local rows, columns = GetTableSize (t_id) InsertRow(t_id, rows+1) -- добавить новую строку вниз таблицы для "Итого" SetWindowCaption(t_id, "Портфель: прибыли и убытки © ramirzaev@mail.ru") -- исполнять цикл, пока пользователь не остановит скрипт или не закроет окно таблицы while IsRun do if IsWindowClosed(t_id)==true then IsRun=false end local currentPrice=0 local qtyBoughtLots=0 local profitAbs = 0 local profitPerc = 0 local currentSecCode= "" local fullNameOfInstrument = "" local limitKind = 0 local rowInPortfolioTable = {} -- строка из таблицы "Лимиты по бумагам" local tableInstrument = {} -- данные "Таблицы текущих торгов" local iRowInOutTable = 1 local totalInvest = 0 local totalPortfolio = 0 local totalProfit = 0 local totalPercent = 0 for iRow=0, getNumberOf("depo_limits")-1, 1 do rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам" qtyBoughtLots = tonumber(rowInPortfolioTable.currentbal) limitKind = rowInPortfolioTable.limit_kind if qtyBoughtLots>0 and limitKind<1 then -- если кол-во лотов >0 и тип лимита T0 currentSecCode = rowInPortfolioTable.sec_code fullNameOfInstrument = tostring(getParamEx(class_code, currentSecCode, "SHORTNAME").param_image or "0") --"LONGNAME" avgPrice = tonumber(rowInPortfolioTable.awg_position_price) currentPrice = GetAskPrice(currentSecCode) profitAbs = (currentPrice-avgPrice)*qtyBoughtLots profitPerc = 100*currentPrice/avgPrice - 100 totalInvest = totalInvest + avgPrice*qtyBoughtLots totalPortfolio = totalPortfolio + currentPrice*qtyBoughtLots SetCell(t_id, iRowInOutTable, 1, fullNameOfInstrument) -- "Бумага" SetCell(t_id, iRowInOutTable, 2, tostring(qtyBoughtLots)) -- "Кол-во"RemoveZero(tostring(qtyBoughtLots))) SetCell(t_id, iRowInOutTable, 3, tostring( math_round(avgPrice, 3) )) -- tostring(avgPrice)) -- "Цена покупки" SetCell(t_id, iRowInOutTable, 4, RemoveZero(tostring(currentPrice))) -- "Цена текущая" SetCell(t_id, iRowInOutTable, 5, tostring( math_round( profitAbs, 0)) ) -- "Прибыль, р" SetCell(t_id, iRowInOutTable, 6, tostring(math_round(profitPerc, 1)) .."%") -- "Прибыль, %" if profitPerc >5 then -- окрашиваем ColourRowInGreen(iRowInOutTable) elseif profitPerc<-5 then ColourRowInRed(iRowInOutTable) else ColourRowInYellow(iRowInOutTable) end iRowInOutTable = iRowInOutTable+1 end end totalProfit = totalPortfolio - totalInvest totalPercent = 100*totalProfit/totalInvest SetCell(t_id, iRowInOutTable, 1, "Итого") SetCell(t_id, iRowInOutTable, 3, tostring( math_round(totalInvest, 0) )) SetCell(t_id, iRowInOutTable, 4, tostring( math_round(totalPortfolio, 0))) SetCell(t_id, iRowInOutTable, 5, tostring( math_round( totalProfit, 0)) ) SetCell(t_id, iRowInOutTable, 6, tostring(math_round(totalPercent, 1)) .."%") if profitPerc >5 then -- окрашиваем ColourRowInGreen(iRowInOutTable) elseif profitPerc<-5 then ColourRowInRed(iRowInOutTable) else ColourRowInYellow(iRowInOutTable) end iRowInOutTable = iRowInOutTable+1 sleep(5000) -- пауза 5 сек. end --message("script table portfolio finished") end function ColourRowInRed(num_row) SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,150,150), RGB(0,0,0), RGB(255,150,150), RGB(0,0,0)) end function ColourRowInYellow(num_row) SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,255,200), RGB(0,0,0), RGB(255,255,200), RGB(0,0,0)) end function ColourRowInGreen(num_row) SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(150,255,150), RGB(0,0,0), RGB(150,255,150), RGB(0,0,0)) end function GetAskPrice(inp_Sec_Code ) local ask = tostring(getParamEx(class_code, inp_Sec_Code, "OFFER").param_value or 0) return ask end -- Округляет число до указанной точности function math_round (num, idp) local mult = 10^(idp or 0) return math.floor(num * mult + 0.5) / mult end -- удаление точки и нулей после нее function RemoveZero(str) while (string.sub(str,-1) == "0" and str ~= "0") do str = string.sub(str,1,-2) end if (string.sub(str,-1) == ".") then str = string.sub(str,1,-2) end return str end function OnStop() DestroyTable(t_id) IsRun = false end