Избранное трейдера ignat
ЛЧИ закончился, медали были розданы и мозг мрачно смотрел на интервью черно-белого победителя.
— Завидуешь?
— А? — встрепенулся он, — нет, ты чо. Чему тут завидовать.
— В смысле? Парни же 4 ляма подняли за квартал.
— И что? Во-первых, мы тоже поднимаем стабильно 1% в день, что примерно 1000% годовых, если аккумулировать. И с депозита не 50 тысяч, а три миллиона. Во-вторых — мы не знаем, почему так произошло. Может, они в струю попали, и через полгода уже лосить будут. А в третьих — работать надо, а не завидовать.
— Так и чего ты тогда в это интервью впялился?
— Информацию ищу, — сухо ответил Мозг.
Я подошел ближе. Это интервью прочитал уже два раза, и знал, что никакой информации там нет.
— Думаешь, они в ответах послание зашифровали?
— Уверен, — пробурчал Мозг и снова уткнулся в монитор.
Я потоптался за его спиной. Мозг переживал, хоть и не показывал вида. На церемонии награждения он даже не удержался, и послал на огромный экран смс (за 100 рублей текст мог напечатать любой желающий).
Выдалась интересная ситуация по UVXY и VXX:
Как известно всем, волатильность и SPY ходят обратно пропорционально, но иногда встречаются ситуации когда UVXY показывает силу или слабость, тем самым опережая предшествующее движение рынка.
Как раз недавно и произошел такой случай с более сильной волатильностью. С открытия при откате SPY, UVXY сразу начал двигаться взрывным движением, которое в дальнейшем и продолжилось после пробоя лоу дня в SPY.
//Читаем их Excel данные в массив List getParamsFromExcel(string filePath) { //С какой строки начинаем читать данные int start_from_row = 2; //Индекс колонки с Тикером int symbol_index = 1; //Индекс колонки с типом ордера int order_type_index = 2; //Индекс колонки с ценой входа int entry_price_index = 4; //Индекс колонки с ценой стопа int stop_price_index = 5; //Индекс колонки с временем входа int entry_time_index = 7; int current_index = start_from_row; //Текущий символ графика string read_symbol = Bars.Symbol; //Текущий считанный из Excel символ string current_symbol; //Список параметров считанный из Excell List result; result = new List(); //Переменная Excel приложение Excel.Application xlApp; //Переменная рабочая книга Excel.Workbook xlWorkBook; //Переменная рабочий лист Excel.Worksheet xlWorkSheet; //Переменная диапазон Excel.Range range; //Инициализируем переменные xlApp = new Excel.Application(); xlWorkBook = xlApp.Workbooks.Open(filePath); xlWorkSheet = xlWorkBook.Worksheets.get_Item(1); range = xlWorkSheet.UsedRange; //Считываем тикер из Excel current_symbol = (string)(range.Cells[current_index, symbol_index] as Excel.Range).Value2; //Читаем тикеры, пока не наткнемся на пустую строку while(current_symbol != null) { //Если считанный тикер совпадает с тикером графика, на котором запустили робота if(read_symbol == current_symbol) { //Читаем и добавляем параметры ордера result.Add(new OrderParams { ePrice = Convert.ToDouble((range.Cells[current_index, entry_price_index] as Excel.Range).Value2), sPrice = Convert.ToDouble((range.Cells[current_index, stop_price_index] as Excel.Range).Value2), eTime = DateTime.FromOADate((range.Cells[current_index, entry_time_index] as Excel.Range).Value2), pType = ((string)(range.Cells[current_index, order_type_index] as Excel.Range).Value2 == "Short" ? PositionType.Short : PositionType.Long) }); } current_index++; //Считываем очередной тикер current_symbol = (string)(range.Cells[current_index, symbol_index] as Excel.Range).Value2; } //Закрываем рабочую книгу xlWorkBook.Close(true, null, null); //Выходим из приложения xlApp.Quit(); //Уничтожаем созданные объекты releaseObject(xlWorkSheet); releaseObject(xlWorkBook); releaseObject(xlApp); return result; } //Уничтожаем переданный объект private void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception ex) { obj = null; } finally { GC.Collect(); } }
В ряду алгоритмов, используемых в опционной торговле, значительное место занимают стратегии покупки/продажи волатильности. Смысл таких стратегий в покупке опциона, когда волатильность рынка мала, и соответственно, продаже, когда волатильность высока, при постоянном хэджировании базисным активом ( дельта позиции равна нулю).
Цена опционов, как известно, вычисляется по формуле Блэка-Шоулза, однако из-за того, что некоторые допущения, относящиеся к модели цены базисного актива, не соответствуют реальному статистическому распределению, опционам разных страйков приходится присваивать различные значения так называемой подразумеваемой волатильности (IV), которая входит в уравнение Блэка-Шоулза как параметр. Возникает ситуация с двумя неизвестными — мы вычисляем IV по текущей цене опциона, при этом не зная, насколько справедлива эта цена в настоящий момент, следовательно не можем определить, дешево стоит опцион сейчас или дорого. Если бы нам удалось определить истинную волатильность рынка, то рассчитав по ней цену и сравнив с текущей, можно было бы принимать решение о покупке или продаже опциона. Поэтому основная задача, которую нужно решить в стратегиях покупки/продажи волатильности — построение правильного графика подразумеваемой волатильности опционов, в зависимости от страйков, из-за его формы имеющим название улыбки волатильности, или поверхности волатильности, если речь идет о разных периодах до экспирации — см. график в заглавии.