Ну, во-первых, торгующих агентов у меня всего 10. А во-вторых, специально я размеры позиций не сверяю. Я поглядываю, конечно, что-там происходит, потому что могут происходить какие-то внештатные ситуации, вылезать баги и тд. При этом возникновение позиции, которую не видит ТСлаб - это только одна из возможных, причем, имхо, не самых вероятных проблем. Так что приглядывать за работой агентов придется все равно.

Я, кстати говоря, сталкивался с ситуацией, когда тслаб неверно рассчитывал размер позиции. Она у него удваивалась. То есть позиция открывалась, допустим, на 10 лотов, но в кокой-то момент он решал что на 20 лотов. После обращения в тех поддержку баг пофиксили. Заняло это, правда, полгода. Мне кажется, могли бы и быстрее исправить (


про то как организовать сверку:

1. Если бы каждый агент работал на отдельном счете или хотя бы на этом счете не было бы агентов работающих с теми же инструментами, то можно было бы сравнивать баланс по инструменту на счете и размер позиции которую ведет агент. Через АПИ баланс по инструменту доступен через ISecurityRt.BalanceQuantity есть ли он в кубиках не знаю. Соответственно если они не совпадают, то можно выводить соответствующее сообщение в лог с трансляцией сообщения через менеджер уведомлений куда надо. Если идея распихать агенты по разным счетам вас не пугает - это самый простой вариант.

2. Если на одном счету много агентов то ситуация усложняется тем, что каждый из них видит только свою позицию. В тслаб есть возможность передачи данных между агентами через кеш программы. Через кубики тоже можно, хотя названия кубика я не знаю. Соответственно, нужно, в каждый агент добавить блок сохраняющий размер позиции в кеш и создать отдельный агент который будет из кэша размеры позиций считывать, складывать, а дальше все как в пункте №1.

У меня по подобному принципу работает агент, собирающий с других агентов данные о результатах их работы и записывающий данные в красивую табличку excel.

В варианте номер два я, правда, вижу две проблемы:
1. Агенты узнают о размере позиции с запаздыванием. Например, вы торгуете на часовиках и сделка совершена в 15:10. Агент увидит и передаст ее размер в кеш только на следующем пересчете в 16:00.
2. Не уверен что это реально собрать в кубиках. Хотя, глядя на опционные скрипты, я готов в это поверить.


Отредактировано OldMo (Thu Nov 07 2019 11:26 PM)