Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Использование неинициализированных (или неполностью) переменных (особенно структур) - это очень частая ошибка в программировании.
Блин, ну вот единственный русскоязычный ресурс, где тебе (1) толково промывают мозги и (2) ты испытываешь чувство благодарности за это :)
Вот уже 1,5 года знаю, что надо инициализировать переменные; 1,5 года намеренно употребляю фразу "переменная типа структуры"; но при этом 1,5 года присваиваю значения только отдельным (обязательным к заполнению) полям переменной типа Mqltraderequest, поскольку в Справочнике сказано, что "для каждой торговой операции необходимо указывать обязательные поля"...
Renat, было бы не плохо, если бы на тему "работа с памятью и переменными" Вы (MQ) бы опубликовали статью или серию статей. Вообще, как правильно работать с памятью и переменными? После дисквалификации на Чемпионате нескольких советников из-за большого потребления памяти, эти статьи были бы уместными. Rosh в какой то теме писал, чтобы пользователи сами заказывали статьи, которые их интересуют, но я не нашел эту тему, поэтому пишу здесь.
Удивительный "подход" используют уважаемые и опытные программисты для "решения проблемы" 5-тизнака. А теперь этот "подход" ещё и культивируется среди новичков, в учебной, можно сказать, литературе.
Приведённый автором "подход" полностью сводит на нет всё преимущество 5-тизнака. Вместо того, чтобы объяснить новичку, что введение 5-тизначной котировки даёт возможность установить, например, тейк-профит не 10 пунктов, а 10,5. А также объяснить, что при использовании советника на 5-тизнаке надо указывать тейк-профит не 10 пунктов, а 100. Вместо таких объяснений в программный код вводятся строки, которые программно не дают возможность использовать преимущества 5-тизначных котировок.
"Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами". Ну убедились и дальше что? Как теперь использовать преимущество 5-тизнака, если программно советник это преимущество "приговорил исправно служить".
А если
_Digits==3
тогда что, все равно?
STP = STP*10;
TKP = TKP*10;
И что же получается? Не правильней ли написать?
STP = STP/10;
TKP = TKP/10;
Зачем два раза идет повторение одного и того же кода в функции OnTick?
и чуть подальше
И для оптимизации неплохо было бы к динамичным массивам использовать ArrayResize: https://www.mql5.com/ru/docs/array/arrayresize
И еще интересное в документации прочитала:
если копирование таймсерий и значений индикаторов необходимо делать часто, например, при каждом вызове OnTick() в экспертах или при каждом вызове OnCalculate() в индикаторах, то в этом случае лучше использовать статически распределенные массивы, так как операции распределения памяти под динамические массивы требуют дополнительного времени и это скажется при тестировании и оптимизации экспертов.
https://www.mql5.com/ru/docs/series
при компиляции выдает ошибку
return value of 'OrderSend' should be checked my_first_ea.mq5 211 10
что может быть не так?
при компиляции выдает ошибку
return value of 'OrderSend' should be checked my_first_ea.mq5 211 10
что может быть не так?
при компиляции выдает ошибку
return value of 'OrderSend' should be checked my_first_ea.mq5 211 10
что может быть не так?
Здравствуйте! Подскажите пожалуйста. А торгует ли советник с точностью до секунд? То есть если мне нужно, что бы сделки открывали и закрывались не просто в определенный час и минуту, но и в определенную секунду?