Избранное трейдера krit345
Я разобью свою писанину на части. Что бы можно было делать ссылки на понятия, которые мы будем использовать. Да и короткие посты читать удобнее.
СКО или волатильность. Об этом столько писали, столько считали. Однако, до сих пор меня умиляет, что или кого называют волатильностью. Казалось бы не стоить об этом повторятся, но приходится. Итак Средне Квадратичное Отклонение. Берем закрытия дня и логарифмируем. LN(сегодня/вчера), называем приращением цены. Итак 100 дней. Находим среднее. Потом возводим в квадрат каждое значение LN(сегодня/вчера)^2. Это называется дисперсией. Из каждого значение отнимаем среднее ^2 (впрочем, там значения маленькие и на скорость пули не влияют). Иногда среднее не отнимают. Теперь находят сумму всех этих значений и делят на их количество (100) минус 1. После чего извлекают квадратный корень. Называем это сигмой
Получаем число. И это важно. Это число не АТR, не среднее, не коридор, не Болинжер Бенс. К графику цены оно не имеет ни какого отношения. Не надо откладывать сигмы от цены или умножать цену на сигму. Это СКО. Это переменная необходима, что бы подставить ее в формулу.
Еще раз про опционы. Мы много обсуждали улыбки, МаркетМ, прочие тонкости. Сей час для простых опционщиков. Нового ни чего не скажу, но мне кажется, что для многих это может стать откровением.
Как я понял, обычный, не квалифицированный, опционщик не будет заморачиваться всеми этими греками и улыбками. Я хочу показать, как работать с единичным опционом, его ДХ и через это торговлей волатильностью. Вы сами сможете сделать выводы.
Для начала немного теории. Цена опциона, как нам известно, равна S*N(d1)-К*N(d2). Что значит, есть цена S есть страйк К и еще хрень, одна из которой Дельта. И у нас есть некий график IV волатильности и HV волатильности на option.ru. Что это означает и как это работает?
У вас есть синяя линия IV. В любой момент времени вы можете купить/продать опцион согласно ее значению в процентах волатильности. Как только вы это сделали, она, для вас, становится прямой. Это ваша первая нога. На графике я нарисовал красные и зеленые линии. Вы взяли 32.5% волу и все. Другой волы в опционах для вас нет. Это фикс. Это страйк вашей стратегии. Все последующие изменения IV к вам отношения не имеют.
Чего только не придумают наши финансисты, чтобы заработать денег. Вот сейчас активно продвигают барьерные ноты. За рубежом я о такой практике не слышал, поэтому возможно это отечественное ноу-хау. На мой взгляд, это полумошенническая схема, сейчас попытаюсь объяснить это на пальцах.
Вот передо мной нота от одного нашего известного финансового института (не буду уточнять от какого именно, потому что смысл у всех одинаковый). Предлагается типа облигация с 10% купоном в валюте. В ноте прописаны аж 5(!!!) акций по которым должно выполниться условие — ни одна из них не должна упасть ниже барьера. Если падает ХОТЯ БЫ ОДНА из пяти то держатель ноты получает деньги исходя из пропорции к этой упавшей акции. В качестве примера, у вас в ноте будут Apple, Microsoft что-то еще выросшее и грохнувшийся The Kraft Heinz Company. Вложив в ноту 100 тысяч баксов на выходе вы получите акций этого KHC на 70 тысяч USD (берется отношение начальной цены самой плохой акции к ее конечной стоимости на дату погашения ноты). При этом четыре другие акции могут замечательно себя чувствовать и штурмовать хаи.
Settings= { Name = "Zigzag", -- название индикатора delta=3, -- параметр индикатора line= { { Name = "zigzagline", Type =TYPE_LINE, Width = 1, Color = RGB(120,90, 140) } } } function Init() vMin = 0 vMax = 0 vMinindex = 0 vMaxindex = 0 voldMinindex = 0 voldMaxindex = 0 return 1 end function OnCalculate(index) if index == 1 then vMin = C(index) vMax = C(index) vMinindex = index vMaxindex = index voldMinindex = index voldMaxindex = index v = C(index) else if voldMaxindex >= voldMinindex then if C(index) > (1 + Settings.delta/100)*vMin then vMin = C(index) vMax = C(index) vMaxindex = index voldMinindex = vMinindex vFrom = vMinindex else if vMin > C(index) then vMin = C(index) vMinindex = index vFrom = voldMaxindex else vFrom = vMinindex end end else if voldMaxindex <= voldMinindex then if C(index) < (1 - Settings.delta/100)*vMax then vMax = C(index) vMin = C(index) vMinindex = index voldMaxindex = vMaxindex vFrom = vMaxindex else if vMax < C(index) then vMax = C(index) vMaxindex = index vFrom = voldMinindex else vFrom = vMaxindex end end end end for i = vFrom, index do k = (C(index)- C(vFrom))/(index- vFrom); v = i*k + C(index) - index*k SetValue(i, 1, v) end end end
По поводу нужности математики для трейдинга поломано не мало копий (информацию можно легко найти в интернете). Что характерно, кто разбирается в математике, тот говорит «Да, нужна», кто не очень — соответственно «Нет». Особенно мне запомнилась видео дискуссия между двумя моими хорошими знакомыми, один из которых (апологет математики) создал с нуля брокерскую компанию, продал ее и сейчас трудится в Финам, а другой оппонент, самый известный продавец краевых опционов,… ну вы знаете что и как.
Сам я в математике разбираюсь крайне слабо, несмотря на то, что в одном из моих дипломов записана специальность «математик». Поэтому статьи Дмитрия Новикова и комментарии его оппонентов, к сожалению, зачастую вводят меня в ступор. Самое обидное, что практическая польза ну никак не улавливается.
В силу такой ограниченности, приходится пользоваться простыми вещами, такими как, к примеру, правило трех сигм.
Поэтому для таких как я, предлагаю к рассмотрению модель продажи краевых опционов с последующим управлением позицией, основанную на упомянутом выше правиле.
Settings={ Name="STATDIV3", period=50, line= { { Name="curve", Color=RGB(0,0,255), Type=TYPE_LINE, Width=1 }, { Name="line", Color=RGB(255,0,0), Type=TYPE_LINE, Width=1 }, { Name="MA", Color=RGB(0,0,255), Type=TYPE_LINE, Width=1 }, { Name="MA2", Color=RGB(0,128,128), Type=TYPE_LINE, Width=1 }, { Name="line2", Color=RGB(0,0,255), Type=TYPE_LINE, Width=1 }, { Name="line3", Color=RGB(0,128,128), Type=TYPE_LINE, Width=1 } } } function Init() cache_ind={} cache_ind2={} cache_ind3={} return 2 end function OnCalculate(index) if index < Settings.period then return nil else local sum1=0 local sum2=0 local sum0=0 local sum02=0 local sum03=0 for i=index-Settings.period+1, index do do if C(i) > O(i) then sum1 = sum1 + C(i) - O(i) sum2 = sum2 + C(i) - O(i) else sum2 = sum2 + O(i) - C(i) end end cache_ind[index] = sum1/sum2 if index > Settings.period+12 then --[[ sum0 = 1*cache_ind[index]+ (1)*cache_ind[index-1]+ (1)*cache_ind[index-2]+ (1)*cache_ind[index-3]+ (1)*cache_ind[index-4]+ (1)*cache_ind[index-5]+ (1)*cache_ind[index-6]+ (1)*cache_ind[index-7]+ (1)*cache_ind[index-8]+ (1/2)*cache_ind[index-9]+ (1/3)*cache_ind[index-10]+ (1/4)*cache_ind[index-11]+ (1/5)*cache_ind[index-12] --]] sum0 = 1*cache_ind[index]+ (1/2)*cache_ind[index-1]+ (1/3)*cache_ind[index-2]+ (1/4)*cache_ind[index-3]+ (1/5)*cache_ind[index-4]+ (1/6)*cache_ind[index-5]+ (1/7)*cache_ind[index-6]+ (1/8)*cache_ind[index-7]+ (1/9)*cache_ind[index-8]+ (1/10)*cache_ind[index-9]+ (1/11)*cache_ind[index-10]+ (1/12)*cache_ind[index-11]+ (1/13)*cache_ind[index-12] end --[[ sum0 = sum0/(1+1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5) --]] sum0 = sum0/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13) cache_ind2[index] = sum0 if index > Settings.period+50 then sum02 = 1*cache_ind2[index]+ (1)*cache_ind2[index-1]+ (1)*cache_ind2[index-2]+ (1)*cache_ind2[index-3]+ (1)*cache_ind2[index-4]+ (1)*cache_ind2[index-5]+ (1)*cache_ind2[index-6]+ (1)*cache_ind2[index-7]+ (1/2)*cache_ind2[index-8]+ (1/3)*cache_ind2[index-9]+ (1/4)*cache_ind2[index-10]+ (1/5)*cache_ind2[index-11]+ (1/6)*cache_ind2[index-12] --[[ sum02 = 1*cache_ind2[index]+ (1/2)*cache_ind2[index-1]+ (1/3)*cache_ind2[index-2]+ (1/4)*cache_ind2[index-3]+ (1/5)*cache_ind2[index-4]+ (1/6)*cache_ind2[index-5]+ (1/7)*cache_ind2[index-6]+ (1/8)*cache_ind2[index-7]+ (1/9)*cache_ind2[index-8]+ (1/10)*cache_ind2[index-9]+ (1/11)*cache_ind2[index-10]+ (1/12)*cache_ind2[index-11]+ (1/13)*cache_ind2[index-12] --]] end sum02 = sum02/(1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5+1/6) --[[ sum02 = sum02/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13) --]] cache_ind3[index] = sum0 - sum02 if index > Settings.period+50 then sum03 = 1*cache_ind3[index]+ (1/2)*cache_ind3[index-1]+ (1/3)*cache_ind3[index-2]+ (1/4)*cache_ind3[index-3]+ (1/5)*cache_ind3[index-4]+ (1/6)*cache_ind3[index-5]+ (1/7)*cache_ind3[index-6]+ (1/8)*cache_ind3[index-7]+ (1/9)*cache_ind3[index-8]+ (1/10)*cache_ind3[index-9]+ (1/11)*cache_ind3[index-10]+ (1/12)*cache_ind3[index-11]+ (1/13)*cache_ind3[index-12] end sum03 = sum03/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13) end if sum1/sum2 > 0.5 and sum03 > 0 then sum1 = sum03 else if sum1/sum2 < 0.5 and sum03 < 0 then sum1 = sum03 else sum1 = 0 end end return sum1, 0 end end
Лимитные ордера в стакане – что это и зачем нужно? Как извлечь из этого максимальную выгоду? Хотелось бы разобрать подробно эти вопросы.
Те, кто торгуют по стакану и постоянно следят за объемами, наверное, наблюдали, что как только цена в стакане подходит к лимитному объему, то объем отрабатывает три варианта:
1) Исполняется по рынку, и мы видим, как на индикаторе объемов (volume) происходит прирост объема на данном баре, тем самым игрок провел сделку по рынку.
2) Объем в стакане просто исчезает, и мы не видим его исполнения по рынку: могу предположить, что крупный игрок по каким-то условиям передумал войти в сделку.
3) И последний вариант – когда объем уходит от цены на несколько пунктов и не дает этим самым исполниться. Вот этот вопрос меня заинтересовал больше всех. Могу предположить, что таким образом Маркет-мейкер исполняет свои обязательства перед биржей в рамках договора
Итак. Когда мы встали в нашу scale позицию, мы стали на сторону индустрии. Наш профит складывается из спреда, а это не что иное как тетта и она всегда положительна и минус волатильность. Если рынок сдвинется относительно начальной позиции. С другой стороны, чем выше волатильность, тем чаще к нам приходят сделки. Поэтому наш интерес, что бы 5 минутные свечи были как можно больше. Для этого, мы должны научить трейдеров торговать как можно чаще и «лучше».
Идеально научить их ставить условные ордера. То есть (например) если цена ниже 100 то мы продаем. Ну а продаем мы по любому (бьем по рынку). Тут можно остановить наш scale ордер и дать им опустить рынок до 95, а потом закупиться. Таким образом «снимаются» стоп заявки и делаются шпильки. Стопы надо ставить всегда, это помогает развитию индустрии. Соответственно, необходимо научить, входить в позицию по рынку, бить по нему, желательно, большим объемом. Тут хорошо подходит скальпинг. Технический анализ это отдельная песня. Пробой уровня, выход из треугольника просто граальные науки для индустрии.