Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Как протестировать программу перед покупкой?
Igor Kim
2739
Igor Kim 2007.05.24 08:21 
Позой, позицией я называю торговые операции OP_BUY и OP_SELL.
Ордерами я называю торговые операции OP_BUYLIMIT, OP_BUYSTOP, OP_SELLLIMIT и OP_SELLSTOP.

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

Мне нужна идея, как определить, что текущая поза раньше была ордером.
Иван
1127
Иван 2007.05.24 08:33  

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

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

timbo
3139
timbo 2007.05.24 09:10  
Писать-читать комментарии?
Владимир
1402
Владимир 2007.05.24 09:23  
timbo:
Писать-читать комментарии?

Существует мнение, что к комментариям привязываться не стоит - не надежно??? 
timbo
3139
timbo 2007.05.24 09:33  
Moжет и ненадежно, но если больше ничего нет...
ANDREAS BOURINARIS
278
ANDREAS BOURINARIS 2007.05.24 09:39  
KimIV:
Мне нужна идея, как определить, что текущая поза раньше была ордером.
Если отложенники ставит эксперт, то оптимально по "мэджику".
В противном случае вести реестр "тикетов" имеющихся ордеров, фиксируя какие из них изначально были отложенниками (естественно это тоже экспертом отслеживать). Но такой способ ИМХО намного геморнее.
Igor Kim
2739
Igor Kim 2007.05.24 09:57  

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

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

Александр
473
Александр 2007.05.24 10:16  
KimIV, а чем не устраивает magic number?
Иван
1127
Иван 2007.05.24 10:51  
KimIV:

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

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


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

Нормального варианта не вижу...
ANDREAS BOURINARIS
278
ANDREAS BOURINARIS 2007.05.24 10:57  
KimIV:

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

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