Правильно ли полагать, что: 1. Взаимное закрытие ордеров происходит автоматически без вмешательства маркет-мейкера? 2. Модификация открытых ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера? 3. Удаление и модификация отложенных ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
Правильно ли полагать, что: 1. Взаимное закрытие ордеров происходит автоматически без вмешательства маркет-мейкера? 2. Модификация открытых ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера? 3. Удаление и модификация отложенных ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
не правильно. надо спрашивать у конкретного брокера, как обрабатываются приказы. автоматическая обработка допускается. но даже на нашем демо-сервере автомат иногда отключают и проводят ручные подтверждения
Следует ли считать, что то же касается автоматической подтяжки ТрейлингСтоп? Существуют ли вообще различия для маркет-мейкера по источникам формирования упраляющего воздействия (советник или МТ)?
Slawa, Вы часто помогаете мне определиться с важными деталями поэтому позволю себе обратиться к Вам лично. Если в одном окне работают одновременно советник и скрипт, в случае, если они приблизительно в одно время подают на сервер приказы о модификации: - советник модифициует Бай в момент t_о, Sovet=OrderModify(..) - скрипт модифициует БайЛимит в момент t_o +1ms, Script=OrderModify(..) Дальнейшие события: -сервер возвращает ИСТИНА по факту успешного исполнения модификации (мне не известно какого) ордера, (какая из переменных обретёт значение ИСТИНА - Sovet или Script ?) а через 1 мс.. -сервер возвращает ЛОЖЬ по факту успешного исполнения модификации (мне не известно какого) ордера
Вопрос. 1. Правильно ли считать, что запросы на сервер сконтруированы таким образом, что являются именованными и поставленные им в соответствие ответы сервера не перепутаются, а каждый из ответов попадёт на возвращение в свой OrderModify() ? 2. Если нет, то существует ли какой-нибудь штатный способ различать ответы сервера? (кроме практики создания очередного приказа после получения ответа на предыдущий)?
(у меня есть ещё несколько подобных вопросов; если не критично, то прошу ответить на форуме MQL4, вопрос там продублирован, и если можно, вести обсуждение там, поскольку там удобнее представлять коды)
цитата из нового словаря === Для проведения торговых операций из экспертов и скриптов предусмотрен всего один поток, который запускается в программном торговом контексте. Поэтому, если этот контекст занят торговой операцией какого-либо эксперта, то другой эксперт или скрипт не может в этот момент вызывать торговые функции из-за ошибки 146 (ERR_TRADE_CONTEXT_BUSY). Для определения возможности выполнять торговые операции необходимо использовать функцию IsTradeAllowed(). Для чёткого разделения доступа к торговому контексту можно использовать семафор на основе глобальной переменной, значение которой необходимо менять при помощи функции GlobalVariableSetOnCondition(). === Вы не сможете одновременно торговать несколькими экспертами (или экспертом и скриптом). в ветке "ошибка № 6" приведён пример разруливания ситуации через семафор
Slawa, спасибо за ответ. Очень важные сведения. Кое-что проясняется.
Но есть ещё вопросы. Оказывает ли влияние то, что
Для проведения торговых операций из экспертов и скриптов предусмотрен всего один поток..
на исполнение ордеров в одном советнике или скрипте по след. схемам?:
а=OrderModify(..номер1);
в=OrderModify(..номер2);
OrderModify(..номер1);
OrderModify(..номер2);
Правильно ли считать, что: - в первом примере OrderModify(..номер2) не начнёт исполняться до тех пор, пока не исполнится оператор присваиванияа= после получения ответа сервера на OrderModify(..номер1)? - во втором примере OrderModify(..номер2) начнёт исполняться немедленно, не дожидаясь ответа сервера на OrderModify(..номер1)?
в обоих случаях запуск функций будет последовательным. в отличие от тройки, сейчас все функции (имеются в виду прежде всего торговые функции) синхронны
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
1. Взаимное закрытие ордеров происходит автоматически без вмешательства маркет-мейкера?
2. Модификация открытых ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
3. Удаление и модификация отложенных ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
1. Взаимное закрытие ордеров происходит автоматически без вмешательства маркет-мейкера?
2. Модификация открытых ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
3. Удаление и модификация отложенных ордеров ( в случае соблюдения принятых дистанций ) происходит автоматически без вмешательства маркет-мейкера?
не правильно. надо спрашивать у конкретного брокера, как обрабатываются приказы. автоматическая обработка допускается. но даже на нашем демо-сервере автомат иногда отключают и проводят ручные подтверждения
большое спасибо за ясный ответ.
Следует ли считать, что то же касается автоматической подтяжки ТрейлингСтоп?
Существуют ли вообще различия для маркет-мейкера по источникам формирования упраляющего воздействия (советник или МТ)?
2) относительно медленно работает обращение к элементам массива. это можно ускорить только громоздкими конструкциями или ещё как-то?
static int know; static double caa,cbb,ccc,cdd,cee,cff, cgg; if(b-know!=0){ if (b-know==1){ caa=cbb; cbb=ccc; ccc=cdd; cdd=cee; cee=cff; cff=cgg; cgg=Close[b+6];/*vzad po istorii*/ }else if (b-know==-1){ cgg=cff; cff=cee; cee=cdd; cdd=ccc; ccc=cbb; cbb=caa; caa=Close[b]; /*vperjod*/ }else{ caa=Close[b]; cbb=Close[b+1]; ccc=Close[b+2]; cdd=Close[b+3]; cee=Close[b+4]; cff=Close[b+5];cgg=Close[b+6];} know=b; }ещё раз спасибо. Более, чем понятно.
Myxu,
попробуй использовать ArrayCopy();
Если в одном окне работают одновременно советник и скрипт, в случае, если они приблизительно в одно время подают на сервер приказы о модификации:
- советник модифициует Бай в момент t_о, Sovet=OrderModify(..)
- скрипт модифициует БайЛимит в момент t_o +1ms, Script=OrderModify(..)
Дальнейшие события:
-сервер возвращает ИСТИНА по факту успешного исполнения модификации (мне не известно какого) ордера,
(какая из переменных обретёт значение ИСТИНА - Sovet или Script ?)
а через 1 мс..
-сервер возвращает ЛОЖЬ по факту успешного исполнения модификации (мне не известно какого) ордера
Вопрос.
1. Правильно ли считать, что запросы на сервер сконтруированы таким образом, что являются именованными и поставленные им в соответствие ответы сервера не перепутаются, а каждый из ответов попадёт на возвращение в свой OrderModify() ?
2. Если нет, то существует ли какой-нибудь штатный способ различать ответы сервера? (кроме практики создания очередного приказа после получения ответа на предыдущий)?
(у меня есть ещё несколько подобных вопросов; если не критично, то прошу ответить на форуме MQL4, вопрос там продублирован, и если можно, вести обсуждение там, поскольку там удобнее представлять коды)
===
Для проведения торговых операций из экспертов и скриптов предусмотрен всего один поток, который запускается в программном торговом контексте. Поэтому, если этот контекст занят торговой операцией какого-либо эксперта, то другой эксперт или скрипт не может в этот момент вызывать торговые функции из-за ошибки 146 (ERR_TRADE_CONTEXT_BUSY). Для определения возможности выполнять торговые операции необходимо использовать функцию IsTradeAllowed(). Для чёткого разделения доступа к торговому контексту можно использовать семафор на основе глобальной переменной, значение которой необходимо менять при помощи функции GlobalVariableSetOnCondition().
===
Вы не сможете одновременно торговать несколькими экспертами (или экспертом и скриптом). в ветке "ошибка № 6" приведён пример разруливания ситуации через семафор
спасибо за ответ. Очень важные сведения. Кое-что проясняется.
Но есть ещё вопросы.
Оказывает ли влияние то, что
на исполнение ордеров в одном советнике или скрипте по след. схемам?:
Правильно ли считать, что:
- в первом примере OrderModify(..номер2) не начнёт исполняться до тех пор, пока не исполнится оператор присваивания а= после получения ответа сервера на OrderModify(..номер1)?
- во втором примере OrderModify(..номер2) начнёт исполняться немедленно, не дожидаясь ответа сервера на OrderModify(..номер1)?