Избранное трейдера ignat

//Читаем их 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 по текущей цене опциона, при этом не зная, насколько справедлива эта цена в настоящий момент, следовательно не можем определить, дешево стоит опцион сейчас или дорого. Если бы нам удалось определить истинную волатильность рынка, то рассчитав по ней цену и сравнив с текущей, можно было бы принимать решение о покупке или продаже опциона. Поэтому основная задача, которую нужно решить в стратегиях покупки/продажи волатильности — построение правильного графика подразумеваемой волатильности опционов, в зависимости от страйков, из-за его формы имеющим название улыбки волатильности, или поверхности волатильности, если речь идет о разных периодах до экспирации — см. график в заглавии.
И в 2009-м, и сейчас суперконтанго вынуждает игроков к интересной стратегии — покупать нефть по текущим ценам, складировать ее и перепродавать на дальние контракты. Например, текущая разница в цене контрактов на май 2015-го и май 2016-го в $7 за баррель минус стоимость хранения в $0,2 за баррель в месяц дает $4,6 за баррель прибыли. В итоге коммерческие запасы нефти в США в начале апреля достигли максимума со времени наблюдения — 482,4 млн баррелей, это на 112 млн баррелей больше, чем средний показатель за последние пять лет. Запасы растут небывалыми темпами — по 1 мбд уже несколько месяцев, конца этому не видно.
Европейские и азиатские хранилища не дают общедоступной статистики по уровню заполнения. Однако разрозненные сведения говорят о том, что они тоже находятся на многомесячных-годовых максимумах по заполнению.
www.kommersant.ru/doc/2698797
В прошлый раз мы определили стоимость опциона на деньгах. smart-lab.ru/blog/248456.php Теперь попробуем рассчитать стоимость опциона вне денег. За базу отсчета возьмем полученную ранее цену опциона на деньгах и обозначим ее буквой W. Это вроде как, некий параметр включающий в себя вегу и тэту (для любителей стандартного представления).
Теперь, посмотрим на изменение цены базового актива немного под другим углом. Представим, что потенциальная возможность изменения цены из точки, в которой она находится сейчас в другую точку, (волатильность) есть некая мощность излучения заложенная в данной точке. То есть, волатильность мы представим как мощность излучателя возмущений некоего «финансового пространства».
И цену опциона на деньгах, мы можем представить как результат воздействия этого «излучателя» на опционное пространство данной серии опционов в нулевой точке ( в эпицентре).
То есть W (цена на центральном страйке) – это мощность источника излучения «волатильности» в опционном пространстве. А цены на страйках вне денег – это значения мощности сигнала на расстоянии от источника излучения. И чем дальше страйк, тем слабее сигнал.