![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ваш пример получше будет
[/quote]
Этот пример не работает. Дает ошибки. Не могли бы Вы, как более опытный разработчик, помочь заставить его работать?
С уважением,
Кварк
Вопрос: как работает while(!IsStopped()) ? Из хелпа не совсем понятно, я-то думал, это проверка на Allow Live Trading.
это проверка не хотят ли закрыть эксперта извне
Вопрос: эти while и Sleep не будут тормозить систему?
систему тормозить не будут. только отдельно взятого эксперта
Вопрос: будет ли Sleep и семафор корректно обрабатываться в режиме тестирования?
слип в тестировании никак не отрабатывается, просто пропускается. с семафором вопрос сложнее. при тестировании за этот семафор могут конкурировать реально работающие эксперты. при тестировании вообще можно не пользоваться семафорами, так как тестируется только один эксперт - мы не можем организовать одновременное тестирование взаимодействующих экспертов. чтобы исключить работу с семафором при тестировании используйте функцию IsTesting
Еще по логике. Между установкой и снятием семафора, у нас две (максимум) возможности работы с ордерами. Сначала Buy() или Sell() и потом, ниже, CloseOrder(). Не будут ли эти две "активности" конкурировать друг с другом, хоть внутри эксперта, но также, как если бы экспертов было два? Или процесс гарантированно линеен, и пока Buy() не вернется, до CloseOrder() дело не дойдет?
эти активности друг с другом конкурировать не будут, так как торговые операции у нас теперь синхронны, то есть эксперт дожидается завершения торговой операции. "процесс гарантированно линеен"
заставлять не буду. подождите пару дней функции GlobalVariableSetOnCondition, тогда все проблемы разграничения доступа будут решены
заставлять не буду. подождите пару дней функции GlobalVariableSetOnCondition, тогда все проблемы разграничения доступа будут решены
Если имеется в виду, что Вы планируете ввести в МТ функцию GlobalVariableSetOnCondition, то не могли бы Вы заранее сказать о ней пару слов?
В том числе и как Вы предлагаете ее использовать в данной ситуации?
Пару дней - считая выходные?
Не сделать ли Вам в МТ очередь ордеров. То есть, туда можно асинхронно писать требование на работу с позицией, а МТ в отдельной нити это требование обработает, когда будет время, и с гарантией, что никто больше туда не влезет.
Кварк
В том числе и как Вы предлагаете ее использовать в данной ситуации?
Пару дней - считая выходные?
я уже показывал пример
если у глобальной переменной значение 0.0, то установить значение в 1.0 и вернуть true. иначе ничего не устанавливать. проверка и изменение значения за один вызов функции.
"пару дней" - это я на всякий случай сказал. сегодня, надеюсь, выложим
очередь ордеров делать не будем
я уже показывал пример
Только не сказали, что это такое :) Я думал, функцию предлагается написать мне.
"пару дней" - это я на всякий случай сказал. сегодня, надеюсь, выложим
Спасибо.
1. В этих 100 постах было приведено несколько багов, найденых при работе над экспертом, и к нему напрямую не относящихся. Например, что эксперты продолжают торговать и после удаления галочки Allow Live Trading. Надеюсь, вы о них не забудете.
2. Ниже ОПЯТЬ привожу код эксперта. Он генерирует ошибки 1, 129, 138. Не могли бы Вы а) рассказать, что такое 138 (реквота), почему она возникает, связана ли она с семафорами, и как ее убрать. б) Почему 129? Цены выводятся вместе с ошибкой, они вроде верны. в) Ну и насчет 1 тоже.
Напомню способ тестирования: 12 минутных окон для 12 валют.
С уважением,
Кварк