Избранное трейдера Макс
Всем привет …
После длительной консолидации, на прошедшей неделе наблюдались значительные ценовые движения. Практически все категории активов продемонстрировали снижение. Есть ли какие-либо причины для беспокойства, или это просто шум?
Предположу, что в большинстве случаев, наблюдаемые движения являются временным шумом, однако за ними скрываются развивающиеся тренды. Особенно это наблюдалось на высокодоходном рынке. Рано мне указывать ожидающий тренд, но все же может вам будет полезно.
С момента восстановления высокодоходных облигаций после падения в 2015 году (вспомните периоды обрушения и восстановления цен на нефть, поскольку высокодоходные рынки сильно зависят от нефтяных котировок из-за высокой доли в отрасли компаний, занимающихся гидроразрывом пластов, оба индексных фонда демонстрировали исключительно умеренные и временные прорывы 200-дневной скользящей средней. Обычно такие прорывы длились 1-2 дня. Нынешний прорыв является достаточно выраженным и продолжительным по времени. Удивительно, но он сформировался во время резкого роста нефтяных котировок (из-за ожиданий новых сокращений нефтедобычи ОПЕК и жесткой позиции наследного принца Саудовской Аравии. Вероятнее всего, это не обычное совпадение, а ярко выраженный сигнал прямо перед началом программы количественного ужесточения (QT) ФРС. Как я уже писал, датой старта программы количественного ужесточения необходимо считать не 1 октября (официальная дата), а 31 октября (дата истечения первой не полностью реинвестированной облигации счета операций на открытом рынке ФРС, когда баланс ФРС фактически начал сокращаться. Ранее в этом году наблюдались 2 краткосрочных падения высокодоходных активов. Первое имело место в начале марта, когда Федрезерв «ошеломил» рынки, объявив о грядущем повышении ставок всего за 2 недели, после чего анонсировал программу количественного ужесточения. Вторая просадка наблюдалась после заседания ФРС 26 июля, когда стало ясно, что программа будет запущена сразу после сентябрьского заседания (прозвучали слова об «относительно скором» запуске программы с намеком на будущее заседание в качестве отправной точки). В обоих случаях рынки быстро восстановились. В этот раз, когда программа фактически запущена, продажи могут стать гораздо более долгосрочными.
Рубль выглядит слабо по отношению к доллару, нефть корректируется, но пока последняя сила была за продавцами. А электричество растет, Чем вызван такой рост?
Не давно закончилась стадия накопления Отца, электроэнергетического секторе Россетти, есть понимание, что в ближайшее время рост может продолжиться до 2х ключевых уровней 1,15 и 1,25.
Особому вниманию достойна ФСК, сильный рост по РусГидре и умереный рост Сетей могут наконец то заставить расти и ФСК, по которой уже давно идет сильная стадия накопления, кто пилит ФСК и на какую сумму не известно, но скорый тренд там очень вероятен.
Уверенный рост по ФСК завтра, даст сильный сигнал на покупки начиная со среды. Ждем закрытия завтра, если опять сильный рост, ищем вход.
Добрый день. В предыдущих частях я описывал, как на C# сделал собственный тестер, применяя объектно-ориентированный подход, рассказывал про интерфейсы, про их реализации, и, рассказывал про работу с БД. На данный момент осталось совсем немного. В этом топике я опишу вариант расчёта результатов работы стратегии.
Чтобы не запутаться, даже не читая предыдущие топики, поясню, что есть и к чему надо придти. Есть стратегии – это некий объект программы, который выставляет заявки на основе получаемой маркет-даты. Заявки (Order) регистрируются системой. Также, регистрируются сделки прошедшие по заявке (каждая заявка имеет список сделок — List<Trades> trades). После прогона стратегии, все заявки и сделки сохраняются в БД, и после, их можно извлечь и посчитать по ним статистику работы стратегии. По сути, эта статистика состоит из двух аспектов: сами закрытые позиции и оценка эффективности на их основе. Начнём с первого. Вот интерфейс, который принимает заявки со сделками, и, выдаёт, собственно, список закрытых позиций:
interface IClosePositionManager { List<ClosePosition> ClosePositions (List<Order> orders); }