Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 4

 
Yedelkin:

abolk,  hrenfx,   о чём, собственно говоря, спор-то? Читаем внимательно название статьи: "... для начинающих".  Статья полностью оправдывает своё предназначение, как названием, так и содержанием. Поверьте на слово, для начинающих глубоко по барабану, какова точность округления у эксперта, основной подход: "нам бы с написанием советника разобраться". Пусть хоть 2 знака, хоть 7 знаков. Лично для меня, как для начинающего, фишка с "округлением" до 4 знаков (правда, в другой статье) оказалась очень полезной, раскрыв один из приёмов программирования. А с набором опыта высококвалифицированые специалисты сами смогут решить, с какой точностью производить вычисления/торговлю, и обсуждаемая статья никак не сможет им в этом помешать. Вам же эта статья никак не помешала :) Так и другие: "дорастут до вашего уровня - сами разберутся".

В корне неверный подход!

Наверное в этой статье не нужно ПОДРОБНО освещать тему 4-5 знаков, но и закладывать в базу знаний то, что впоследствии может вызвать кучу вопросов, тоже не следует. И именно   "... для начинающих" это особенно важно!  

Это так по-русски... Создать себе (и другим) проблемы, чтобы ПОТОМ их героически преодолевать и получать за это ордена.

 
VladMih:

В корне неверный подход!

..Это так по-русски... Создать себе (и другим) проблемы, чтобы ПОТОМ их героически преодолевать и получать за это ордена.

Вы - начинающий, или так, теоретизируете?

VladMih:

Наверное в этой статье не нужно ПОДРОБНО освещать тему 4-5 знаков, но и закладывать в базу знаний то, что впоследствии может вызвать кучу вопросов, тоже не следует. И именно   "... для начинающих" это особенно важно!  

Вся эта якобы "забота о начинающих" (типа "необходимости заложения базы знаний" и т.д.) продемонстрирована без учёта содержания самой статьи. Посмотрите на строчку с условием, прочитайте пояснения. Во второй раз предлагаю - поверьте на слово, начинающие - не дураки, сами разберутся при таком количестве подсказок. 

Мы решили хранить значения Stop Loss и Take Profit в определенных ранее переменных STP и TKP. Почему мы это сделали?

Это сделано потому, что значения входных параметров не могут быть модифицированы, они только для чтения.

Мы должны быть уверены в том, что наш советник будет корректно работать со всеми брокерами.

 
Yedelkin:

Вы - начинающий, или так, теоретизируете?

Вся эта якобы "забота о начинающих" (типа "необходимости заложения базы знаний" и т.д.) продемонстрирована без учёта содержания самой статьи. Посмотрите на строчку с условием, прочитайте пояснения. Во второй раз предлагаю - поверьте на слово, начинающие - не дураки, сами разберутся при таком количестве подсказок. 

Я даже не начинающий, можно сказать "подступающий" (приступающий) к изучению (ламер, в смысле - хуже чайника). Т.е. пытаюсь заботиться о себе. ))) Когда-то я пытался начать освоение MQL4, но обломился... Сейчас у меня еще больше необходимость в изучении языка, но вижу, что....

Буквально сегодня в очередной раз порывался открыть тему с предложением создать для начинающих отдельный раздел с самыми-самыми первыми рекомендациями. Если говорить о начинающих-программистах, знакомых с "базовым" языком, им проще, а полному новичку не помогут никакие конструкторы по сборке роботов, ибо им не от чего оттолкнуться для более-менее полного понимания что и как надо собирать.

Есть немало информации, согласен, но как-то... телега впереди лошади... Есть справочник - отлично сделан, но новичку он не помощник. Есть куча статей, но в основном о достаточно непростых вещах, в основном о советниках, а надо бы именно о простейшем - побольше информации о создании простейших индикаторов, о раскрашивании линий, о комбинировании индикаторов (совмещение нескольких в один), о получении сигналов этих индикаторов и т.п.

Сегодня увидел хороший заказ, за который вроде бы взялся Integer - статья о том, как сделать свой индикатор переделкой чужого готового - ВОТ ЧТО НУЖНО НАЧИНАЮЩЕМУ, это и есть один из кирпичиков, нужных для фундамента, от которого потом можно оттолкнуться и в сторону советников. 

 Поэтому в идеале должен быть отдельный раздел с такими кирпичиками, именно ОТДЕЛЬНЫЙ, чтобы новичку было легче ориентироваться, чтобы было где потренироваться, проконсультироваться. Эдакая песочница.

Высказывания (выше) типа: "Ну, вы же разобрались, значит и другие разберутся" - это от недомыслия. Можно и штаны через голову натянуть, если год-другой сильно стараться... А можно попытаться сделать ПРАВИЛЬНО и лучше сделать это сейчас, пока MT5 и MQL5 только начинают набирать обороты. 

Т.е. дополнительно к справочнику и хорошим статьям нужно что-то типа если не учебника, то ... назовем это МЕТОДИЧКОЙ, которая бы подвела полного новичка  к состоянию, в котором он сможет полноценно воспринимать имеющиеся статьи и справочник.

 

VladMih:

ОК, понятно. Фактически, Вы поднимаете (в очередной раз) вопрос о необходимости учебника по MQL5. - Мы же тут уже как-то смирились с отсутствием такового... В частности, я, видимо от "недомыслия" (как Вы выразились), не жду милостей (учебника) от природы, а прорабатываю то, что есть, расширяю кругозор по возможности. Т.е. действую, как на рынке, а именно: приспосабливаюсь к имеющимся обстоятельствам. Закон прерий суров: кто не может приспособиться, - идёт лесом. Вы же предъявляете претензии к отдельной статье, которая не является ни учебником, ни методичкой. Но которая содержит кучу подсказок для расширения кругозора. 

VladMih:

...Если говорить о начинающих-программистах, знакомых с "базовым" языком, им проще, а полному новичку не помогут никакие конструкторы по сборке роботов, ибо им не от чего оттолкнуться для более-менее полного понимания что и как надо собирать. 

Год назад я был типичным новичком, вААще не знакомым с "базовым языком". "Математический образ мышления" - вот и всё, чем можно было похвастать. Критикуемая же Вами статья была одним из первых кирпичиков для погружения в мир MQL5.
 

Доброго времени суток!

Я сейчас разбираюсь с написанием советников на примере данной статьи и столкнулся со следущей проблемой - при попытке отправить запрос на совершение сделки мне возвращается ошибка 10014 - неправильный объем. Я проверил максимальный допустимый обем для сделки SYMBOL_VOLUME_MAX - мне возвращается 0. Но при этом в ручную сделки нормально открываются. 

Подскажите, что я делаю не так или где надо посмотреть. Использую код советника, который приатачен в статье.

Спасибо. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 

Здравствуйте.

Спасибо большое за подробное и понятное руководство.

 У меня возникла проблема.  Программа компилируется, но при первой же попытке создать запрос появляется следующая ошибка: "Запрос на установку ордера Sell не выполнен - код ошибки:4756"

 В документации ничего не смог найти. Может подскажете что с этим можно делать или где найти информацию?

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
Alfff:

 У меня возникла проблема.  Программа компилируется, но при первой же попытке создать запрос появляется следующая ошибка: "Запрос на установку ордера Sell не выполнен - код ошибки:4756"

 В документации ничего не смог найти. Может подскажете что с этим можно делать или где найти информацию?

Исправлено, скачайте обновленную версию советника.

Проблема была в структуре mrequest, предварительно ее нужно обнулять при помощи функции ZeroMemory. Перед строками с "mrequest.action=TRADE_ACTION_DEAL;" (стр. 199 и 245) нужно добавить "ZeroMemory(mrequest);"

 
papaklass:
Это нужно всегда делать, т.е. обнулять структуру запроса перед запросом?
Перед отправкой запроса все поля структуры должны быть инициализированы (в данном случае это производится при помощи функции ZeroMemory, хотя можно сделать это поэлементно), инициализацию надо проводить после объявления структуры.
 
Automated-Trading:
Перед отправкой запроса все поля структуры должны быть инициализированы (в данном случае это производится при помощи функции ZeroMemory, хотя можно сделать это поэлементно), инициализацию надо проводить после объявления структуры.

В Справочнике об этом сказано? (Сейчас нет возможности проверить)

Получается, что достаточно один раз объявить переменную типа структуры на глобальном уровне программы, проинициализировать её один раз и больше к вопросу использования функции  ZeroMemory не возвращаться?

 
Yedelkin:

В Справочнике об этом сказано? (Сейчас нет возможности проверить)

Любая переменная при ее объявлении принудительно не зануляется. Именно программисту нужно самостоятельно чистить/присваивать все переменные перед использованием.

Использование неинициализированных (или неполностью) переменных (особенно структур) - это очень частая ошибка в программировании.

Получается, что достаточно один раз объявить переменную типа структуры на глобальном уровне программы, проинициализировать её один раз и больше к вопросу использования функции  ZeroMemory не возвращаться?

Лучше правильно инициализировать переменные, а не бороться (бесполезно и более опасно) с инициализацией путем выноса на глобальный уровень.

Это же так просто задать себе вопрос "почему я считаю, что за меня кто-то будет инициализировать переменные, а в особенности сложные структуры"?

Очень удобно занулять структуры без неудобного ZeroMemory при объявлении так:

   MqlTick my={0};
Причина обращения: