Важно 10 ноября — несовместимые изменения в WebSocket API и расписании портфелей. Подробнее

#
#
История изменений

#
#
2026-11-10 Несовместимые изменения

  • Добавлена возможность настраивать расписание торговли портфеля отдельно для каждого дня недели, в связи с этим:
  • Добавлена возможность настраивать расписание рассчета значений индикаторов отдельно для каждого дня недели, в связи с этим:
    • В C++ интерфейс в объект interval добавлен новый конструктор, учитывающий дни недели;
    • В C++ интерфейс в объект schedule добавлен новый перегруженный метод is_in, учитывающий день недели.
  • В связи с удалением параметра портфеля TradingDays и с добавлением его в каждый интервал в таблице с расписанием Timetable портфеля:
    • Если данный параметр как-то использовался через WebSocket API, необходимо изменить реализацию клиентского кода, т.к. изменения в роботе НЕ сохраняют обратную совместимость;
    • Текущие настройки ВСЕХ портфелей также НЕ сохраняют обратную совместимость, во все интервалы в расписании в качестве значения Trading days по умолчанию будут проставлены все дни недели, пользователям придется самим изменить дни на нужные для всех интервалов всех портфелей.

#
#
Как перейти

#
#
WebSocket API

Поле trading_days убрано из объекта портфеля и добавлено в каждый элемент массива timetable. Формат значения не изменился: битовая маска дней недели (bitmask_select), 1 - воскресенье, 2 - понедельник, 4 - вторник, 8 - среда, 16 - четверг, 32 - пятница, 64 - суббота, значение по умолчанию 127 (все дни), описание полей смотрите в api.md и в Timetable.

На уровне портфеля:

Было Стало
{
  "trading_days": 127,
  "name": "qwe",
  "decimals": 4,
  "securities": { … },
  "timetable": [ … ],
  // …
}
{
  "name": "qwe",
  "decimals": 4,
  "securities": { … },
  "timetable": [ … ],
  // …
}

На уровне расписания (timetable):

Было Стало
{
  "begin": 36000,
  "end": 67200,
  "a_sell": 2,
  "a_buy": 2,
  "auto_close": false,
  "auto_to_market": false,
  "auto_to0": 2,
  "save_history": false
}
{
  "trading_days": 127,
  "begin": 36000,
  "end": 67200,
  "a_sell": 2,
  "a_buy": 2,
  "auto_close": false,
  "auto_to_market": false,
  "auto_to0": 2,
  "save_history": false
}

Если клиент читал или записывал 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 и 1≤trading_days≤1271 \le trading\_days \le 127, иначе будет выброшено 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≤wd≤60 \le wd \le 6 (0 - воскресенье, 1 - понедельник и т.д.); как и is_in(const day_time& dt), метод возвращает true, если расписание пусто.

#
#
2026-10-20

  • Добавлен нередактируемый параметр портфеля Pos0;
  • В C++ интерфейс добавлен метод lot_qty() для объекта финансового инструмента;
  • В C++ интерфейсе изменено поведение и описание метода lot_round() для объекта финансового инструмента.

#
#
2026-09-29

#
#
2026-09-14

  • В WebSocket API добавлен лимит в 8 одинаковых подписок на одну вебсокет сессию;
  • Добавлен параметр портфеля Calculation method, отвечающий за новый метод расчета раздвижки, в связи с этим обновлены формулы расчета Sell/Buy, Price_s/Price_b, Equal prices.

#
#
2026-08-21

#
#
2026-08-04

#
#
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

  • Отключена проверка статусов инструментов для следующих подключений: SPB, OREX, IMEX, ITS.

#
#
2026-01-14

#
#
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

#
#
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

#
#
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

#
#
2024-10-30

#
#
2024-10-17

#
#
2024-09-26

  • Из C++ интерфейса удален метод set_fin_res() объекта портфеля;
  • Из C++ интерфейса удален метод set_fin_res_wo_c() объекта портфеля.

#
#
2024-09-24

  • v_min/v_max портфеля теперь измеряются в штуках портфелей.

#
#
2024-09-16

#
#
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

#
#
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 для возможности сохранения пользовательских настроек.