# История изменений
# 2026-11-10 Несовместимые изменения
- Добавлена возможность настраивать расписание торговли портфеля отдельно для каждого дня недели, в связи с этим:
- Удален параметр портфеля TradingDays;
- Добавлен столбец Trading days в таблицу с расписанием Timetable портфеля;
- Удален пункт
Group TradingDaysв меню Actions виджета Portfolios table.
- Добавлена возможность настраивать расписание рассчета значений индикаторов отдельно для каждого дня недели, в связи с этим:
- В связи с удалением параметра портфеля TradingDays и с добавлением его в каждый интервал в таблице с расписанием Timetable портфеля:
- Если данный параметр как-то использовался через WebSocket API, необходимо изменить реализацию клиентского кода, т.к. изменения в роботе НЕ сохраняют обратную совместимость;
- Текущие настройки ВСЕХ портфелей также НЕ сохраняют обратную совместимость, во все интервалы в расписании в качестве значения Trading days по умолчанию будут проставлены все дни недели, пользователям придется самим изменить дни на нужные для всех интервалов всех портфелей.
# Как перейти
# WebSocket API
Поле trading_days убрано из объекта портфеля и добавлено в каждый элемент массива timetable. Формат значения не изменился: битовая маска дней недели (bitmask_select), 1 - воскресенье, 2 - понедельник, 4 - вторник, 8 - среда, 16 - четверг, 32 - пятница, 64 - суббота, значение по умолчанию 127 (все дни), описание полей смотрите в api.md и в Timetable.
На уровне портфеля:
| Было | Стало |
|---|---|
| |
На уровне расписания (timetable):
| Было | Стало |
|---|---|
| |
Если клиент читал или записывал trading_days портфеля, теперь нужно:
- читать
trading_daysиз каждого интервалаtimetableпортфеля, а не из самого портфеля; - записывать
trading_daysв каждый интервалtimetable: поле обязательное (например, понедельник-пятница это2 + 4 + 8 + 16 + 32 = 62); допустимый диапазон от1до127; - не передавать
trading_daysна уровне портфеля: запрос с этим полем будет отклонён с ошибкой.
# Существующие портфели
У всех существующих портфелей во всех интервалах timetable значение trading_days будет 127 (все дни недели). Прежнее значение портфеля не переносится, пользователям нужно самим задать Trading days для каждого интервала.
# C++
В interval добавлен конструктор с битовой маской дней недели:
interval(int trading_days, day_time b, day_time e)
Должны выполняться условия b < e и , иначе будет выброшено std::invalid_argument. Прежний interval(day_time b, day_time e) работает как раньше и задает все дни недели.
В schedule добавлен перегруженный метод is_in:
bool is_in(int wd, const day_time& dt) const
wd - день недели, (0 - воскресенье, 1 - понедельник и т.д.); как и is_in(const day_time& dt), метод возвращает true, если расписание пусто.
# 2026-10-20
- Добавлен нередактируемый параметр портфеля Pos0;
- В C++ интерфейс добавлен метод lot_qty() для объекта финансового инструмента;
- В C++ интерфейсе изменено поведение и описание метода lot_round() для объекта финансового инструмента.
# 2026-09-29
- В C++ интерфейс добавлен объект
ring_deque, который умеет сохранять и загружать свои значения при перезапуске робота - В связи с добавлением в C++ интерфейс коллекций, размещаемых в
shared_memory, разделИндикаторы и математическая статистикапереименован вИндикаторы, математическая статистика и коллекции
# 2026-09-14
- В WebSocket API добавлен лимит в 8 одинаковых подписок на одну вебсокет сессию;
- Добавлен параметр портфеля Calculation method, отвечающий за новый метод расчета раздвижки, в связи с этим обновлены формулы расчета Sell/Buy, Price_s/Price_b, Equal prices.
# 2026-08-21
- Добавлены параметры портфеля Shift mode, Shift formula, X, v_side, отвечающие за новые алгоритмы подвижки цен Lim_sell и Lim_buy;
- В C++ интерфейс добавлены методы портфеля для доступа и редактирования Shift mode, X, v_side;
- В C++ интерфейс добавлен метод deal() для объекта портфеля.
# 2026-08-04
- В C++ интерфейс добавлена функция
void log_show(const std::string&) - В C++ интерфейс добавлена возможность сохранения и загрузки значений индикаторов при перезапуске робота
# 2026-03-05
- Добавлены поля
Sell/BuyиLim_S/Lim_Bв виджетах Finres history и Finres for today. ПолеBuy/Sellтакже переименовано вDirectionв обоих виджетах.
# 2026-02-27
- Внесены изменения в разделе описания API-ключей для подключения к BINANCE
# 2026-01-27
- Добавлена возможность ограничения доступа к платформе за счёт разрешения доступа только для ip-адресов из белого списка.
# 2026-01-16
# 2026-01-14
- В настройках подключения EXANTE добавлено поле с кодами типов инструментов.
# 2025-10-21
- Внесены изменения в подключение Ctrader.
# 2025-09-26
- Добавлен дневной лимит виртуальных сделок, совершенных роботом.
# 2025-09-22
- Во всех уведомлениях знак сравнения изменен на строгий (теперь везде "строго больше");
- Для всех уведомлений добавлена возможность остановить торговлю.
# 2025-07-22
- Добавлен нередактируемый параметр портфеля Is trading;
- Добавлен новый статус торговых и маркет-дата подключений "отключено по времени";
- В связи с предыдущим пунктом обновлено описание интерфейсов виджетов Robots table, Data connections, Trade connections.
# 2025-07-15
- Добавлен отдельный пункт с подробным описанием системных требований. Вопрос о системных требованиях в Часто задаваемых вопросах теперь ссылается на этот пункт.
# 2025-06-22
- Хранение исторических данных по сделкам, финансовым результатам и логам теперь осуществляется в течение 6 месяцев.
# 2025-06-19
- В интерфейс сайта добавлена возможность изменения торговых интервалов расписания сразу по нескольким портфелям
# 2025-06-04
- В C++ интерфейс добавлена константа
NULL_VALUEдля индикации отсутствия значения на графиках в WebSocket API - В WebSocket API добавлена информация про "отсутствующие значения", которые не будут отображаться в вебинтерфейсе на графиках
# 2025-06-02
- В C++ интерфейс для объекта портфеля добавлены методы
bool is_sell_ok(),bool is_buy_ok(),bool is_price_s_ok(),bool is_price_b_ok()для проверки валидности текущих значений полейSell,Buy,Price_s,Price_b;
# 2025-05-29
- Добавлена информация о том, что все строки в C++ интерфейсе и в WebSocket API должны являться валидными
UTF-8строками, а все лимиты на длины строк указаны в байтах; - В описание C++ интерфейса добавлен рекомендуемый способ отладки пользовательских формул;
- В описание C++ интерфейса добавлены рекомендации по фильтрации биржевых данных.
# 2025-05-16
- В WebSocket API в методах
portfolio_fin_res.*в объектах спискаtrsполеtзаменено наdt.
# 2025-04-08
- В C++ интерфейс для объекта портфеля добавлены методы
std::string color()иvoid set_color(const std::string& v)для получения и изменения поля "Color" портфеля; - В C++ интерфейсе во всех сеттерах для полей типа
std::stringтип аргумента изменен наconst std::string&.
# 2025-02-10
- Добавлена возможность двухфакторной аутентификации на сайте.
# 2025-02-06
- Уменьшен Rate limit подключений.
# 2024-11-21
- Добавлена соответствующая пометка для параметров, которые отображаются с учетом
lot_size(это Curpos, Count, Market volume, Return first). - В формулы для расчета Opened, Commision sum, Fin res, Fin res wo C добавлен
lot_sizeсоответствующего финансового инструмента.
# 2024-11-01
- В C++ интерфейс добавлены массивы указателей на методы для доступа и редактирования "пользовательских полей".
# 2024-10-30
- В C++ интерфейс для всех объектов для расчета индикаторов добавлены методы
shift(double),empty(),size(); - В C++ интерфейс добавлен индикатор RSI;
- В C++ интерфейс добавлены объекты таймеры.
# 2024-10-17
- В C++ интерфейс для всех объектов для расчета индикаторов добавлен метод
clear().
# 2024-09-26
- Из C++ интерфейса удален метод
set_fin_res()объекта портфеля; - Из C++ интерфейса удален метод
set_fin_res_wo_c()объекта портфеля.
# 2024-09-24
- v_min/v_max портфеля теперь измеряются в штуках портфелей.
# 2024-09-16
- В настройки расписания портфеля добавлен параметр TradingDays;
- В C++ интерфейс добавлен метод mid_price() для объекта финансового инструмента;
- В C++ интерфейс добавлены объекты для расчета различных индикаторов.
# 2024-06-26
- Удален параметр портфеля
Timetable only stop.
# 2024-06-20
- Изменена и расширена логика работы параметра портфеля Timetable.
# 2024-05-13
- В параметры портфеля добавлен параметр Threshold;
- Параметр Only maker теперь является параметром портфеля, а не параметром финансового инструмента портфеля;
- Некоторые параметры портфеля/финансового инструмента, непосредственно влияющие на выставление Is first финансового инструмента портфеля и/или доступные только для Is first финансового инструмента портфеля
перемещены в отдельную группу настроек портфеля
FIRST LEG SETTINGS.
# 2024-05-02
- В C++ интерфейс добавлена функция tgr_notify() для отправки уведомлений в telegram.
# 2024-04-19
- Добавлена информация о пользователе, создавшем портфель, в WebSocket API в подписку на список доступных портфелей.
# 2023-12-13
- Из C++ интерфейса удален метод
extra()объекта портфеля; - Из C++ интерфейса удалена структура
dict_double; - Из WebSocket API удалено поле портфеля
__extra; - В C++ интерфейс для объекта портфеля добавлены методы
uf0(), ..., uf19()и методыset_uf0(), ..., set_uf19()для получения и изменения "пользовательских полей"; - В C++ интерфейс добавлена структура
user_value; - В C++ API добавлена возможность итерирования по финансовым инструментам портфеля (методы объекта портфеля
restart_sec_iter(),has_next_sec(),next_sec()); - В WebSocket API добавлены поля портфеля
uf0, ..., uf19.
# 2022-06-22
- В FIX подключениях к фондовому и валютному рынкам Московской биржи снято ограничение на число заявок, выставляемых за торговую сессию, связанное с длинными клиентскими кодами;
- Подключения к Binance переведены на потоки раздачи стаканов с меньшей "нарезкой".
# 2022-06-15
- В C++ интерфейс добавлены методы min_step() и lot_round() для объекта финансового инструмента;
- В C++ интерфейс добавлены методы funding_rate() и funding_time() для объекта финансового инструмента (для некоторых бирж).
# 2022-02-03
- Добавлена возможность подключения к бирже Deribit с быстрой маркетдатой. Для этого потребуется пересоздать торговое подключение к Deribit;
- Изменено поведение всех маркетдата подключений требующих авторизацию (Exante FIX, LMAX FIX, Bequant FIX, Deribit). Все эти маркетдата подключения добавляются вместе с соответствующим торговым подключением, а потому включаться и отключаться они тоже будут только вместе с торговым подключением;
- В C++ интерфейс добавлен метод extra() для объекта портфеля;
- В C++ интерфейс добавлена возможность вывода сообщений в лог (функции log_*);
- В меню "Action" на главной странице робота добавлена функция To0;
- В WebSocket API добавлено поле портфеля __extra для возможности сохранения пользовательских настроек.