Постов с тегом "Библиотека": 49

Библиотека


Высокодоходные облигации на рынке США: ретроспектива и сегодняшний день

ВДО на рынке США: история и текущие реалииАмериканские финансисты были первыми, кто понял, что облигации с высоким купоном – это не просто высокая доходность и повышенные риски. Это еще история о том, как зарабатывать на нетрадиционных бизнес-моделях на систематизированном финансовом рынке.

Появление и развитие

Облигация – достаточно старый вид ценных бумаг. В США осознанно с ними работать научились еще на стыке 19 и 20 века. С развитием бизнеса банков, исследовательской деятельности, к середине прошлого столетия при работе с облигациями уже оценивали риск и доходность потенциальных эмитентов. Рынок развивался постепенно и органически: к эмиссиям облигаций прибегали крупные и известные имена, а их ставки рассчитывались исходя из долговой нагрузки и оценки способности компаний его обслуживать в будущем.



( Читать дальше )

Дюрация. Что это такое и как использовать?

PROосновы: Дюрация. Что это такое и как использовать?Дюрация — весьма специфичное понятие для ценной бумаги. Если цена, доходность и длительность инструмента – это типичные прямо выводимые величины, то производная величина дюрация – может вызывать трудности для понимания.

ОПРЕДЕЛЕНИЕ И ЕГО СМЫСЛ

Разные источники предлагают различные толкования дюрации. Остановимся на более общем определении. Оно звучит следующим образом.


Дюрация (Макколея)– это оценка средней срочности потока с учетом дисконтирования стоимости отдельных выплат.



Если объяснять по-простому, то дюрация – это сколько времени понадобится для того, чтобы (равными платежами) вернуть сумму номинала облигации.



( Читать дальше )

"Мост" между MetaTrader и программой через socket

В жизни бывают такие моменты, когда очень хочется торговать из программы на С++, но по каким-то причинам у брокера нет API, зато есть MetaTrader. Конечно, можно просто писать код на MQL4/MQL5, на этом урезанном варианте-мутанте Си и С++, но мне как-то не в кайф это делать. Поэтому я решил сделать «мост» между MetaTrader и программой через socket. Встречайте — MT-Bridge
"Мост" между MetaTrader и программой через socket

На данный момент MT-Bridge позволяет только передавать поток котировок в программу с заданной частотой + добавлена инициализация исторических данных. Пока мне этого достаточно, но возможно в будущем функционал MT-Bridge будет расширен. Поэтому извиняйте, если здесь вы не нашли полноценного функционала, что есть то есть пока. Библиотека для подключения к советнику написана на С++11 и зависит от boost.asio, но нужны только файлы-заголовки. Вот github репозиторий с советником и библиотекой. Передача данных реализована через сокеты, советник является клинетом, а программа на С++ — сервером. Данные передаются через сокет в бинарном виде. 

( Читать дальше )

Несколько слов о том, как читать отчетность эмитентов облигаций

Несколько слов о том, как читать отчетность эмитентов облигаций
На рисунках: МСФО за 6 мес. 2019 ПАО «ОР»

Финансовая отчетность — сильный инструмент мониторинга развития и состояния любой компании. Существует два типа отчетности: по российским стандартам (РСБУ) и по международным (МСФО). Публичные корпорации, как правило, отчитываются по МСФО, что очень упрощает восприятие. В первую очередь, необходимо обратить внимание на капитал рассматриваемой компании. Это число отражает, сколько собственных средств вложено в бизнес компании. Если этот показатель большой относительно всего баланса (от 30% — сильный показатель), акционеры существенно отвечают своими деньгами, что особенно важно, если Вы инвестируете в долговые инструменты (грубо говоря, большая мотивация расплатиться по долгам и не терять свой капитал). Однако важно не просто изучить размер капитала, но и посмотреть, из чего он состоит. Если основа собственных средств компании — переоценки активов или нематериальные активы, это повод усомниться в реальности показателей



( Читать дальше )

Рисование графиков в С++

Однажды мне нужно было отрисовать пару графиков в консольной программе, написанной на С++. Можно было решить эту проблему двумя способами:
  1. Сохранить график в файле и нарисовать его в экселе или другой софтине, м.б. даже в онлайн рисовалке
  2. Рисовать график прямиком из программы
Первый способ мне не подходил, так как я проводил тестирование алгоритмов, и лишней возней с копированием данных заниматься не хотелось. Второй способ имеет множество решений, но увы я не нашел быстрого решения, чтобы библиотека для рисования не требовала целую кучу зависимостей. Обычно библиотеки для рисования из С++ программы хотят OpenCV или питон с матлабом. Еще как вариант я знаю SFML и ImGUI. Вопрос — нафига столько всего нужно для обычного графика, если по сути нужен OpenGL и все. Решил исправить эту проблему и набросал header-only С++ библиотеку, которая работает в отдельном потоке и способна рисовать графики зависимостей X от Y и тепловые карты. Из зависимостей библиотека требует FreeGLUT.

( Читать дальше )

Библиотека С++ для загрузки экономических новостей

Есть один хороший сайт www.investing.com с экономическими новостями, которым пользуются многие трейдеры на Форексе. И решил я как-то раз попробовать посмотреть, что будет на бэктестинге торговли по новостям. Поковырявшись в страничке экономического календаря сделал в итоге С++ библиотеку для загрузки новостей. Для http запросов библиотека использует curl. Новости загружаются по UTC времени, загрузить их можно со времен начала эпохи UNIX

Класс для хранения одной новости:
/** \brief Класс Новостей
*/
class News
{
public:
	std::string name;          /**< Имя новости */
	std::string currency;      /**< Валюта новости */
	std::string country;       /**< Страна новости */
	int level_volatility = -1; /**< Уровень волатильности (-1 не инициализировано,  низкий уровень = 0, средний 1, высокий 2) */
	double previous;           /**< Предыдущее значение */
	double actual;             /**< Актуальное значение */
	double forecast;           /**< Предсказанное значение */
	bool is_previous = false;  /**< Наличие предыдущего значения */
	bool is_actual = false;    /**< Наличие актуального значения */
	bool is_forecast = false;  /**< Наличие предсказанного значения */
	uint64_t timestamp = 0;    /**< Метка времени новости */

	News() {};
};
Для хранения массива исторических данных новостей используется библиотека 

( Читать дальше )

Работа с датой и временем в С++

В свое время для алготрейдерских задач мне нужно было много оперировать датой и временем. Конечно, в С++ и Си есть библиотеки для работы с датой и временем. Но мне захотелось сделать свой велосипед, который бы мог легко и удобно превращать строковое представление времени в метку времени, менять часовой пояс, получать время UTC компьютера, преобразовывать метку времени в стандартный формат даты и времени и обратно и т.д. и т.п. Одним словом, целый спектр задач.

В итоге я сделал библиотеку xtime (ну, громко сказано «библиотека», это всего лишь два файла .cpp и .hpp). Для хранения и преобразования меток времени используется тип данных uint64 либо double, поэтому у данной библиотеки нет проблемы 2038 года.

Используемые типы данных:
  • timestamp_t — тип длиной 64 бита для хранения метки времени.
  • ftimestamp_t - тип с плавающей точкой длиной 64 бита для хранения метки времени с дробной частью секунд.
  • oadate_t - тип с плавающей точкой длиной 64 бита для хранения даты автоматизации (OADate)


( Читать дальше )

Как часто ошибаются финансовые эксперты, почему они ошибаются, и можно ли использовать их ошибки для своей выгоды?

Как часто ошибаются финансовые эксперты, почему они ошибаются?В прогнозах ошибаются все без исключения биржевые и финансовые эксперты и аналитики. Я лично ошибаюсь постоянно. С июня (26 недель назад) недель назад стал фиксировать ошибки и верные прогнозы и создал для этого отдельный публичный портфель. Идея в том, чтобы давать прогноз по неизменному набору инструментов на каждую неделю. Ошибся за это время в 41% случаев. Информация открытая. Получается, верных прогнозов на 43% больше, чем неверных (59% поделить на 41%). Пробую как-то монетизировать. Но об этом в конце.
  • А сначала об экспертах. Их можно поделить на две категории. Первые – пишущие аналитики. Основная их задача – выдавать в информационное пространство актуальные сведения и суждения. Нужно это, чтобы клиенты той или иной инвесткомпании имели повод нажать кнопку. Как правило, это не особо статусные люди. И попытка дать такому человеку деньги в управление в большинстве случае окажется неудачной.
  • Вторая категория – профессиональные портфельные управляющие. Здесь другая дисциплина. Управляющий следит за результатом своей работы, а говорит и пишет не так много.
  • Есть еще чиновники. Факультативная третья категория. Но они, прогнозы дают редко.
  • Несмотря на разные задачи и меры ответственности, в публичном прогнозировании не преуспели ни те, ни другие. Исключения есть, но редки и непостоянны. В основном же, число ошибочных прогнозов будет больше числа сбывшихся.


( Читать дальше )

Чем же облигации лучше банковских кредитов? Учитывая, что последние, вроде как, дешевле.

Чем же облигации лучше кредитов?
Вопрос, который мы постоянно слышим: зачем эмитенту выпускать облигации, тогда как банковские кредиты должны быть дешевле в обслуживании?

Да, облигационный рынок, и речь не только о высокодоходном сегменте, выглядит более дорогим для заемщика, нежели классическое кредитование. Но плюсы от облигаций для компаний есть.

  1. Скорость. Это первый облигационный выпуск можно готовить 3 месяца и более. А вот последующие – за 5 дней, был бы спрос на облигации. Слабая предсказуемость скорости выдачи денег – одна из базовых проблема банковского кредита.
  2. Более широкие возможности использования облигационных денег. Банк, как правило, кредитует отдельную сделку или проект. Через облигации кредитуется вся компания. Мобильность перемещения облигационных денег между бизнес-задачами заемщика несопоставима с кредитными деньгами.
  3. Компания сама контролирует свой долг. Условия, внесенные в эмиссионные документы, неизменны. Эмитент, возможно, платит за эти деньги больше, но в течение жизненного цикла облигации точно знает, какова плата, каковы сроки и суммы процентных и возвратных платежей.
  4. Отсутствие залога. Нравится нам это или нет, но облигации – это, по сути, деньги под честное слово. И уже поэтому такие деньги должны быть более дорогими, чем классическое залоговое кредитование от банка.
  5. Облигации – более длинные деньги. Даже в высокодоходном облигационном сегменты есть выпуски со сроками погашения в 5-6 лет, а для широкого корпоративного облигационного сектора – средний срок более 5 лет. В банке все иначе: в большинстве случаев, гашение тела начинается уже через несколько месяцев после выдачи кредита.
  6. Диверсификация портфеля заимствований. После банковской чистки в России мало банков. Средний банковский сегмент боится кредитовать, крупный – не всегда клиентоориентирован. Облигации могут представлять хоть и наиболее дорогую часть портфеля заимствований, но и наиболее стабильную. И наиболее пластичную: выбывание того или иного банка из портфеля иногда проще заместить облигациями, чем кредитом другого банка. В этом смысле облигации служат страховкой стабильности кредитного потока, а значит – устойчивости всего бизнеса. И да, если Вы фондируетесь через облигации, с банками разговаривать чуть проще, в т.ч. и по кредитным ставкам.
  7. Еще про чистку банков. В ее процессе ряд заемщиков оказался наедине с АСВ (у банка-кредитора отозвана лицензия, в права требования вступает Агентство по страхованию вкладов). Это та ситуация, когда другим банкам очень хотелось бы прокредитовать заемщика, но соседство с АСБ останавливает. АСВ – не особенно дружественный кредитор. Облигации, по нашей практике, уже не раз позволяли выйти из ситуации. Облигационными деньгами расшивается проблема с АСВ, далее – восстанавливается кредитование прочими банками.
  8. Проектное финансирование. Облигации могут выступать частью кредитного пула (как правило до 20-30%) при проектном финансировании. Облигации – длинные деньги, это удобно. Они дороги, но основу кредитного пула составляют банковские деньги. И средняя стоимость не особенно отклоняется от банковского процента. Тогда как без диверсификации источников финансирования банк мог бы и вовсе не решиться на сделку.
  9. Возможности субсидирования. Сегодня субсидировать можно не только банковскую кредитную нагрузку. Для облигаций это компенсация до 1,5 млн.р. на организацию выпуска, до 5% купонной ставки.
  10. Публичная история. С одной стороны, выпуск облигаций делает компанию более узнаваемой, с другой – заставляет выстроить процедуры отчетности, раскрытия информации, внутреннего контроля. К тому же со следующего года, весьма вероятно, большинство эмитентов будет вынуждено рейтинговать компании или выпуски облигаций. Эти процедуры хоть и затратны, призваны сделать компанию-эмитента более структурированной и устойчивой. Кроме того, компания становится на шаг ближе к акционерному капиталу, к выходу на IPO. 


( Читать дальше )

Универсальный индикатор для С++

Еще давно у меня возникла потребность получать сразу массивы значений различных индикаторов. Можно конечно создавать массив индикаторов, и затем прогонять котировки через него. Но я решил пойти другим путем и сделал индикатор «скользящее окно» или сокращенно MW, который может рассчитывать сразу массивы RSI, SMA, STD_DEV от тех значений, что содержатся в его буфере.

При этом при расчете массивов значений обычно используются предыдущие посчитанные данные, что ускоряет процесс расчета. 

Также я добавил возможность найти MIN, MAX, STD_DEV значения окна с заданным периодом и смещением внутри буфера индикатора. Это делает индикатор еще более универсальным. 

В дальнейшем планирую расширять функционал индикатора в рамках своей C++ header-only библиотеки технического анализа

Подписывайтесь на мой телеграм-канал бинарные опционы по научному, где периодически публикуются новые библиотеки и описывается ход запуска робота на «бинарках».

....все тэги
UPDONW
Новый дизайн