Получается, что сниматься он должен именно в указанные дату/время экспирации, и тогда OrderCloseTime не может быть больше.
Вроде, это фича тестера. Если сделать OrderDelete, то ClosePrice будет равен следующему бару. Это в каком-то смысле и логично, потому что неизвестно, в какое время текущего бара шло удаление.
Для Expiration эту фичу отключать нельзя, т.к. на момент наступления бара, который равен Expiration, ордер на Open-цене исполниться может.
Вроде, это фича тестера. Если сделать OrderDelete, то ClosePrice будет равен следующему бару. Это в каком-то смысле и логично, потому что неизвестно, в какое время текущего бара шло удаление.
Для Expiration эту фичу отключать нельзя, т.к. на момент наступления бара, который равен Expiration, ордер на Open-цене исполниться может.
Экспирацию осуществляет торговый сервер. При этом отложенник может висеть на третьей стороне.
В момент экспирации отложенник может зафиллиться на третьей стороне, хоть процесс удаления по экспирации торговым сервером уже запущен. Просто торговый сервер получит отлуп на свою попытку удаления отложенника. Поэтому и для тестера такая логика вполне уместна.
Согласно логам получается, что OrderCloseTime для таких ордеров на 1 бар позже срока экспирации (тестирование по ценам открытия на H1).
В режиме теста "По ценам открытия" все операции будут иметь время начала следующего бара после фактического исполнения операции, т. к. в этом режиме на один бар приходится только один тик. Проверьте в режиме "Все тики" - там все будет точно.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прогнал в тестере эксперт, который выставляет отложенные ордера. Для них задается срок экспирации. После автоматического истечения ордеров распечатываю их с помощью OrderPrint. Согласно логам получается, что OrderCloseTime для таких ордеров на 1 бар позже срока экспирации (тестирование по ценам открытия на H1). Отсюда вопрос: значит ли, что дата истечения на самом деле указывает последнее время действия ордера? Тогда наблюдаемое поведение правильно, но документация неточна. Если же время истечения - это именно время, когда ордер нужно снимать, то тогда имхо время закрытия должно с ним совпадать. Получается баг.
В документации сейчас написано:
Если до этого времени ордер не сработает, он будет удален автоматически.
Получается, что сниматься он должен именно в указанные дату/время экспирации, и тогда OrderCloseTime не может быть больше.
Часть лога для примера:
#1 2016.09.01 00:00:00 buy stop 0.01 GBPJPY 136.265 135.856 0.000 2016.09.01 03:00:00 135.722 0.00 0.00 0.00 expiration 0 expiration 2016.09.01 02:00
Красным подчеркнуто время удаления, синим - время истечения.