Как узнать, что поза была ордером?

 
Позой, позицией я называю торговые операции OP_BUY и OP_SELL.
Ордерами я называю торговые операции OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT и OP_SELLSTOP.

Например, есть открытая поза бай (торговая операция OP_BUY). Она могла получиться тремя способами:
1. Открыли по рыночной цене OP_BUY,
2. Сработал ордер OP_BUYLIMIT,
3. Сработал ордер OP_BUYSTOP.

Мне нужна идея, как определить, что текущая поза раньше была ордером.
 

Скорее всего это невозможно так как информация об этом на сервере не хранится. Если только просто в советнике делать свой учёт ордеров, а затем сравнивать предыдущее состояние с текущим. И если из отложников ордер убыл и появился в позах при этом цена открытия позы лежит близко к цене открытия отложника, то можно делать заключение что это именно данный отложних сработал.

PS: Какую-то информацию можно записывать и в магикнамбер отложника, разработав свою классификацию.

 
Писать-читать комментарии?
 
timbo:
Писать-читать комментарии?

Существует мнение, что к комментариям привязываться не стоит - не надежно??? 
 
Moжет и ненадежно, но если больше ничего нет...
 
KimIV:
Мне нужна идея, как определить, что текущая поза раньше была ордером.
Если отложенники ставит эксперт, то оптимально по "мэджику".
В противном случае вести реестр "тикетов" имеющихся ордеров, фиксируя какие из них изначально были отложенниками (естественно это тоже экспертом отслеживать). Но такой способ ИМХО намного геморнее.
 

Немного уточню задачу.

Момент срабатывания ордера я ловлю без проблем путём постоянного мониторинга. Мне же нужно по имеющейся позе, а имеется она уже давно, может час, а может и несколько дней, может советник перезагружался в промежутках. Так вот по имеющейся позе нужно ответить на вопрос, а была ли поза ордером в прошлой жизни?

 
KimIV, а чем не устраивает magic number?
 
KimIV:

Немного уточню задачу.

Момент срабатывания ордера я ловлю без проблем путём постоянного мониторинга. Мне же нужно по имеющейся позе, а имеется она уже давно, может час, а может и несколько дней, может советник перезагружался в промежутках. Так вот по имеющейся позе нужно ответить на вопрос, а была ли поза ордером в прошлой жизни?


Если никаких предварительных ухищрений советником заблаговременно не было сделано то этот вопрос не имеет решения.
 
KimIV:
Мне нужна идея, как определить, что текущая поза раньше была ордером.
Кажется, никак.
Надо, отслеживая момент срабатывания (это уже делается, правильно?), сохранять тикет ордера в массив "бывших отложенников".
Чтоб не терять информацию при перезапуске, всё сливать в файл.

Нормального варианта не вижу...
 
KimIV:

Момент срабатывания ордера я ловлю без проблем путём постоянного мониторинга. Мне же нужно по имеющейся позе, а имеется она уже давно, может час, а может и несколько дней, может советник перезагружался в промежутках. Так вот по имеющейся позе нужно ответить на вопрос, а была ли поза ордером в прошлой жизни?

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