MQL4 - automated forex trading   /  

Форум

Ошибка 146 ("Торговый поток занят")

К списку тем Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
8
kuki 23.05.2007 10:54 

Не подскажите такой вопрос. Эта ошибка вызывает остановку советника или нет. Пытался смоделировать эту ошибку на демо, но так и не удалось.
Просто довольно громоздкий советник и вставлять полную обработку проверки открытого потока не очень просто. Вот и возник вопрос - если эта ошибка приводит только к тому, что ордер не отправляется, но советник не виснет, то можно просто обойтись периодической отправкой ордера, скажем через 30 секунд. Или все таки советник останавливается сразу после этой ошибки.
Извините, если это где есть. Но честно долго искал, но конкретного ответа не нашел.

article

Отчет о заседании Жюри 10 октября 2007 года

На заседании Жюри обсуждался вопрос о дисквалификации нескольких Участников, нарушающих Правила Чемпионата. Шесть экспертов сняты с дистанции.


avatar
132
PSmith 23.05.2007 11:22 
Порядок работы советников описан здесь http://docs.mql4.com/ru/runtime/start
По поводу прерывания работы советника

Отсоединение программы от графика, смена финансового инструмента и/или периода графика, смена счета, закрытие графика, а также завершение работы клиентского терминала прерывает выполнение программы.

Т.о. при ошибке start() завершается, но при появлении очередного тика опять вызывается.
Как показал опыт, обработка постановки отложенного ордера занимает ~5-10 секунд (Celeron M 1.6 MGz, 512 Mb, канал 128 kB/c).

avatar
13989
komposter 23.05.2007 13:54 
Ошибка 146 ("Торговый поток занят") и как с ней бороться [ en ]

Статья посвящена бесконфликтной торговле нескольких экспертов на одном терминале МТ 4 и рассчитана на пользователя, обладающего базовыми навыками работы с терминалом и программирования на MQL4.


avatar
13989
komposter 23.05.2007 13:57 
kuki писал (а):

Вот и возник вопрос - если эта ошибка приводит только к тому, что ордер не отправляется, но советник не виснет, то можно просто обойтись периодической отправкой ордера, скажем через 30 секунд. Или все таки советник останавливается сразу после этой ошибки.

Советник не останавливается.
Но простой повтор через 30 сек. не решит проблемы - при одновременной работе 5-10-20 экспертов они просто не смогут торговать.

avatar
8
kuki 23.05.2007 14:26 
komposter писал (а):
kuki писал (а):

Вот и возник вопрос - если эта ошибка приводит только к тому, что ордер не отправляется, но советник не виснет, то можно просто обойтись периодической отправкой ордера, скажем через 30 секунд. Или все таки советник останавливается сразу после этой ошибки.

Советник не останавливается.
Но простой повтор через 30 сек. не решит проблемы - при одновременной работе 5-10-20 экспертов они просто не смогут торговать.

у меня сигнал в начале часа. Плюс-минус несколько пипсов погоды не делают. Просто если есть сигнал, то нужно открыться пусть и через пять минут. В работе 5 советников. Там просто очень сложная система условий. Просто очень много блоков добавлялось в процессе тестирования.  Я под нее уже сделал цикл на несколько повторов через 15 секунд в случае неудачного открытия позиции. Провозился немеренно времени и теперь пугает сама мысль пройти это поновой с проверкой на занятость торгового потока. Поставил на демо на тест с выводом через алерт каждогй попытки открытия. Посмотрю как будет работать цикл отсылки ордеров. Если не получиться тогда прийдется делать так как в статье.  А статья очень толковая спору нет, жалко что только увидел ее когда уже сделал повторную отправку ордеров.

avatar
13989
komposter 23.05.2007 15:14 
kuki писал (а):
у меня сигнал в начале часа. Плюс-минус несколько пипсов погоды не делают. Просто если есть сигнал, то нужно открыться пусть и через пять минут. В работе 5 советников.
Если все 5 советников (да, 5 это не много) в начале часа ломанутся открывать позиции, откроется только один (у четверых будет ошибка).
Через 15 секунд - ещё один (ещё 3 ошибки).
Ещё через 15 - ещё один (и ещё 2 ошибки).
Последний откроется через минуту (да, это тоже не много).

Итого - 10 ошибок в течении минуты. Зачем?

Согласен, я описал худший вариант, в реале такого может и не быть. Но всё равно я считаю, что это неправильный подход.

kuki писал (а):
Если не получиться тогда прийдется делать так как в статье.

Интегрировать библиотеку из статьи в эксперта - 15 минут работы.
А потом целая вечность спокойствия =)

avatar
8
kuki 23.05.2007 15:19 
komposter писал (а):
kuki писал (а):
у меня сигнал в начале часа. Плюс-минус несколько пипсов погоды не делают. Просто если есть сигнал, то нужно открыться пусть и через пять минут. В работе 5 советников.
Если все 5 советников (да, 5 это не много) в начале часа ломанутся открывать позиции, откроется только один (у четверых будет ошибка).
Через 15 секунд - ещё один (ещё 3 ошибки).
Ещё через 15 - ещё один (и ещё 2 ошибки).
Последний откроется через минуту (да, это тоже не много).

Итого - 10 ошибок в течении минуты. Зачем?

Согласен, я описал худший вариант, в реале такого может и не быть. Но всё равно я считаю, что это неправильный подход.

kuki писал (а):
Если не получиться тогда прийдется делать так как в статье.

Интегрировать библиотеку из статьи в эксперта - 15 минут работы.
А потом целая вечность спокойствия =)
согласен.
К списку тем  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий