Постов с тегом "программа": 141

программа


Калькулятор облигаций❗️ Часть 1

Продолжаю совершенствовать свою базу SQL и автоматизированные средства расчетов.

В июне я написал пост: "Автоматизация — ключ к успешному инвестированию. Python и SQL приходят на помощь❗️", где описал как и зачем я поднял собственный SQL сервер, и какие задачи он мне поможет решить.

Теперь у меня есть собственная база котировок по всем интересующим меня ценным бумагам.
Пример рассчитываемых параметров облигаций
Чтобы упростить себе жизнь в части расчетов параметров облигаций, следующим этапом развития данного направления, конечно, было желание написать свой калькулятор для оценки облигаций. Для этого в SQL базу пришлось добавить новые таблицы, с параметрами облигаций. С ними пришлось покопаться, потому-что не было понимания, какие именно графы мне понадобятся изначально. После нескольких вариациях я нашел оптимальное для себя решение.



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

На звезды надейся, а сам не плошай. ЗОЛОТО, СЕРЕБРО.

По традиции, пишу выборку из архива своих публикаций в канале «ASTRO SP500».

На звезды надейся, а сам не плошай. ЗОЛОТО, СЕРЕБРО.

Это открытая информация, которую каждый может посмотреть в программе ЗЕТ.

На звезды надейся, а сам не плошай. ЗОЛОТО, СЕРЕБРО.



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

ATrade - легкие подсчёты при торговле фьючерсами на ММВБ

Доброго времени суток всем заинтересовавшимся, в этом посте я бы хотел представить небольшую самописную программу, которую написал ещё давно, но только недавно решил её переделать и поделиться со всеми.
ATrade это небольшая программа с открытым исходным кодом, которая помогает упростить подсчёты возникающие при торговле фьючерсами на ММВБ. Так как стоимость шага для многих фьючерсов меняется ежедневно в зависимости от курса соответствующей валюты (для большинства фьючерсов — доллара), а так же сам шаг у разных фьючерсов — разный, то не только новичкам, но и некоторым опытным трейдерам это создаёт лишние сложности при подсчёте ожидаемой прибыли или возможного убытка. И именно с этим программа призвана бороться: больше не нужно выставлять в квике стоимость шага для каждой бумаги и держать в уме размер шага для всех торгуемых фьючей, достаточно выбрать в программе нужную бумагу, длину ожидаемого движения и объем позиции в лотах. Так же программа способна посчитать максимально допустимый объем позиции, чтобы в 1 сделке не потерять сумму превышающую ваш установленный предел в соответствии с мани-менеджментом. В программе присутствуют все фьючерсы торгуемые на срочном рынке ММВБ.
Скачать программу можно здесь.

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

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

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

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

Про программирование в алготрейдинге и полезные навыки

По моему опыту в алготрейдинге (под алготрейдингом я подразумеваю поиск закономерностей и их использование) большая часть времени уходит на исследования, это примерно 90% времени. Однако, часто можно услышать критику примерно следующего плана.
  • Нужно писать код на питоне/джаве, можно в два счета набросать торгового робота. Нафиг Си и С++, сложна.
  • Не нужно изобретать велосипеды, все уже сделано за нас. Зря потратить время, бери готовое и действуй. Метатрейдер в помощь.
  • Нужно всегда писать чистый код, а не говнокод. 
Если все это верно, то получается, что успех в алготрейдинге (да и в IT) должен зависеть от этих факторов. Однако, к примеру, на практике большая часть доли в проекте принадлежит обычно не программистам (т.е. людям, которые вообще могут не уметь программировать), хороший код не обязательно принесет много денег, да и сложные алгоритмы порой без разницы, на каком языке реализовывать, быстрее они не напишутся.

Если объяснить проще, то успех не равен чистоте, хорошести и прочим характеристикам кода. Тогда почему происходит акцентуация на подобные факторы? 

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

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

Есть один хороший сайт 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)


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

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