Это отличная статья для новичков и людей, пришедших из mql4, с примером хорошей торговой стратегии.
Есть небольшие недочеты в коде (не всегда реализована проверка ошибок), но советник работает очень хорошо, если использовать его на минутном таймфрейме, как рекомендует автор. Предупреждения при компиляции индикатора являются лишь предупреждениями и не препятствуют использованию индикатора и советника.
Это не простой способ объяснить mql5 людям. (как будто у новичков вообще есть шанс понять это!) Это как с книгами по программированию, 90% людей не имеют понятия, как начать. Они открывают книгу, например, о программировании на Си, и первый "Простой пример" занимает целую страницу, написанную мелким шрифтом. За всю свою жизнь я прочитал только одну хорошую книгу по программированию, которая могла бы научить программированию любого. Причина в том, что их пишут, возможно, отличные программисты, но, к сожалению, очень плохие учителя. Программирование может быть очень простым, и я докажу вам это, сделав простой учебник по языку программирования MQL4, когда у меня будет немного больше времени, чем сейчас. Для всех - даже для абсолютных новичков. Самая большая ошибка - учить людей деталям языка, в основном они должны работать с ctrl+C и ctrl+v и использовать google для команд и самое главное - держать все ОЧЕНЬ ПРОСТО. Я знаю 10+ языков программирования (программирую с 7 лет) и меня до сих пор пугает то, как объясняется этот "Легкий пример" на 11кб (!!!). Я хотел бы знать, есть ли хоть один настоящий начинающий программист, который изучил MQL5 на этом примере ;D. Я сомневаюсь, а если и есть, то таких людей можно пересчитать по пальцам одной руки.
You have decided to study MQL5 trading strategies' programming language, but you know nothing about it? We have tried to examine MQL5 and MetaTrader 5 terminal from the newcomers' point of view and have written this short introductory article. In this article, you can find a brief idea of the possibilities of the language, as well as some tips on working with MetaEditor 5 and the terminal.
Это не простой способ объяснить mql5 людям. (как будто у новичков вообще есть шанс понять это!) Это как с книгами по программированию, 90% людей не имеют понятия, как начать. Они открывают книгу, например, о программировании на Си, и первый "Простой пример" занимает целую страницу, написанную мелким шрифтом. За всю свою жизнь я прочитал только одну хорошую книгу по программированию, которая могла бы научить программированию любого. Причина в том, что их пишут, возможно, отличные программисты, но, к сожалению, очень плохие учителя. Программирование может быть очень простым, и я докажу вам это, сделав простой учебник по языку программирования MQL4, когда у меня будет немного больше времени, чем сейчас. Для всех - даже для абсолютных новичков. Самая большая ошибка - учить людей деталям языка, в основном они должны работать с ctrl+C и ctrl+v и использовать google для команд и самое главное - держать все ОЧЕНЬ ПРОСТО. Я знаю 10+ языков программирования (программирую с 7 лет) и меня до сих пор пугает то, как объясняется этот "Легкий пример" на 11кб (!!!). Я хотел бы знать, есть ли хоть один настоящий начинающий программист, который изучил MQL5 на этом примере ;D. Сомневаюсь, а если и есть, то таких людей можно пересчитать по пальцам одной руки.
Вы правы в том, что программисты не являются хорошими учителями в целом.
Но я не согласен с тем, что mql5 так сложно выучить, в основном для программиста, который экспериментировал с 10+ языками.
На практике, насколько я помню, удается изменить один из уровней (SL или TP) позиции, оставляя другие уровни без изменения, даже в тех случаях, когда уровень, значение которого остается без изменения, находится ближе к текущей цене, чем указано в параметре SYMBOL_TRADE_STOPS_LEVEL. При создании программ я не рекомендую изменять параметры (уровни) позиций таким образом, чтобы новые параметры (уровни) позиции не удовлетворяли требованиям, которые предъявляются при проверке правильности данных позиции, так как такая ситуация является недокументированной и в будущем можно получить другой результат.
Я скопировал советник и попытался протестировать его в Strategytester. Но он не совершает никаких сделок. Я новичок в MQL5 и программировании, так что, возможно, я просто совершил глупую ошибку. Советник скомпилировался без ошибок. Мне бы очень хотелось получить эту стратегию! Есть идеи, почему она не работает в Strategytester?
Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих". - Страница 9 - Категория: статьи и техническая библиотека по автоматическому трейдингу
И как оно вообще вычисляется? Предположим, что rate_total = 10, и еще нет ни одного рассчитанного бара. Значит, prev_calculated = 0
day_t=time[0] (СЕГОДНЯ! так как отсчет ведется в обратном направлении)/PeriodSeconds... так как отсчет начинается с 1970 года, предположим, что отсчет начинается с 10 дней назад. так что должно получиться 10, верно?
Поэтому day_t=10. Теперь проверяется, не превышает ли dayt > dayn. Я не знаю dayn, но знаю, что dayt=10. Я собираюсь предположить, что dayn равен нулю, поскольку нет никакого значения.
Тогда dayn тоже станет 10. Хорошо.
Второй бросок цикла. prev_calculated + 1= 1.
DayT=time[1] (yesterday)/period... помните, он начинает отсчет с 10 дней назад... но теперь только до вчерашнего дня. это должно дать значение 9, верно?
Но теперь dayN < dayT - ложь. Тогда он начинает выполнять выражения else. Хорошо. Я понял.
Затем он вычисляет все bu[] и bd[]. Хорошо. Цикл завершится, когда prev < total rate станет ложным.
Но когда появится новый бар, и он снова станет истинным, я снова начну с нуля? Или он начнется с 10 и сразу перейдет к части else?
Этот ExpertAdvisor не работает на MT5 build 712, по крайней мере, у меня.
Выдается сообщение об ошибке "Cant't copy indicator buffer".
Также индикатор не компилируется без предупреждений,
"Возможна потеря данных из-за преобразования типов" в строке 53,
"возможно использование неинициализированной переменной 'day_n'" на строке 54
"возможно использование неинициализированной переменной 'h_day'" в строке 62
"psosible use on uninitialized varaiable 'l_day'" в строке 63
Можете ли вы исправить эти проблемы, пожалуйста?
В остальном это хороший пример для нас, имеющих опыт работы с другим программным обеспечением, кроме MT5.
Это отличная статья для новичков и людей, пришедших из mql4, с примером хорошей торговой стратегии.
Есть небольшие недочеты в коде (не всегда реализована проверка ошибок), но советник работает очень хорошо, если использовать его на минутном таймфрейме, как рекомендует автор. Предупреждения при компиляции индикатора являются лишь предупреждениями и не препятствуют использованию индикатора и советника.
Спасибо.
Это не простой способ объяснить mql5 людям. (как будто у новичков вообще есть шанс понять это!) Это как с книгами по программированию, 90% людей не имеют понятия, как начать. Они открывают книгу, например, о программировании на Си, и первый "Простой пример" занимает целую страницу, написанную мелким шрифтом. За всю свою жизнь я прочитал только одну хорошую книгу по программированию, которая могла бы научить программированию любого. Причина в том, что их пишут, возможно, отличные программисты, но, к сожалению, очень плохие учителя. Программирование может быть очень простым, и я докажу вам это, сделав простой учебник по языку программирования MQL4, когда у меня будет немного больше времени, чем сейчас. Для всех - даже для абсолютных новичков. Самая большая ошибка - учить людей деталям языка, в основном они должны работать с ctrl+C и ctrl+v и использовать google для команд и самое главное - держать все ОЧЕНЬ ПРОСТО. Я знаю 10+ языков программирования (программирую с 7 лет) и меня до сих пор пугает то, как объясняется этот "Легкий пример" на 11кб (!!!). Я хотел бы знать, есть ли хоть один настоящий начинающий программист, который изучил MQL5 на этом примере ;D. Я сомневаюсь, а если и есть, то таких людей можно пересчитать по пальцам одной руки.
Это не простой способ объяснить mql5 людям. (как будто у новичков вообще есть шанс понять это!) Это как с книгами по программированию, 90% людей не имеют понятия, как начать. Они открывают книгу, например, о программировании на Си, и первый "Простой пример" занимает целую страницу, написанную мелким шрифтом. За всю свою жизнь я прочитал только одну хорошую книгу по программированию, которая могла бы научить программированию любого. Причина в том, что их пишут, возможно, отличные программисты, но, к сожалению, очень плохие учителя. Программирование может быть очень простым, и я докажу вам это, сделав простой учебник по языку программирования MQL4, когда у меня будет немного больше времени, чем сейчас. Для всех - даже для абсолютных новичков. Самая большая ошибка - учить людей деталям языка, в основном они должны работать с ctrl+C и ctrl+v и использовать google для команд и самое главное - держать все ОЧЕНЬ ПРОСТО. Я знаю 10+ языков программирования (программирую с 7 лет) и меня до сих пор пугает то, как объясняется этот "Легкий пример" на 11кб (!!!). Я хотел бы знать, есть ли хоть один настоящий начинающий программист, который изучил MQL5 на этом примере ;D. Сомневаюсь, а если и есть, то таких людей можно пересчитать по пальцам одной руки.
Вы правы в том, что программисты не являются хорошими учителями в целом.
Но я не согласен с тем, что mql5 так сложно выучить, в основном для программиста, который экспериментировал с 10+ языками.
На практике, насколько я помню, удается изменить один из уровней (SL или TP) позиции, оставляя другие уровни без изменения, даже в тех случаях, когда уровень, значение которого остается без изменения, находится ближе к текущей цене, чем указано в параметре SYMBOL_TRADE_STOPS_LEVEL. При создании программ я не рекомендую изменять параметры (уровни) позиций таким образом, чтобы новые параметры (уровни) позиции не удовлетворяли требованиям, которые предъявляются при проверке правильности данных позиции, так как такая ситуация является недокументированной и в будущем можно получить другой результат.
Всем привет!
У меня все работает отлично только при
request.type_filling=ORDER_FILLING_IOC;
request.type_time = ORDER_TIME_DAY;
Аналогичная ситауция c https://www.mql5.com/ru/forum/1156/page9#comment_2359257
Особенность моего брокера FxPro?
Я новичок в программировании на mql5.
Пытался научиться на этом примере, но немного запутался с циклом в конце построения индикатора. Где именно он присвоил значение переменной day_n?
Потому что цикл будет проверять day_n<day_t. Как программа может узнать значение day_n?
И как оно вообще вычисляется? Предположим, что rate_total = 10, и еще нет ни одного рассчитанного бара. Значит, prev_calculated = 0
day_t=time[0] (СЕГОДНЯ! так как отсчет ведется в обратном направлении)/PeriodSeconds... так как отсчет начинается с 1970 года, предположим, что отсчет начинается с 10 дней назад. так что должно получиться 10, верно?
Поэтому day_t=10. Теперь проверяется, не превышает ли dayt > dayn. Я не знаю dayn, но знаю, что dayt=10. Я собираюсь предположить, что dayn равен нулю, поскольку нет никакого значения.
Тогда dayn тоже станет 10. Хорошо.
Второй бросок цикла. prev_calculated + 1= 1.
DayT=time[1] (yesterday)/period... помните, он начинает отсчет с 10 дней назад... но теперь только до вчерашнего дня. это должно дать значение 9, верно?
Но теперь dayN < dayT - ложь. Тогда он начинает выполнять выражения else. Хорошо. Я понял.
Затем он вычисляет все bu[] и bd[]. Хорошо. Цикл завершится, когда prev < total rate станет ложным.
Но когда появится новый бар, и он снова станет истинным, я снова начну с нуля? Или он начнется с 10 и сразу перейдет к части else?
Спасибо!!!!