Разработана библиотека функций API для MetaTrader 4 - страница 4

 
Согласно настройкам сервера котировок МТ4 - нельзя проводить операции чаще чем 1 раз в 10 секунд. Сервер ограничивает частоту различных запросов для профилактики возможных хакерских DоS-атак. Эта информация уже как-то поднималась на данном форуме.
Это не так.
Частота операций ограничена только скоростью реакции брокера =)
В МТ ограничений нет.

На форуме разработчики об этом говорили, и не раз. Но всегда честно предупреждали - вопросы с брокером будете решать сами ;)


Поэтому справедливее было бы сказать, что пауза не обязательна (в техническом смысле), но как минимум, желательна (в смысле опасности блокировки счёта).
 
Меня мнтересует простой пример, я отправляю три запроса на выставление трех ордеров, пусть с интервалом 20 секунд. А в этот время медленный рынок и между тиками интервал до двух минут. Потеряются ли первые два или в первый же тик все три исполнятся?
 
Меня мнтересует простой пример, я отправляю три запроса на выставление трех ордеров, пусть с интервалом 20 секунд. А в этот время медленный рынок и между тиками интервал до двух минут. Потеряются ли первые два или в первый же тик все три исполнятся?

Ничего не потеряется. Вам никакой задержки в программе делать не нужно. Вы запускаете функцию int NewPos(..) для первого ордера. В ней уже заложены все задержки. Если функция возвращает 0 - все в порядке - запрос исполнен. Переходим ко второму ордеру, и т.д.
При удачном исполнении функция сама сделает задержку в 10 сек., поэтому проблем с частым обращением к серверу быть не может. В ней же заложено время критического ожидания ответа терминала МТ4. Если в течении этого времени нет ответа от терминала, функция возвращает код ошибочной ситуации. Это сделано для диагностики ситуаций, связанных с отсутствием котировок, деактивацией счета, перерывах в работе Internet и т.д.
Таким образом, при возврате из функции событие уже произошло. Удачи!
 
Команды на обрабоку ордеров будут выполнятся только в момент прихода котировки для той пары на которую установлен советник. Т.е. нажатие на кнопку "BUY" в вашей программе не означает, что ордер отправлен на сервер, он "ждет на диске" пока придет котировка по той паре на которую установлен советник. Советник поищет файл-команду и если найдет отправит ордер на сервер, кстати и искать будет на каждом тике. Результат о выставлении ордера или отмене, соответственно может быть получен с приходом только следущей котировки. Это не дает возможности организовать четкую логику для некоторых ТС. Надеюсь, что это вы понимаете.


Логика ТС тут совершенно не при чем. Вопрос тут только в задержках исполнения ордеров. Но, как я уже писал, эта проблема надуманная: изменчивость котировок определяется приходящими тиками с новыми ценами. В период активной торговли приходит до 200 тиков в минуту. Поэтому в этом случае никакого запаздывания быть не может. Если Вы открываете позицию в период вялых торгов, то и изменения цен при этом практически отсутствуют, поэтому и тут ожидания тоже не оказывают большого влияния на уровень котировки.
Кроме того, мы не можем говорить тут о кнопке "BUY", т.к. обсуждаем механические торговые системы, которые сами принимают решения без какой-либо кнопки. Удачи!
 
Согласно настройкам сервера котировок МТ4 - нельзя проводить операции чаще чем 1 раз в 10 секунд.

Вообще-то так было в МетаТрейдере 3, а в МТ4 такого ограничения уже нет.
Но все равно надо знать меру и не делать много операций подряд.
 
Вообще-то так было в МетаТрейдере 3, а в МТ4 такого ограничения уже нет.
Но все равно надо знать меру и не делать много операций подряд.

Да, Вы конечно правы. Лучше, сразу предусмотреть задержку, что и сделано в разработанной библиотеке, так как, в противном случае, сервер при слишком частых запросах может заблокировать адрес пользователя с соответствующими последствиями для торговли. Удачи!
 
ВНИМАНИЕ!
Вышла новая версия библиотеки MFOREX 2.05 для использования функций API MetaTrader 4.
Ее преимущества:
1. Во время работы библиотеки не образуются временные файлы, транспорт данных происходит через разделяемые области памяти. Такое решение значительно ускоряет доступ к информации и повышает надежность работы библиотеки;
2. Дополнительно реализованы специальные функции диагностики терминала, возврата времени последнего тика и уникального кода компьютера для осуществления процесса регистрации;
3. Функция диагностики ошибочных и аварийных ситуаций возвращает код ситуации и сохраняет описание в специальном журнале на русском языке.
4. Значительно снижена цена библиотеки. Зарегистрированные пользователи старой версии получат обновления бесплатно.
Все подробности читайте на нашем сайте http://www.min2006.ru
 


К сожалению предлагаемый советник:
- не поставляет истории котировок;
- не отслеживает ошибки и аварийные ситуации;
- не дает истории торговли и списка открытых позиций;
- не позволяет получать последние котировки (в виде тиков).

В предлагаемой мной библиотеке все отсутствующие функции реализованы. Кроме этого, обмен информацией происходит через разделяемые области памяти без образования временных файлов. Все подробности читайте на сайте http://www.min2006.ru
Удачи!
 
Кстати, теперь то что предлагает Min, больше чем раньше, похоже на то, что можно купить.
Сугубое Имхо :)