Other

Decimal

Путь в Local Pack include/base/decimal.h

Класс Decimal используется для проведения вычислений с большой точностью и представления цен (для удобства имеет синоним Price).

Есть возможность получать значение в виде double с помощью метода get_double().

Внимание: в С++ напрямую выводить Decimal в cout/cerr/printf нельзя, однако можно воспользоваться нашими потоками вывода. В Python работает вывод с помощью print.

JsonValue

Путь в Local Pack include/base/json.h

Формат данных JSON подробно описан здесь: https://ru.wikipedia.org/wiki/JSON. В нашей реализации вы можете изменять конфиг вашей стратегии в .json файле.

Для получения значения переменной в стратегии нужно воспользоваться методом "as".

Этот класс используется только в C++, в Python используется стандартная реализация (dict).

Методы

Имя Описание
as() Получение значения из JsonValue.

Описание методов

as()

Преобразует json-значение в значение заданного типа и возвращает его. Пример использования для получения объекта типа string — config["имя_поля_в_json"].as<std::string>().

Есть возможность задавать значение по умолчанию в скобках (оно будет использовано, если в конфиге нет такого поля):

  • config["имя_поля_в_json"].as<std::string>("строка_по_умолчанию").
  • config["time"].as<Microseconds>(10us).

Amount

Путь в Local Pack include/base/constants.h

Синоним int32_t для повышения читабельности кода. Этот синоним используется только в C++.

Price

Путь в Local Pack include/base/constants.h

Синоним класса Decimal, про него можно прочитать здесь: https://docs.hftbattle.com/ru/api/Other.html#decimal.

Id

Путь в Local Pack include/base/constants.h

Числовой идентификатор, синоним uint64_t. Этот синоним используется только в C++.

Microseconds

Путь в Local Pack include/base/constants.h

Синоним std::chrono::microseconds. Подробнее читайте здесь: http://en.cppreference.com/w/cpp/chrono/duration.

Этот класс используется только в C++, в Python используется стандартный тип int.

Logs

Путь в Local Pack include/base/log.h

Для удобного вывода информации о поведении стратегии, рекомендуем воспользоваться выводом с помощью потоков логирования. Они позволяют быстро переключать уровень подробности записей: при необходимости можно включить максимально детальный уровень логирования или, наоборот, выводить только самые важные записи. Также они автоматически записывают свой вывод в файл.

Приведём пример использования данного метода. Выведем среднюю цену с помощью потока вывода SCREEN().

C++
SCREEN() << order_book.middle_price();

LogLevel

Путь в Local Pack include/base/log.h

Данный enum отвечает за уровень логирования. Каждому уровню соответствует поток вывода. Например, уровню логирования Error соответствует поток вывода ERROR().

Допустим, вы хотите выбрать уровень логирования Error. Тогда необходимо в файле конфигурации стратегии установить поле "log_level": "error". При этом работать будут и потоки вывода SCREEN() и FATAL().

Замечание 1: потоки вывода уровня Error и ниже выводятся исключительно в файл, а SCREEN() и FATAL() также выводятся и на экран.

Замечание 2: поток вывода FATAL завершает работу программы. Используйте его с особой осторожностью.

results matching ""

    No results matching ""