Логи
Важным элементом в разработке стратегии является сбор и анализ информации, полученной по ходу торгов. Так как биржевых событий за один день может быть очень много (порядка 1-5 миллионов), возникает необходимость извлекать самые важные детали, характеристики и действия стратегии.
Здесь мы рассмотрим несколько типов логов:
Сделки и заявки стратегии
Система симуляции по умолчанию логирует все заявки и сделки вашей стратегии в файлы orders.tsv и deals.tsv соответственно. Рассмотрим формат каждого из файлов подробнее.
Список заявок
Рассмотрим для примера поля и значения одной строки из файла с заявками стратегии orders.tsv:
поле | значение | описание |
---|---|---|
action | add | действие над заявкой: add / del |
time | 2016-11-01 09:15:00.223000 | биржевое время действия |
symbol | HFTBI | название инструмента |
price | 8639 | цена заявки |
amount | 10 | объём заявки (число лотов) |
executed_amount | 10 | количество сведённых лотов |
dir | BID | направление заявки: BID — покупка / ASK — продажа |
order_meaning | Quote | смысл заявки, Quote для Limit заявок и Beat для IOC |
order_type | Limit | тип заявки: Limit / IOC |
status | added | статус операции |
reject_reason | "" | причина отказа выполнения, если есть |
order_id | 320000001 | уникальный идентификатор заявки |
Список сделок
Аналогично рассмотрим строчку из файла со сделками стратегии deals.tsv:
поле | значение | описание |
---|---|---|
time | 2016-11-01 09:15:00.223000 | биржевое время сделки |
symbol | HFTBI | название инструмента |
price | 8639 | цена сделки |
amount | 10 | объём заявки (число лотов) |
dir | BID | направление нашей заявки в сделке: BID — покупка / ASK — продажа |
order_meaning | Quote | смысл нашей заявки, Quote для Limit заявок и Beat для IOC |
our_order_status | active | статус нашей заявки |
executed_amount | 10 | сведенный объём со знаком: < 0 — продали, > 0 — купили |
approx_result | -127.5 | приблизительный общий результат после пачки одновременных сделок |
saldo | -86390 | баланс всех сделок, совершённых стратегий |
order_id_bid | 320000001 | уникальный идентификатор заявки на покупку |
order_id_ask | 300000000 | уникальный идентификатор заявки на продажу |
aggressor_side | BID | направление заявки-агрессора: BID — покупка / ASK — продажа |
Вывод информации из стратегии
Для всех посылок в тренировочном режиме доступны следующие способы вывода информации из стратегии:
- Стандартный вывод в
stdout
иstderr
. Его рекомендуется использовать для вывода небольшого объёма информации (проверки правильности задания параметров и т.п.). Логи в stdout и stderr ограничены 1 000 000 символов, 6000 строк и 1000 символов в одной строке. Логирование в файлы с помощью наших потоков вывода, например
SCREEN() <<
(только для C++):SCREEN() << "This is my awesome strategy";
Для логирования большого объёма информации рекомендуется использовать логирование в файлы с помощью потоков вывода. Подробнее про потоки вывода, вы можете прочитать здесь.
Размер ваших логов в сумме с автоматическими логами ваших заявок и сделок ограничены 1000 мегабайтами для одной симуляции.