у меня такое ощущение (я не уверен ) что Deinit() в терминале под-тормаживает то есть если индюк удален..... и переключаться между тайм фреймами то спустя минуту он создает впечатление что он работает ..... хотя деинит срабатывать должен через 2,5 сек
P.S. "терминал не висит и приоритет нормальный " индикатор этот https://www.mql5.com/ru/code/10198 вроде код правильный
А вообще стоит ли в ините ставить так ?? слип 500 или еще больше ???
int init()
{
sleep(500); // для разгрузки проца даем 0,5 секreturn(0);
}
С того момента как обновилась версия МТ сталкиваюсь с тем что скрипт перестает следовать алгоритму, а именно модифицирует через раз, стопы и профит автоматом не ставит. У кого-нибудь есть такая проблема или это только у меня?
ruslanchik:
у меня такое ощущение (я не уверен ) что Deinit() в терминале под-тормаживает то есть если индюк удален..... и переключаться между тайм фреймами то спустя минуту он создает впечатление что он работает ..... хотя деинит срабатывать должен через 2,5 сек
P.S. "терминал не висит и приоритет нормальный " индикатор этот https://www.mql5.com/ru/code/10198 вроде код правильный
А вообще стоит ли в ините ставить так ?? слип 500 или еще больше ???
Ни в ините, ни в деините не нужно ставить слипов. Если это индикатор, то любые тормоза в коде должны быть исключены в принципе.
Эксперты работают в собственном потоке и им тоже не нужны слипы, а надо штатно отрабатывать OnTick и выходить. Если пишутся зацикленные эксперты, то все остается на совести программиста.
Выяснить время срабатывания очень легко. Поставьте принты с выводом точного времени и готово.
С того момента как обновилась версия МТ сталкиваюсь с тем что скрипт перестает следовать алгоритму, а именно модифицирует через раз, стопы и профит автоматом не ставит. У кого-нибудь есть такая проблема или это только у меня?
Это уже традиция повелась - на выходе любого нового билда люди грешат на терминал, хотя все элементарно проверить по логам.
Renat: Это уже традиция повелась - на выходе любого нового билда люди грешат на терминал, хотя все элементарно проверить по логам.
У меня факт "на лицо" я открываю ордер и у меня скрипт не устанавливает стоп и профит. А раньше все работало как часы. Сегодня специально тестировал и вот результат:
Лог (при бай все сработало, при селл не срабатывает):
17:42:10 MetaTrader build 432 started (Alpari NZ Limited) 17:42:13 Expert Robot 2012 EURUSD,H1: loaded successfully 17:42:13 Expert Script HL GBPUSD,H1: loaded successfully 17:42:15 '354452': login 17:42:16 '354452': login 17:42:17 '354452': previous successful authorization performed from --.---.---.-- 17:42:21 '354452': login 17:42:23 '354452': login 17:42:24 '354452': previous successful authorization performed from --.---.---.-- 17:56:01 Expert Robot 2012 GBPUSD,H1: loaded successfully 18:00:03 '354452': instant order buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000 18:00:03 '354452': request was accepted by server 18:00:04 '354452': request in process 18:00:04 '354452': order was opened : #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000 18:00:07 '354452': modify order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000 -> sl: 1.55740 tp: 1.57240 18:00:07 '354452': request was accepted by server 18:00:08 '354452': request in process 18:00:08 '354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 was modified -> sl: 1.55740 tp: 1.57240 18:25:28 '354452': close order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 at price 1.55901 18:25:28 '354452': request was accepted by server 18:25:29 '354452': request in process 18:25:31 '354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 closed at price 1.55901 18:25:36 '354452': instant order sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.00000 18:25:36 '354452': request was accepted by server 18:25:37 '354452': request in process 18:25:38 '354452': order was opened : #1219550519 sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.00000 18:26:12 Expert Robot 2012 GBPUSD,H1: removed
При этом Buy модифицирует, а Sell нет!!! Только что проверил:
19:49:09 '354452': instant order buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000 19:49:09 '354452': request was accepted by server 19:49:09 '354452': request in process 19:49:10 '354452': order was opened : #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000 19:49:11 '354452': modify order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000 -> sl: 1.55508 tp: 1.57008 19:49:11 '354452': request was accepted by server 19:49:12 '354452': request in process 19:49:13 '354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 was modified -> sl: 1.55508 tp: 1.57008 19:49:28 '354452': close order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 at price 1.55783 19:49:28 '354452': request was accepted by server 19:49:29 '354452': request in process 19:49:29 '354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 closed at price 1.55783 19:49:38 '354452': instant order sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 19:49:38 '354452': request was accepted by server 19:49:39 '354452': request in process 19:49:39 '354452': order was opened : #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 19:49:53 '354452': close order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 at price 1.55810 19:49:53 '354452': request was accepted by server 19:49:54 '354452': request in process 19:49:54 '354452': order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 closed at price 1.55810
Будьте добры, укажите конкретную строчку и объясните, где именно проблема. Укажите "как Вы посылали команду установки стопов" и "как эта команда не сработала".
Я проверил эти логи и не нашел никаких проблем с исполнением команд установки стопов:
17:56:01 Expert Robot 2012 GBPUSD,H1: loaded successfully
18:00:03'354452': instant order buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.0000018:00:03'354452': request was accepted by server
18:00:04'354452': request in process
18:00:04'354452': order was opened : #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000все ок
18:00:07'354452': modify order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000 -> sl: 1.55740 tp: 1.5724018:00:07'354452': request was accepted by server
18:00:08'354452': request in process
18:00:08'354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 was modified -> sl: 1.55740 tp: 1.57240все ок
18:25:28'354452': close order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 at price 1.5590118:25:28'354452': request was accepted by server
18:25:29'354452': request in process
18:25:31'354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 closed at price 1.55901все ок
18:25:36'354452': instant order sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.0000018:25:36'354452': request was accepted by server
18:25:37'354452': request in process
18:25:38'354452': order was opened : #1219550519 sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.00000все ок
18:26:12 Expert Robot 2012 GBPUSD,H1: removed
тут никаких проблем, позиция открывается, стопы ставятс и позиция закрывается.
вторая часть:
19:49:09'354452': instant order buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.0000019:49:09'354452': request was accepted by server
19:49:09'354452': request in process
19:49:10'354452': order was opened : #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000все ок19:49:11'354452': modify order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000 -> sl: 1.55508 tp: 1.5700819:49:11'354452': request was accepted by server
19:49:12'354452': request in process
19:49:13'354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 was modified -> sl: 1.55508 tp: 1.57008все ок
19:49:28'354452': close order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 at price 1.5578319:49:28'354452': request was accepted by server
19:49:29'354452': request in process
19:49:29'354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 closed at price 1.55783все ок
как и в первом случае, открылась позиция, выставились стопы и успешно закрылась позиция.
открывается новая позиция
19:49:38'354452': instant order sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.0000019:49:38'354452': request was accepted by server
19:49:39'354452': request in process
19:49:39'354452': order was opened : #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000все ок
далее никакой команды на смену стопов не поступало, а сразу идет закрытие19:49:53'354452': close order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 at price 1.5581019:49:53'354452': request was accepted by server
19:49:54'354452': request in process
19:49:54'354452': order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 closed at price 1.55810
все ок
Обратите внимание, что команды на смену стопов после открытия позиции #1219552276 не поступало, а сразу же пошла команда закрытия.
Если даже в логах нет попытки смены стопов, значит терминал тут не при чем. Скорее всего в Вашей программе есть плавающий баг/условие, которое пропускает операцию смены стопов. Видимо, это проявляется на операциях SELL.
Проверьте код на правильность цен, учет минимальных оступов и добавьте распринтовку для анализа путей исполнения, пожалуйста.
вы в FXCM срочно звоните, при чем тут этот форум?
Форум-то конечно не причем, а не корректная работа терминала или серверной части на лицо!
Пост скорее адресован разработчикам, если им это еще интересно.
вы в FXCM срочно звоните, при чем тут этот форум?
Скорее всего это проблема МТ4, сам несколько раз в прошлом сталкивался с чем-то подобным. В моем случае помог рестарт МТ4.
Форум-то конечно не причем, а не корректная работа терминала или серверной части на лицо!
Пост скорее адресован разработчикам, если им это еще интересно.
Исполнение стопов на реальных счетах полностью на стороне дилера. То есть, сервер ждет подтверждений срабатывания.
В таких случаях нужно обращаться в службу поддержки брокера.
P.S. "терминал не висит и приоритет нормальный " индикатор этот https://www.mql5.com/ru/code/10198 вроде код правильный
А вообще стоит ли в ините ставить так ?? слип 500 или еще больше ???
С того момента как обновилась версия МТ сталкиваюсь с тем что скрипт перестает следовать алгоритму, а именно модифицирует через раз, стопы и профит автоматом не ставит. У кого-нибудь есть такая проблема или это только у меня?
у меня такое ощущение (я не уверен ) что Deinit() в терминале под-тормаживает то есть если индюк удален..... и переключаться между тайм фреймами то спустя минуту он создает впечатление что он работает ..... хотя деинит срабатывать должен через 2,5 сек
P.S. "терминал не висит и приоритет нормальный " индикатор этот https://www.mql5.com/ru/code/10198 вроде код правильный
А вообще стоит ли в ините ставить так ?? слип 500 или еще больше ???
Ни в ините, ни в деините не нужно ставить слипов. Если это индикатор, то любые тормоза в коде должны быть исключены в принципе.
Эксперты работают в собственном потоке и им тоже не нужны слипы, а надо штатно отрабатывать OnTick и выходить. Если пишутся зацикленные эксперты, то все остается на совести программиста.
Выяснить время срабатывания очень легко. Поставьте принты с выводом точного времени и готово.
С того момента как обновилась версия МТ сталкиваюсь с тем что скрипт перестает следовать алгоритму, а именно модифицирует через раз, стопы и профит автоматом не ставит. У кого-нибудь есть такая проблема или это только у меня?
Renat:
Это уже традиция повелась - на выходе любого нового билда люди грешат на терминал, хотя все элементарно проверить по логам.
У меня факт "на лицо" я открываю ордер и у меня скрипт не устанавливает стоп и профит. А раньше все работало как часы. Сегодня специально тестировал и вот результат:
Лог (при бай все сработало, при селл не срабатывает):
17:42:10 MetaTrader build 432 started (Alpari NZ Limited)
17:42:13 Expert Robot 2012 EURUSD,H1: loaded successfully
17:42:13 Expert Script HL GBPUSD,H1: loaded successfully
17:42:15 '354452': login
17:42:16 '354452': login
17:42:17 '354452': previous successful authorization performed from --.---.---.--
17:42:21 '354452': login
17:42:23 '354452': login
17:42:24 '354452': previous successful authorization performed from --.---.---.--
17:56:01 Expert Robot 2012 GBPUSD,H1: loaded successfully
18:00:03 '354452': instant order buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000
18:00:03 '354452': request was accepted by server
18:00:04 '354452': request in process
18:00:04 '354452': order was opened : #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000
18:00:07 '354452': modify order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 0.00000 tp: 0.00000 -> sl: 1.55740 tp: 1.57240
18:00:07 '354452': request was accepted by server
18:00:08 '354452': request in process
18:00:08 '354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 was modified -> sl: 1.55740 tp: 1.57240
18:25:28 '354452': close order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 at price 1.55901
18:25:28 '354452': request was accepted by server
18:25:29 '354452': request in process
18:25:31 '354452': order #1219550049 buy 0.02 GBPUSD at 1.56040 sl: 1.55740 tp: 1.57240 closed at price 1.55901
18:25:36 '354452': instant order sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.00000
18:25:36 '354452': request was accepted by server
18:25:37 '354452': request in process
18:25:38 '354452': order was opened : #1219550519 sell 0.05 GBPUSD at 1.55894 sl: 0.00000 tp: 0.00000
18:26:12 Expert Robot 2012 GBPUSD,H1: removed
При этом Buy модифицирует, а Sell нет!!! Только что проверил:
19:49:09 '354452': instant order buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000
19:49:09 '354452': request was accepted by server
19:49:09 '354452': request in process
19:49:10 '354452': order was opened : #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000
19:49:11 '354452': modify order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 0.00000 tp: 0.00000 -> sl: 1.55508 tp: 1.57008
19:49:11 '354452': request was accepted by server
19:49:12 '354452': request in process
19:49:13 '354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 was modified -> sl: 1.55508 tp: 1.57008
19:49:28 '354452': close order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 at price 1.55783
19:49:28 '354452': request was accepted by server
19:49:29 '354452': request in process
19:49:29 '354452': order #1219552274 buy 0.01 GBPUSD at 1.55808 sl: 1.55508 tp: 1.57008 closed at price 1.55783
19:49:38 '354452': instant order sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000
19:49:38 '354452': request was accepted by server
19:49:39 '354452': request in process
19:49:39 '354452': order was opened : #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000
19:49:53 '354452': close order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 at price 1.55810
19:49:53 '354452': request was accepted by server
19:49:54 '354452': request in process
19:49:54 '354452': order #1219552276 sell 0.01 GBPUSD at 1.55788 sl: 0.00000 tp: 0.00000 closed at price 1.55810
и тишина..........
Так что ошибка в вашем новом билде!
Будьте добры, укажите конкретную строчку и объясните, где именно проблема. Укажите "как Вы посылали команду установки стопов" и "как эта команда не сработала".
Я проверил эти логи и не нашел никаких проблем с исполнением команд установки стопов:
тут никаких проблем, позиция открывается, стопы ставятс и позиция закрывается.
вторая часть:
Обратите внимание, что команды на смену стопов после открытия позиции #1219552276 не поступало, а сразу же пошла команда закрытия.
Если даже в логах нет попытки смены стопов, значит терминал тут не при чем. Скорее всего в Вашей программе есть плавающий баг/условие, которое пропускает операцию смены стопов. Видимо, это проявляется на операциях SELL.
Проверьте код на правильность цен, учет минимальных оступов и добавьте распринтовку для анализа путей исполнения, пожалуйста.
Да, вы правы, есть баг. А почему в 419 билде все нормально работает??? Там он не проявляется, а в текущем селл не пашет