Сборка 66. * В проекте фронта реализовано отображение текущего статуса, текущего пользователя, информации о проекте, логин, логаут, установка пароля, выбор и открытие БД. * Везде при вызове метода округления (Math.Round) добавлен параметр, указывающий банковское округление (MidpointRounding.ToEven). * Добавлено ограничение времени проверок заявок по времени сессии Мосбиржи, а также передача этого времени в объекте статуса и отображение этого времени в окне статуса. * Данные в окне статуса раз...
Сборка 65. * Добавлен проект фронта для WebApi. * WebApi - изменение метода AppInfo с POST на GET. Исправлена ошибка работы с CORS. Добавлена работа со статическими файлами (подготовка к добавлению фронта на Svelte). Удалена работа с ролями (пока они не нужны). Добавлена заглушка главной страницы - index.html. * В TBankBase и BrokersConnector расширено применение метода ExceptionUtils.ComplementMessage для обработки ошибок. * В советнике SimpleSplitterAdvisor исправлена ошибка вывода в лог це...
Сборка 64. * Изменение перезапуска стрима цен - добавлено пересоздание объекта АПИ брокера (со старым объектом не работает почему-то).
Сборка 63. * В коннекторе брокеров снова исправлена ошибка дублирования заявок. Также исправлена ошибка вывода в лог информации об ошибке проверки заявки на продажу (обнаружение дублирования). * В проект WebApi добавлен метод получения информации о приложении (название, версия, дата релиза).
Сборка 62. * В советнике "Простой делитель" исправлена критическая ошибка с выставлением двойных заявок. * В коннекторе брокеров при обнаружении открытии/закрытии позиции добавлен запуск метода обработки цены для того чтобы сразу же обработать изменение заявок советника. Исправлена ошибка обработки неудачной инициализации советника. Добавлена проверка для предотвращения выставления двух заявок, закрывающих одну и ту же позицию. Данные для запуска советника помещены в отдельный класс AdvisorSt...
Сборка 61. * В коннекторе брокеров исправлены критические ошибки. Исправлена ошибка метода CountOrderAmount. Исправлена ошибка метода CheckAdvisorOrder при вычислении общей суммы заявок на покупку. * В классе заявки в метод описания заявки добавлена цена. * Переделана синхронизация. При открытии и закрытии позиций сумма открытия/закрытия берётся из операции брокера, а не вычисляется. При удалении всех операций счёта для баланса счёта ставится сумма 0 (исправляются ошибки несовпадения суммы тр...
Сборка 60. * Добавлен проект WebApi для запуска советников на серверах. * Исправлена ошибка архитектуры советников - при обнаружении действий с позициями (открытие, закрытие, разделение) сначала вызывался метод обработки этого действия, и только потом метод обработки изменения статуса заявки, что приводило к ошибкам (попытка отменить выполненную заявку). В текущей версии обработка действия с позицией и изменение состояния исходной заявки выполняется одним методом, что даёт возможность советни...
Сборка 59. * Реализована возможность просмотра текущих активных заявок на серверах брокера, сохранение их в БД и/или отмена. * Переделана проверка заявок. ConcurrentDictionary заменен на обычный Dictionary. Добавлена синхронизация потоков через Mutex при проверке заявок и при обработке последних цен. * Исправлена ошибка отсутствия оповещения советника в случае обнаружения изменения состояния заявки при проверке заявок. * Исправлена ошибка отсутствия обновления таблицы с позициями на главной ф...
Сборка 58. * Добавлены средства контроля записи избыточных сообщений в лог советников. В случае превышения 40 сообщений за 2 минуты (в случае одинаковых сообщений - 5 за 10 минут) коннектор брокеров останавливает советника. В случае 5 ошибок подряд при проверке заявки ошибочная заявка удаляется из очереди. * Перед запуском и остановкой советника запрашивается подтверждение.
Сборка 57. * Запуск стрима цен перенесён из главной формы в коннектор брокеров. * В коннекторе брокеров сделана остановка стрима цен при остановке советника через пересоздание брокера. * При запуске советника обработка последних цен производится сразу же после запуска, а не при получении следующей цены из стрима. * Исправлена ошибка проверки параметров существующей заявки на продажу при запуске советника.
Сборка 56. * На главной форме исправлена ошибка с блокировкой кнопки настройки параметров советника. * В FormDataEdit исправлена ошибка с установкой иконки формы из-за отсуствия неправильного наименования файла ресурсов. * На главной форме исправлена ошибка вызова метода обновления позиций из коннектора брокеров (вызов метода без обёртки из другого потока). * В коннекторе брокеров исправлена ошибка синхронизации (обработка операций без учёта состояния, в том числе обработка отменённых операци...
Сборка 55. * В советнике "Простой делитель" добавлена возможность динамического увеличения делителя депозита. * Добавлена иконка для приложения Windows и для всех форм. Иконка взята от проекта StockNovice. * На главной форме сделана блокировка комбо-бокса выбора советника в случае отсутствия подключения к брокеру.
Сборка 54. * В тестере при повторном использовании загруженных котировок устанавливаются не только сами котировки, но и словарь с объектами RangeInfo для вывода информации по диапазонам котировок. * Алгоритм проверки заявок переделан с таймера на главной форме на отдельную задачу (Task) в коннекторе брокеров. * Добавлена блокировка/разблокировка комбобокса типа советника вместе с остальными контролами запуска советника. * На главной форме удалена неиспользовавшаяся переменная _orders. * Загру...
Сборка 53. * В базовом классе советника добавлено свойство для времени последней обработанной котировки. Для установки этого свойства метод ProcessRate переделан из абстрактного в виртуальный, с сохранением времени последней обработанной котировки.
Сборка 52. * Реализована передача советникам при запуске существующих заявок (необходимо для быстрого перезапуска). * Реализована возможность ручной отмены заявок пользователем. * Для советника "Простой делитель" добавлен параметр процента ускорения.
Сборка 51. * В ProjectInfo исправлена ошибка - поле ReleaseDate переделано в свойство. * В методе разделения позиции добавлена возможность выполнения с внешней SQL-транзакцией. * В коннекторе брокеров исправлена ошибка в функции синхронизации - к закрытию позиций добавлена транзакция. * Изменён механизм поиска закрываемой позиции при синхронизации после изменения состояния заявки - теперь в первую очередь производится поиск позиции, указанной в заявке. * Исправлена ошибка на форме редактирова...
Сборка 50. * На основной форме добавлены контролы для запуска советников - список выбора типа советника и кнопка настройки параметров советника. * Интерфейс IAccountInformer переименован в IAdvisorRunner в связи с изменившимся функционалом. * Удалён интерфейс IElementReceiver - его функциональность перенесена в IAdvisorRunner. * Удалён интерфейс IGetById<T> - его функциональность перенесена в IAdvisorRunner. * В коннектор брокеров добавлены переменные, необходимые для запуска советника. * В к...
Сборка 49. Полная переделка схемы работы тестера и роботов с выставления позиций на выставление заявок. * Тестер советников переделан на открытие и закрытие позиций через выставление заявок. * Советники EthalonAdvisor и SimpleSplitterAdvisor переделаны на работу через выставление заявок. * В классе базового брокера и классах брокера Т-Банка добавлены методы для отмены и изменения заявок. * В базовом классе советника и в SimpleSplitterAdvisor добавлен метод обработки разделения позиций. * Назв...
Сборка 48. * В коннекторе брокеров переделана синхронизация. Реализована возможность удаления данных перед синхронизаций, а сама синхронизация заключена в транзакцию для атомарности. После успешного выполнения синхронизации выдаётся сообщение. * Для формы редактора данных реализованы расширенные возможности настройки - установка заголовка, скрытие метки и значения Id, установки произвольного текста вместе заголовка и/или значения Id. * В TBankBase исправлена ошибка создания операций (убран п...
Сборка 47. * Переделана синхронизация - исправлены ошибки привязки комиссий к торговым операциям и обработки нескольких операций за один раз. * Исправлена ошибка учёта лотности при создании заявок на основе позиций. * Исправлена ошибка установки времени операции при синхронизации операций, связанная с преобразованием времени UTC/LocalTime. * Реализовано закрытие позиции через создание заявки брокеру. * Исправлена ошибка отображения состояния операции при просмотре операций. * Реализована пров...
Сборка 46. * В коннекторе брокеров реализована синхронизация операций быстрого типа - занесение данных в БД, без проверки их наличия там. * В классе позиции удалены поля комиссии брокера с прибыли, налога на прибыль, прибыли с вычетами. Поле прибыли до вычетов переименовано просто в прибыль. * В классе параметра комиссии брокера удалено поле комиссии брокера с прибыли. * В классе счёта удалено поле налога на прибыль. * В классе актива удалены поля налога на прибыль и комиссии брокера. * Удале...
Сборка 45. * Добавлен класс операций брокера. * В цепочке обработки данных (BaseProcessor + FormDataList + FormDataEdit) реализована возможность просмотра данных без редактирования, а также просмотра списков данных без загрузки их из БД (например полученных от брокера операций). * Просмотр операций брокера переделан с просмотра JSON на отображение таблицы с элементами.
Сборка 44. * В классе BrokersConnector исправлена ошибка проверки состояния всех заявок. * В классах АПИ брокеров реализовано получение операций по счёту в виде строки. * На форме действий со счётом реализован просмотр операций по счёту в виде строки. * Реализован блок работы с заявками, с возможностью проверки заявок и выдачи результата в виде текста. * Реализована возможность получения лимитов по счёту - баланса в разных валютах, а также заблокированных сумм. * Сформулированы следующие зад...
Сборка 43. * Реализована (пока без проверки) полная цепочка открытия позиций через заявку брокеру. * Реализована проверка заявок на закрытие позиций (пока без UI).
Сборка 42. * Добавлен класс заявки - StockOrder. * В класс позиции Position добавлены 4 поля для привязки позиции к заявкам и сделкам брокера. * В BrokerBase и классах АПИ Т-Банка добавлены методы отправки заявки и проверки заявки.
Сборка 41. * Реализован метод разового получения последних цен по указанным активам в дополнение к подписке на стрим цен. Сделано получение последних цен портфеля перед подпиской на стрим на главной форме.
Сборка 40. * Реализован поиск информации по активам. * Реализована подписка на получение текущих цен в АПИ брокера, также сделаны контролы на главной форме. * На форме загрузки данных от брокера мелкие улучшения - лучшее вычисление дат и автоматическая очистка лога при начале новой загрузки.
Сборка 39. * На форме загрузки баров от брокера исправлена ошибка обработки ситуации, когда от загрузка от брокера завершилась без ошибки, но было получено 0 баров. * Реализована асинхронная загрузка баров от брокеров с возможностью отмены операции пользователем на всех этапах. * На форме загрузки баров от брокера после завершения загрузки выводится время не только завершения, но и начала загрузки.
Сборка 38. * Реализована возможность использования уже загруженных котировок при повторном проведении тестирования без закрытия окна тестера.
Сборка 37. * Реализована возможность тестирования советников на котировках, созданных из хранящихся в БД баров - как с объединением их с котировками, напрямую загруженными из БД, так и отдельно. * Исправлена ошибка сохранения в БД информации о загрузке баров от брокера - отсутствие фильтра по активу при поиске данных о предыдущих сохранениях. * Переделан тестер стратегий. Методы загрузки баров сделаны публичными и вызываются отдельно извне, а не самим тестером. * В BarsFilter поле LoadBarsFro...
Сборка 36. * Добавлен класс BarSaveInfo для представления информации о сохранении в БД баров, загруженных от брокера, а также создание в БД таблицы на основе этого класса. * Реализовано сохранение загружаемых от брокера баров в БД, с записью информации о сохранениях в таблицу БД BarSaveInfo. * Метод настройки столбцов DataGridView вынесен из формы FormDataList в класс WinUtils и переделан в метод расширения DataGridView. * В класс BaseFilter добавлен метод TurnOnSingleFilter, облегчающий уста...
Сборка 35. * В тестере стратегий исправлена ошибка установки параметров советника SimpleSplitterAdvisor. * В тестере стратегий сделан вывод оборота, процентов полученной прибыли и потенциала в конце теста, а также использовавшихся параметров советника. * Исправлен баг советника "Простой делитель", из-за которого советник при определённых обстоятельствах пытался открывать позиции на большую сумму, чем доступно средств на счёте.
Сборка 34. * Сформулирована глобальная цель проекта и следующие задачи. * Реализовано получение баров от брокера с разбивкой временного диапазона на порции с указанным количесвом часов. Пока только в синхронном режиме. * В базовом классе брокера Т-Банка реализована выдача более подробной информации об ошибке при получении ошибки от брокера. * В тестере советников исправлена ошибка загрузки портфеля. * В тестере советников добавлена возможность полного просмотра позиций, полученных при тестиро...
Сборка 33. * Определены дальнейшие задачи. * Добавлен вывод количества баров, загруженных от брокера. * Переделана загрузка котировок от брокера. Бары загружаются и преобразуются для каждого актива в портфеле, а не только для первого. * Переделано отображение формы настройки загрузки баров от брокера. Выбор актива выполняется только при загрузке для счёта. При загрузке для тестера используются активы портфеля. * При загрузке котировок от брокера выводится информация по каждому активу - миниму...
Сборка 32. * Исправлена ошибка отображения формы тестера стратегий. * Реализовано тестирование простых советников (торгующих только одним активом) на загруженных от брокера барах. * Добавлен метод преобразования бара графика в 4 котировки. * Изменена сортировка счетов по умолчанию - сначала сортировка идёт по полю DefaultAccount (основной счёт будет показан первым).
Сборка 31. * Реализовано получение информации о брокерских счетах пользователя в виде строки. * В таблицу активов добавлено поле идентификатора актива в системе брокера. * В TBankBase реализован метод получения баров. * В TBankBase исправлена ошибка обработки дробной части денежных сумм. * Добавлена форма фильтра баров для настройки параметров получения баров от брокера. * В компоненте DateTimeControl исправлена ошибка со значением максимального времени. * Начата переделка формы тестера с цел...
Сборка 30. * Работа с объектам АПИ брокеров переделана на два этапа - создание объекта больше не увязано с подключением. * Реализовано отображение формы действий брокера и метод работы с балансом тестовых счетов брокеров. * К счетам добавлено поле идентификатора брокера. * Реализован метод работы с балансом тестового счёта для брокера Т-Банка. * В методах работы с денежными суммами Т-Банка исправлен баг работы с отрицательными суммами.
Сборка 29. * Для базовых классов советника и брокера добавлен метод CreateNew - позволяющий создавать новый объект такого же типа. * Реализовано автоматическое подключение счетов к брокерам при открытии БД и после редактирования настроек счёта. * Методы для работы с брокерами вынесены из основной формы в проект StockNote.BL, в класс BrokersConnector. * Изменено отображение предыдущего установленного пароля на форме ввода пароля, сделано более понятным. * Добавлена заготовка для формы действий...
Сборка 28. * Исправлена ошибка в методе проверки токена АПИ Т-Банка. * Доработаны базовые классы АПИ брокера и классы Т-Банка - добавлен метод подключения. * Исправлена ошибка метода редактирования элемента в базовом репозитории.
Сборка 27. * Создан базовый класс брокерского АПИ Т-Банка - TBankBase. В него вынесены методы, общие для песочницы и реального АПИ. * При загрузке типов советников из файлов сделан пропуск абстрактных типов. * Реализована загрузка типов брокеров - как встроенных, так и поиск сборок в специальной директории. * В репозиторий BaseRepo<T> добавлены методы GetListOfNativeColumns и GetWithNativeColumns, позволяющие получать список всех настоящих полей БД (исключая получаемые через JOIN из других та...
Сборка 26. * Добавлен класс для шифрования и расшифровки данных - SecretKeeper. * Добавлена форма установки пароля. * Добавлен класс для хранения в БД настроек брокера. * На главной форме реализована установка и хранение пароля. * Начата работа по добавлению подключения к АПИ брокеров. Добавлен абстрактный класс АПИ брокера, классы АПИ Т-Банка и песочницы Т-Банка, заготовки методов. Определены следующие задачи. * Название приложения перенесено из основной формы в DataUtils.
Сборка 25. * Добавлен проект реализации АПИ брокеров - StockNote.BrokerApi. * В советнике SimpleSplitterAdvisor исправлена ошибка обработки котировок по типам. * В тестере стратегий исправлена ошибка, из-за которой котировки частично не обрабатывались. * В тестере стратегий реализовано отображение информации о загруженном диапазоне котировок по каждому активу - цена в начале периода времени, цена в конце периода, минимальная цена и её время, максимальная цена и её время, средняя цена и т.д.
Сборка 24. * Реализован советник SimpleSplitterAdvisor. * В интерфейс IAccountInformer и в тестер стратегий добавлены методы получения открытых позиций советником. * В базовый класс советника добавлены методы для передачи советнику информации об открытии и закрытии позиций - PositionWasOpened и PositionWasClosed. * Переменные списков рекомендаций на открытие и закрытие позиций убраны из базового класса советников - вместо них производные классы могут создавать свои собственные коллекции. Соот...
Сборка 23. * Добавлен класс AdvisorPositionFilter для загрузки нужных позиций советниками. * Исправлена ошибка при загрузке актива в советнике EthalonAdvisor. * В классе тестера удалены отдельные коллекции для открытых позиций, закрытых позиций и всех позиций, оставлен только один словарь для всего. * Реализована возможность получения советником от тестера количества активов в позициях по фильтру - только открытых, только закрытых, всех.
Сборка 22. * Полностью реализована работа с настраиваемыми параметрами советников.
Сборка 21. * Оптимизация и реорганизация кода советника Эталон, базового советника, класса настраиваемого параметра советника AdvisorParamInfo (переименован из AdvisorCustomParamDescription), прочих методов для работы с настраиваемыми параметрами советников. * Добавление класса советника SimpleSplitterAdvisor, пока не полностью реализованного.
Сборка 20. * Добавлена форма настройки параметров советников (пока не работающая, потому как нет ни одного советника с настраиваемыми параметрами). * Исправлен баг с добавлением комиссий брокера. * Реализована загрузка типов советников из сборок. * Реализована работа с записями торговых стратегий в БД и назначением этих записей советникам. * В базовый класс советника добавлен метод создания позиции. * В класс позиции добавлен метод создания копии.
Сборка 19. * Реализован подробный просмотр результатов тестирования советника. Сопутствующие изменения внесены в разные классы, участвующие в тестировании, открытии/отображении позиций и т.п.
Сборка 18. * Доделана первичная реализации тестера стратегий, а также советник Эталон.
Сборка 17. Продолжение разработки инфраструктуры советников и тестера стратегий. * Добавлен интерфейс IAccountInformer для предоставления информации о счёте, нужной для работы советника. * Базовый класс советника и советник Эталон переведены на использование IAccountInformer вместо передачи отдельных данных счёта в параметрах. * Из базового класса советника удалена функция AddTransaction. Она была нужна для поддержания переменной баланса счёта в актуальном состояниии, с переходом на использов...
Сборка 16. Подготовительные мероприятия для тестера стратегий и для советников. * Добавлены классы и методы, позволяющие работать с настраиваемыми параметрами советника, которые могут быть разными для разных типов советников. * В тестере добавлены коллекции для позиций и транзакций, проводимых тестером при работе с позициями по рекомендациям советника. * Методы создания транзакции при открытии и закрытии позиции вынесены из PositionRepo в класс позиции. Нужно чтобы обеспечить возможность рабо...
Сборка 15. * В класс комиссии брокера добавлены методы предварительной загрузки параметров комиссий и поиска параметра комиссии с подходящей минимальной суммой среди предварительно загруженных параметров. Эти методы будут использоваться для работы советников. * Базовый класс советника и советник Эталон переделаны на работу с объектом комиссии брокера (BrokerTax) вместо параметра комиссии брокера (BrokerTaxParam). * В тестере стратегий доделана инициализация советника при начале тестирования. ...
Сборка 14. * На форме тестирования советника реализовано создание тестера и запуск тестирования. * Исправлен баг AdvisorTester (не сохранялась ссылка на объект подключения к БД). * Частично реализована инициализация советника в AdvisorTester. * Изменены параметры конструктора AdvisorTester: идентификатор валюты заменен на объект счёта. * Сформулированы новые задачи и последовательность их решения.
Сборка 13.* В тестировщик советников добавлены основные переменные, конструктор и реализована загрузка котировок. * Добавлена форма тестирования советников с основными контролами и пункт в меню основной для отображения формы тестирования. * Переделан базовый класс советника - теперь у него конструктор без параметров, чтобы можно было использовать советников в списках для выбора и получать их названия и описания без инициализации и установки переменных. Установка значений переменных перенесена...
Сборка 12. * Добавлена краткая справка по настройке столбцов в таблице QUIK для импорта данных в StockNote.
Сборка 11. * При импорте данных из QUIK исправлена ошибка поиска актива по биржевому коду (коды не загружались при создании формы).
Сборка 10. * При импорте из QUIK котировок и баров реализован поиск не только по названию актива, но и по биржевому коду. Код поиска актива, а также константы положеня полей в таблице вынесены в отдельные класс и перечисление. * При импорте баров из QUIK немного изменены значения времени закрытия бара - с 23:49:59 на 23:50:00 в будни и с 18:59:59 на 19:00:00 в выходные. * В базовый класс советника добавлены методы - виртуальный Shutdown для завершения работы советника и защищённый LogAddMessa...
Сборка 9. * Изменена генерация предлагаемого времени на форме создания баров - ставится корректное время при заполнении данных за предыдущий день, при заполнении в выходные и т.д. * Добавлен интерфейс IGetById<T> и его реализация в классе BaseRepo - нужно для получения активов советниками. * Добавлен класс эталонного советника EthalonAdvisor, предназначенный только для покупки активов. Этот советник надо будет сравнивать с другими советниками для оценки результативности. * В базовом классе со...
Сборка 8. * В классе портфеля реализована загрузка разрешённых активов из БД. * Добавлена работа с логом советников - класс сообщения, создание таблицы лога в БД, пункт меню и форма просмотра лога советников. * Добавлен интерфейс IElementReceiver для записи сообщений советников в лог, а также реализация этого интерфейса в базовом репозитории.
* Добавлен проект StockNote.Auto, предназначенный для классов советников. * Добавлена заготовка абстрактного класса советника BaseAdvisor. * Созданы классы портфеля и актива портфеля - для указания советникам, какими активами им торговать. * Добавлено создание в БД таблиц портфелей и разрешённых активов. * Добавлено меню советников и пункт меню портфелей, а также отображение формы разрешённых активов портфеля. * Добавлены иконки меню. * Исправлены тултипы кнопок на главной форме.
Сборка 6. * Реализована возможность вычисления комиссий открытия и закрытия из остатка средств на счёте.
Сборка 5. * Реализована возможность автоматизированного сохранения бэкапов. * При выполнении команд SQL добавлено автоматическое сохранение бэкапа (при подтверждении пользователя). * Реализована возможность копирования текущего открытого файла БД в файл с другим именем (меню "Сохранить как...").
Сборка 4. * Добавлен новый тип транзакций - выплаты по активам. * Для комиссии брокера добавлено два новых поля - ежемесячная плата и флаг взимание платы только при торговле. * Добавлен отчёт для сверки суммы транзакций. * При создании БД добавляется группа отчётов для проверки данных. * Если для комиссии брокера установлена ежемесячная плата за обслуживание, и в истории счёта за текущий месяц нет оплаты этой комиссии - при открытии сделки программа будет предлагать её списать.
Сборка 3. * На форме отчётов исправлен тултип кнопки экспорта отчёта в CSV. * Добавлен класс бара графика. * В определение зависимостей добавлены бары и позиции. * Добавлено создание таблицы баров при создании БД. * Добавлен пункт меню и отображение формы для работы с барами. * Добавлена форма пакетного занесения баров, созданная на основе формы пакетного занесения котировок.
Сборка 2. * Исправлен баг с необработанной ошибкой на форме редактирования позиции, если прибыль получается отрицательной. * Добавлена кнопка для принудительной перезагрузки позиций. * Добавлена автоматическая перезагрузка позиций после добавления котировок, если отображается поле потенциала. * На основной форме назначены клавиатурные сокращения для открытия позиции, удаления позиции, перезагрузки позиций, редактирования фильтра.
Сборка 1 от 03.03.2025. * Добавлен проект импорта из StockNovice. * Исправлено создание лишних полей в таблице позиций. * Добавлен пункт меню с информацией о сборке программы.
* Реализовано разделение позиций.
* Добавлены проверки времени открытии закрытия при открытии, закрытии и редактировании позиций. * Исправлены небольшие ошибки в форме редактирования. * Добавлено вычисление потенциала в открываемых позициях.
* Полностью реализована настройка полей позиций. * Исправлена ошибка в базовом репозитории, в методе сохранения пакета элементов (не применялась транзакция).
* Завершена работа с внешним видом формы настройки столбцов позиций с работающей прокручиваемой областью контролов (функционал настройки пока ещё не реализован).
* Добавлена форма настройки столбцов позиций. Настройка пока нереализована, но на форме сделан условно-работающий вертикальный скролл. В дальнейшем форма будет использоваться для разбирательств со скроллом и переноса его на другие формы.
* Реализовано отображение настроенных столбцов позиций, в том числе потенциала (настройка пока не реализована).
* Добавлена таблица для настройки столбцов позиций. * На уровне репозитория позиций переделана загрузка позиций - данные загружаются в зависимости от настройки столбцов, в том числе загружается потенциал.
* Перечисление типа котировок изменено таким образом, чтобы можно было в SQL-запросе получать тип котировок для продажи одним условием. * Добавлено создание View для получения максимального времени котировок.
* Исправлена ошибка вычисления комиссии закрытия при нажатии кнопки вычисления комиссии. * Исправлена ошибка, блокировавшая изменение параметров открытия позиции. * Добавлены предупреждения в случае, если не указана комиссия открытия/закрытия позиции. * Исправлена ошибка в методах изменения открытой и закрытой позиции. * Добавлена блокировка изменения счёта при изменении параметров открытия.
* Добавлен проект загрузки тестовых данных. При создании новой тестовой БД (конфигурация Debug) в неё автоматически добавляется тестовый счёт с балансом 100000 руб, тестовая комиссия брокера, активы и котировки. * Убрано занесение комиссии брокера ВТБ в БД по умолчанию.
* Реализовано закрытие позиций, редактирование закрытых позиций.
* Реализовано внесение изменений в параметры открытия (только открытые позиции).
* Реализована возможность удаления открытых позиций с возвратом средств на счёт. * Добавлена сортировка позиций по времени открытия по убыванию.
* Реализована загрузка позиций. * Реализовано редактирование фильтра позиций и установка фильтра по умолчанию для позиций, открытия новых позиций.
* Добавлена форма открытия позиций. Частично реализованы контролы ввода параметров открытия.
* Добавлен датагрид основной формы. * Добавлена блокировка/разблокировка контролов главной формы при отключении/подключении БД. * В базовом репозитории методы Update разделён на две версии - UpdateByParams и UpdateByString. Также метод Del разделён на две версии - DelByParam и DelByString. * Добавлен репозиторий позиций, а также методы репозитория транзакций для обеспечения работы репозитория позиций. * Методы добавления в базовом репозитории переделаны - теперь они обновляют Id добавляемого ...
* Добавлен блок торговых стратегий (пока без классов, только работа с таблицей). * Добавлена модель для позиций и создание таблицы позиций в БД.
* Добавлено редактирование настроек программы. * Добавлена иконка меню для создания нового файла.
* Добавлены предикаты, отключающие изменение предустановленных данных (4 валюты и 8 типов активов). * Реализована работа с параметрами комиссий брокера и налогов на прибыль.
* Переделана работа с транзакциями. Типы транзакций вместо таблицы в БД реализованы в виде перечисления. Таблица транзакций удалена. * Исправлены ошибки с редактированием элементов и валидацией числовых полей. * В дата-процессоре реализована возможность устанавливать на дабл-клик любое действие из имеющихся. Например, для отчётов на дабл-клик установлено действие просмотра отчёта, а для счетов - открытие формы транзакций.
* Переделан механизм генерации значений по умолчанию. Удалены лишние типы генераторов. Добавлена возможность создания генераторов, выдающих константу в качестве значения по умолчанию. * Заблокировано прямое изменение пользователем баланса счёта при редактировании счёта. * Добавлена проверка на отличие суммы от 0 при создании/изменении транзакции. Для этого создан специальный атрибут.
* Добавлена предварительная реализация работы с транзакциями по счёту - создание, изменение, удаление (только последняя транзакция). * В рамках работы с транзакциями были преобразованы репозиторий и дата-процессор. Репозиторию добавлена возможность обработки операций добавления, редактирования и изменения данных с передаваемой транзакцией. Дата-процессору добавлена возможность передачи репозитория в конструкторе, а также установки методов для проверки возможности работы с данными - добавления...
* Добавлен класс модели данных для транзакции - AccountTransaction. * Подготовительные работы к реализации обработки транзакций по счёту. К методам репозитория для модификации данных (вставка, удаление, изменение) добавлена поддержка передачи внешних транзакций БД. К методу репозитория для изменения элемента добавлена передача элемента со значениями, которые были до изменения. * На основной форме методы работы с отчётами выделены в отдельный регион. * Исправлены ошибки именования классов гене...
* Исправлен текст кнопки/пункта меню для сортировок отчёта. * Добавлена блокировка контролов настройки параметра отчёта при отключении параметра. * Добавлены отчёты для работы с дивидендами.
* Убрано отображение пустой формы отчёта после ошибки загрузки данных отчёта. * Добавлено отображение числа строк, полученного при формировании отчёта. * Реализован эккспорт данных отчёта в файл CSV.
* Реализована настройка пользователем сортировки отчётов перед их выводом на просмотр.
* Добавлена работа с сортировками отчёта (пока без редактирования пользователем).
* Исправлены ошибки экспорта отчётов. * Полностью реализована работа с параметрами отчёта, в том числе установка их пользователем перед просмотром отчёта.
* Реализовано применение параметров отчёта к итоговому тексту запроса SQL.
* Сделана начальная часть работы с параметрами отчётов - модель, создание таблицы БД, добавление, удаление, изменение, экспорт.
* Реализована возможность просмотра итогового текста запроса SQL для отчёта.
* Настроено отображение столбцов таблицы частей запроса SQL. * Реализовано добавление в SQL-команду отчёта текста по умолчанию для части запроса SQL, если в самой части текст запроса не указан.
* Реализовано настраиваемое пользователем ограничение максимального количества строк для отчёта.
* Реализован экспорт отчётов.