Нужен совет по организации учета ордеров - страница 2

 
Обычно брокер записывает в комментарий к ордеру причину закрытия. Использовать магик хорошее решение. Как то давно уже у разработчиков просили ещё одно поле добавить как раз для вот таких ситуаций, но что то не желают, а было бы так удобно.
 
Alexey Valeev:
Обычно брокер записывает в комментарий к ордеру причину закрытия. Использовать магик хорошее решение. Как то давно уже у разработчиков просили ещё одно поле добавить как раз для вот таких ситуаций, но что то не желают, а было бы так удобно.

Мне, кстати, понравилось решение у одного известного брокера в его REST API. Поле Client Extensions называется. В него можно записать не просто число, а три различных строки. В итоге степеней свободы становится в разы больше. Причем после первой записи значения его можно изменять.

 
Ihor Herasko:

Очень даже вариант.

Во-первых, в предлагаемом решении MagicNumber не генерируется (в смысле не создание рандомно), а рассчитывается. В это поле включается: 

  1. ID ордеров эксперта
  2. Индекс сетки.
  3. Индекс ордера в сетке.

Таким образом, само значение поля может случайно совпасть с Magic Number другого советника, но ведь идентификация ордера будет происходить не по полному значению поля, а только по его части. То есть совпасть должна именно часть поля, что еще больше уменьшает вероятность случайного совпадения, т. к. для этого у другого советника должен быть аналогичный принцип расчета значения поля. А такой советник (по чистой случайности  :))) ) будет разработан тем же разработчиком. Если не сможете сами себя проконтролировать, то да, не вариант. В этом случае вообще о программах говорить не приходится ))

Во-вторых, ID ордеров эксперта требуется только в том случае, если нужно запустить два и более экспертов на одном символе. Если же на одном символе работает только один эксперт, то проблема идентификации ордеров вообще не стоит.

В-третьих, сами для себя навсегда запоминаете (и своим клиентам постоянно напоминаете) о том, что при запуске двух и более экспертов на одном символе нужно обязательно указывать разные идентификаторы для экспертов. В своих экспертах иногда делаю даже специальный функционал, который автоматически проверяет используемые MagicNumber у работающих на этом же символе экспертов. Имеется в виду, что другие эксперты тоже так делают. Для сторонних разработок такую проверку, к сожалению, не сделать. Но со сторонними разработками вообще беда. Есть такие эксперты, которые все ордера считают своими. Здесь защита от дурака никак не сработает.

Благодарю развернутый ответ. Я понял :)

Под словом генерируется я именно расчет и подразумевал, просто неправильно выразился.

 
Ihor Herasko:

Мне, кстати, понравилось решение у одного известного брокера в его REST API. Поле Client Extensions называется. В него можно записать не просто число, а три различных строки. В итоге степеней свободы становится в разы больше. Причем после первой записи значения его можно изменять.

Это было бы вообще идеально. Я с апи одного двоичного брокера работал, так там если мне память не изменяет тоже нечто подобное было.
 
А вот просто интересно. Если комментарий не желательно использовать в торговых алгоритмах, он может быть затерт при первом-же частичном закрытии, например, то для чего нужна возможность задавать его в OrderSend? Какую информацию можно положить в комментарий с помощью OrderSend, что бы эта возможность считалась использованной по назначению?
 
Maks_Knyazev:
Бывает заказчики просят туда что-нибудь писать, можно указывать по какой причине он был открыт и т.п.
 
Maks_Knyazev:
А вот просто интересно. Если комментарий не желательно использовать в торговых алгоритмах, он может быть затерт при первом-же частичном закрытии, например, то для чего нужна возможность задавать его в OrderSend? Какую информацию можно положить в комментарий с помощью OrderSend, что бы эта возможность считалась использованной по назначению?

Да, по факту получается, что заполнять его программно бесполезно, т. к. нет гарантии сохранности информации. А вот анализировать его приходится. Особенно, когда имеешь дело с частичными и встречными закрытиями. В таких случаях это поле содержит информацию об ордерах, связанных с этим ордером.

Причина обращения: