Здравствуйте,
скажите-подскажите, есть ли какой-нибудь инструмент для МТ4 (скрипт, индикатор или советник), который умеет фиксировать в логах проскальзывания ордеров, открываемых другим советником (или вручную)?
Дык. В логах итак это записано.
Нет, не пишет
0 23:57:00.779 '71820': order sell market 0.02 USDCAD.ecn sl: 0.00000 tp: 0.00000
0 23:57:01.029 '71820': order was opened : #7001119 sell 0.02 USDCAD.ecn at 1.34352 sl: 0.00000 tp: 0.00000
Будет писать, если режим исполнения у брокера Instant execution. Как видно по логу, у меня Market execution
Здравствуйте,
скажите-подскажите, есть ли какой-нибудь инструмент для МТ4 (скрипт, индикатор или советник), который умеет фиксировать в логах проскальзывания ордеров, открываемых другим советником (или вручную)?
При маркет-исполнении, для отслеживания проскольза нужно каким-то образом фиксировать цену запроса (чтобы сравнивать ее с ценой исполнения).
Значит, дорабатывать советников и придумывать какой-то считыватель цены в момент клика мышки по кнопке для ручной торговли.
Иначе — никак.
Можно кое-что сделать. Писать не в лог-файлы терминала, конечно, а в свой файл протокола. И если под проскальзыванием понимать отличие курса открытия не от курса в момент отсылки запроса на открытие сделки, а от курса в момент самого открытия сделки.
1. Ведем тиковую историю по нужным инструментам на глубину 5 минут (время, Bid, Ask). По ней можно определить курсы Бид и Аск в любой момент за эти 5 минут.
2. По этим же инструментам держим список последних учтенных номеров тикетов сделок на этом счете.
3. Раз в секунду или с другой нужной частотой опрашиваем историю на предмет появления сделок с номерами тикетов, большими, чем учтенные.
4. Выстраиваем новые сделки в порядке возрастания времени открытия (упорядочиваем массив номеров тикетов по возрастанию). Необязательно, но все же.
5. По очереди заносим в свой протокол данные об имевших место курсах в момент открытия и самом курсе открытия, их разницу (проскальзывание).
Повторюсь, это будет проскальзывание не относительно курсов в момент отсылки запроса на сервер, а в момент исполнения запроса на открытие.
Повторюсь, это будет проскальзывание не относительно курсов в момент отсылки запроса на сервер, а в момент исполнения запроса на открытие.
Если все сделать правильно, курс в момент исполнения будет совпадать с ценой исполнения. Какой в этом смысл?
Советник отправляет приказ на открытие бай по 1.2345. Но ордер исполняется по 1.2350 (именно эта котировка должна прийти вместе с информацией об ордере, если нет рассинхронизации или задержки в доставке той или иной информации).
Нужно узнать разницу между тем, что хотели (1.2345), и тем, что получили (1.2350). Она составит -5 пунктов.
Если все сделать правильно, курс в момент исполнения будет совпадать с ценой исполнения. Какой в этом смысл?
Если брокер ведет себя правильно, Вы хотели сказать. Так ведь? Забудем пока об имеющемся систематическом отставании котировок в терминале от котировок на сервере на половину пинга.
Бороться с систематическим проскальзыванием в худшую для клиента сторону нечем, но узнать об этом вовремя было бы полезно.
У меня ситуация проще, сам советник и отсылает приказы, и пишет в протокол, какой при этом был курс, и протоколирует проскальзывания. От некоторых компаний пришлось сразу отказаться, поскольку они вообще не грешили проскальзыванием в пользу клиента.
Это важный показатель. Собственно, даже на этом форуме среди комплектов характеристик сигналов есть закладка "Проскальзывание". Вообще-то они характеризуют не только брокера, но и торговую систему. Если она основана на прогнозах до 5 секунд вперед, то проскальзывание в худшую сторону для нее естественно. Однако сравнение курса открытия с курсом в терминале в этот момент все равно остается важной характеристикой - нужно видеть, насколько нас надувают.
Вообще-то других целей протоколирования проскальзывания я, пожалуй, и назвать не смогу. А зачем еще?
сам советник и отсылает приказы, и пишет в протокол, какой при этом был курс, и протоколирует проскальзывания
Советник постоянно опрашивает журнал (WinAPI) терминала на наличие новых сообщений. Как только появляется маркет-сообщение, делается снимок Обзора рынка. Далее цены из снимка сравниваются с ценами исполнения.
Сомнительное решение с посредственной точностью (если торговля активная, а котировки шустрые).
Но вполне реализуемое.
Сомнительное решение с посредственной точностью (если торговля активная, а котировки шустрые).
Точность можно поднять (почти до 100%) через запись тиков последней секунды. И выбор из них в качестве снимка наилучшего - HighBid и LowAsk.
Отлично будет работать такая реализация.
Интересно другое - насколько востребован такой функционал?
Сам пишу цену акцепта и для отложенных ордеров в неиспользуемые поля OrderSend. Тогда на вопросы уровня проскальзываний отвечаю через анализ истории торгов.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте,
скажите-подскажите, есть ли какой-нибудь инструмент для МТ4 (скрипт, индикатор или советник), который умеет фиксировать в логах проскальзывания ордеров, открываемых другим советником (или вручную)?