Избранное трейдера 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();
}
}