В качестве новогоднего подарка коллегам-инвесторам решил поделиться программой, которую сам написал, в короткое время освоив Java. Это дневник инвестора, позволяющий вести заметки о компаниях, тикерах, сделках и корпоративных событиях. Интеграций пока две: возможность загрузки сделок из QUIK и получение текущих котировок (с 15-минутным запаздыванием) через официальный API Московской биржи. Поддерживаются только тикеры на споте, кроме облигаций (руки не дошли сделать). Возможно кому-то ещё эта программа покажется удобной (мне именно такого функционала не хватало, что и побудило к созданию). Работает везде, где установлен Oracle Java Runtime Environment (JRE) версии не ниже 1.8. Windows, Linux; на Mac не пробовал, но тоже должно. Для установки JRE, если у кого нет, плясать
отсюда.
Ссылка для скачивания самой программы
Дневник инвестора. Это jar-файл, который в большинстве случаев запускается просто двойным щелчком мыши. Если при этом ничего не происходит, значит у вас не установлен JRE, либо система не знает, где расположен его главный файл java.exe.
После запуска видим основное окно программы:
Тут есть разделы Портфель, Сделки, События и Настройки.
Для начала рекомендую зайти в Настройки:
Здесь можно создать теги, которые будут присваиваться событиям (позже сделаю то же для компаний).
Важная галочка — «Загружать новые тикеры», рекомендую включить, чтобы как минимум однократно загрузить новые тикеры с сайта биржи (те, которые идут «из коробки» могли несколько устареть). Если галочка выключена, при обновлении будут загружаться только цены для уже существующих в программе тикеров.
Начиная пользоваться программой, вы не становитесь к ней привязаны: кнопка «Экспорт всех сделок» выгружает все сделки в формат csv, который потом можно передать куда-то ещё (в Excel или LibreOffice, например):
Остальной экспорт/импорт предназначен только для обмена информацией с коллегами — вы можете передавать созданные события или комментарии и ссылки на сайты компаний своим коллегам по инвесторским интересам (тоже в виде файлов, но уже специального формата, который понимает программа). Галочки под этими кнопками показывают, что будет происходить, если вы загружаете полученные от кого-то файлы с событиями и компаниями, которые у вас уже есть. Здесь происходит только массовая выгрузка по всем событиям или компаниям.
Пока не советую включать опцию «Использовать иерархический список сделок», т.к. из-за бага с используемой сторонней библиотекой (не моей разработки) сделки могут начать двоиться при отображении (это не влияет на их количество в базе данных, но портит картинку). Пока не смог обойти эту проблему, но разработчики библиотеки о ней знают.
Остальные настройки говорят сами за себя. Если вы сидите за прокси-сервером, придётся прописать хост и порт (прокси с авторизацией пока не поддерживается).
Последнее: каталог, где программа хранит свою базу данных и логи (а также резервные копии и экспортируемые файлы), находится в домашнем каталоге пользователя с названием mytradediary. То есть в Windows это, как правило, c:\users\Username\mytradediary, а в Linux — /home/Username/mytradediary.
После выхода из Настроек рекомендую создать Портфель нажатием соответствующей кнопки:
Основной портфель — тот, который будет отображаться по умолчанию. Код клиента должен совпадать с соответствующим кодом из QUIK — если у вас несколько портфелей/счетов, то при импорте сделок из QUIK они автоматически будут раскиданы по соответствующим портфелям (иначе все попадут в тот, который отмечен, как основной).
После сохранения портфеля (и возможно создания ещё нескольких) самое время открыть список Тикеров и нажать кнопку «Загрузить котировки»:
При этом обновятся данные по существующим тикерам и загрузятся новые. Если добавляете заметки к тикерам, не забывайте сохранять их нажатием на кнопку «Сохранить».
При желании можно отредактировать все данные вручную, открыв тикер двойным щелчком:
Если отметить несколько тикеров, как «Избранное», а потом включить соответствующую опцию в Настройках, то в интерфейсе программы вы будете видеть только избранные тикеры. То же самое можно сделать и с компаниями:
Интересная фича: можно добавлять ссылки на ресурсы (сайт компании, форум, страница раскрытия информации и пр.)
Это не обязательно делать из окна редактирования компании: достаточно открыть контекстное меню правой кнопкой мыши на компании в списке, либо сразу на позиции в портфеле: так можно оперативно добавлять новые ссылки и открывать старые (при этом запустится ваш браузер по умолчанию).
Перейдём в раздел сделок:
При создании сделки положительное число лотов означает куплю, отрицательное — продажу:
К сделке можно добавлять скриншоты (из буфера обмена либо из файла) — любое количество.
Если требуется учесть ввод-вывод средств, нужно переключиться в режим «Деньги»:
При нажатии кнопки «Импорт из QUIK» вы получите инструкцию по правильной настройке терминала:
Ниже показан последний раздел, «События»:
Имеются фильтры по датам, компаниям, тегам. При редактировании текста события опять же не забывайте нажимать «Сохранить».
Кнопка Экспорт на выбранных событиях (их можно выбрать несколько — с кнопкой Shift или Ctrl) скопирует в буфер обмена некий код, который можно передать, например, через мессенджер своим коллегам, а они скопируют этот код, нажмут кнопку Импорт и загрузят соответствующее событие (или события) в свои дневники. Впоследствии хочу автоматизировать этот обмен, интегрировав с Телеграмом. Пока же cut&paste.
Создать новое событие достаточно просто:
Если событие по компании, акции которой есть у вас в портфеле, наступает сегодня, то соответствующие теги события отобразятся рядом с названием акции в портфеле.
Если будут интересные идеи, комментарии, замечания — сыпьте в комментарии. Не обещаю, что что-то реализую (если и реализую, то не скоро), хотя я периодически выпускаю обновления программы — всё же это хобби (программирование), поэтому когда есть время/желание, тогда и доделываю. Как говорится, программа предоставлена as is (т.е. «как есть») и единственное, что я могу гарантировать, это то, что она занимает место на диске. Есть недостатки (о каких-то уже написал: не поддерживаются пока облигации, двоятся сделки при использовании иерархического списка, иногда странно считается средняя цена позиции и т.п.) По мере возможности буду исправлять и дорабатывать. Сам я активно её использую (примерно полгода).
Всем успешных инвестиций!
Это мало кто сейчас делает, с вашими навыками вам надо сайт с бекэндом на java писать.
Понимаю, что надо бы крутить интеграцию с источниками новостей, но данные хранить — только локально. Изначально программа писалась для использования очень ограниченным кругом инвесторов, а сайт предполагает широкий круг, монетизацию, оказание услуг и поддержку. Это не тот вариант. Просто «блокнот инвестора».
И еще: если сделка это «деньги», то столбцы «операция» и «наименование» пустые. Можно было бы заполнять их вручную, или полуавтоматически, например «операция» — «дивиденды», «наименование» — "...(название компании)"
Да, и в разделе «Портфель» в таблице отдельной строкой суммарные дивиденды!
Столбцы в таблице сделок для удобства можно менять местами и изменять их размер. И порядок, и размер сохраняются между запусками программы.
да, развиваю, про новую версию написал в блоге: smart-lab.ru/blog/467065.php