Самообучение языку MQL5 с полного нуля - страница 11

 
Aliaksandr Hryshyn:

У вас не правильный план обучения, вы не с того начинаете.

Вот вы изучали функцию:

Это не простое, относительно, и требует уже наличия базовых знаний.

Для подтверждения этого попытайтесь ответить на вопросы по этой функции, наверняка не сможете ответить, что говорит о неправильном направлении обучения:

Почему "Моя_линия_2" в кавычках, а OBJ_VLINE без?

Что означает тут int, double, и чем отличаются?

Почему написано sub_window, а не по другому, какой смысл?

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

Спасибо, Александр, за советы! Приму к сведению.

С уважением, Владимир.

 
MrBrooklin:

Всё правильно, но просто взять готовый пример или самому написать самостоятельный код - это две большие разницы. По крайней мере, для меня. А за совет большое спасибо!

С уважением, Владимир.

Если Вы не собираетесь изучать С++ & MQL полностью а ищите более простой вариант то возьмите готовый код, разложите его по полочкам, попытайтесь понять что зачем и почему, применяя Справочник MQL5 , как порекомендовал 

Aliaksandr Hryshyn:

У вас не правильный план обучения, вы не с того начинаете.

поняв всё что Вас интересует сможете написать что то подобное а то и лучше )

Но начните с цели -> то есть для чего Вы это изучаете и что именно Вам необходимо изучить для достижения цели, чтобы отбросить всё лишнее и сконцентрироваться на самом необходимом )

 
Учебник MQL4 - самый лучший вариант. Там все доступно даже для абсолютных нубов. Правильная и актуальная для нашей сферы подборка материала. Через ~4 месяца сможете писать советников самостоятельно. 

Не составляйте программу обучения самостоятельно, т.к. эту область знаний (программирование) не понимаете совсем. Следовательно, доверьтесь грамотному учебнику. 
 
VVT:

Если Вы не собираетесь изучать С++ & MQL полностью а ищите более простой вариант то возьмите готовый код, разложите его по полочкам, попытайтесь понять что зачем и почему, применяя Справочник MQL5 , как порекомендовал 

поняв всё что Вас интересует сможете написать что то подобное а то и лучше )

Но начните с цели -> то есть для чего Вы это изучаете и что именно Вам необходимо изучить для достижения цели, чтобы отбросить всё лишнее и сконцентрироваться на самом необходимом )

Языки программирования С++ и MQL5 изучаю постепенно по мере возникновения вопросов. Скрипты пишу для закрепления пройденного материала. Постепенно проходит внутренний страх перед неизведанным. Кое-что начинаю осозновать. Надеюсь, что у меня хватит терпения и сил освоить не только азы прораммирования, но и на бОльшее. Спасибо Вам, что делитесь своими советами. Они все учитываются! Но как говорится - Москва не сразу строилась!

С уважением, Владимир.

 
Реter Konow:
Учебник MQL4 - самый лучший вариант. Там все доступно даже для абсолютных нубов. Правильная и актуальная для нашей сферы подборка материала. Через ~4 месяца сможете писать советников самостоятельно. 

Не составляйте программу обучения самостоятельно, т.к. эту область знаний (программирование) не понимаете совсем. Следовательно, доверьтесь грамотному учебнику. 

Спасибо, Петер! Надеюсь правильно называю Ваше имя? Обязательно найду эту книгу для изучения. Просто сейчас такой момент, когда может наступить ступор от переизбытка информации. Пока согласно плана самообучения у меня на очереди написание еще несколько скриптов, необходимых для закрепления того материала, который уже изучил.

За совет Вам, ещё раз, отдельное спасибо!

С уважением, Владимир.

 

Продолжаю изучение языка программирования MQL5. Новый скрипт New5.mq5 устанавливает трендовую линию между двумя интервалами времени. В данном скрипте постарался всё расписать, как ранее и обещал, в доступном изложении для ученика 1-го класса школы программирования.

С уважением, Владимир.

//+------------------------------------------------------------------+
//|                                                         New5.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//---
#property script_show_inputs
//---
/* Ранее в скриптах New2.mq5, New3.mq5 и New4.mq5 мы научились создавать горизонтальную
   и вертикальную линию на текущем графике главного окна терминала MetaTrader 5.
   Теперь мы немного усложним задачу и попробуем создать линию, но уже с привязкой двух точек по
   временнОй и ценовой координатам. Кроме того, в данном скрипте мы реализуем возможность
   изменять входные параметры нужных нам координат. Снова воспользуемся информацией имеющейся 
   в Справочнике MQL5.
   Для начала необходимо сделать так, чтобы перед установкой новой линии, у нас было место, 
   где мы могли устанавливать или менять нужные нам координаты привязки. Для этого мы должны
   воспользоваться препроцессором – специальной подсистемой компилятора MQL5, которая занимается 
   предварительной подготовкой исходного текста программы непосредственно перед ее компиляцией.
   Препроцессор позволяет также определять специфические параметры mql5-программ:
   - Объявлять константы
   - Устанавливать свойства программы
   - Включать в текст программы файлы
   - Импортировать функции
   - Использовать условную компиляцию
   В нашем случае интересен раздел "Устанавливать свойства программы", поэтому жмем на эту ссылку
   и переходим во вкладку "Свойства программ (#property)". Если внимательно просмотреть все константы, то
   можно найти "script_show_inputs" (дословный перевод - показать входы скрипта), а если быть точнее, 
   то вывести окно со свойствами перед запуском скрипта и запретить вывод окна подтверждения. Запишем
   #property script_show_inputs чуть ниже шаблона шапки скрипта.
   Движемся дальше. Создадим входные параметры скрипта. Для этого нам понадобится класс памяти input 
   который определяет внешнюю переменную. Модификатор input указывается перед типом данных. 
   Изменять значение переменной с модификатором input внутри mql5-программы нельзя, такие переменные 
   доступны только для чтения. Изменять значения input-переменных может только пользователь из окна 
   свойств программы. Простыми словами input нам нужен для того, чтобы задавать свои значения в диалоговом 
   окне скрипта в момент его запуска.   
*/

// ПИШЕМ КОД СКРИПТА
input datetime inp_time1=D'2020.10.01 14:00'; //Превая точка привязки по временнОй координате
input double inp_price1=1.17693;              //Первая точка привязки по ценой координате
input datetime inp_time2=D'2020.10.02 10:00'; //Вторая точка привязки по временнОй координате
input double inp_price2=1.17412;              //Вторая точка привязки по ценой координате
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   ObjectCreate(0,"Моя_линия_3",OBJ_TREND,0,inp_time1,inp_price1,inp_time2,inp_price2);
   
  }
//+------------------------------------------------------------------+

/* Теперь расшифруем, что именно мы создали в программном коде скрипта.
1. Первым делом мы создали четыре входных параметра, по два на каждую точку привязки. В данном скрипте
   каждая точка привязки линии имеет 2-а параметра - price и time. Каждый входной параметр начинается
   с input (переводится как "ввод").
2. После input пишется тип переменной. Например, для ценовых координат присваивается тип переменной double,
   т.к. она (цена) имеет дробную часть, а для временнЫх координат присваивается тип переменной datetime.
   Все эти сведения мы берем из уже известного нам Справочника MQL5.
3. Чтобы мы смогли вводить свои данные, нам необходимо создать четыре собственные переменные созвучные с
   price и time. Ими станут inp_time1, inp_time2, inp_price1 и inp_price2. Каждой новой переменной зададим
   конкретные значения (константы), например, input datetime inp_time1=D'2020.10.01 14:00' и т.д.
4. Дальше для создания новой линии, нам также потребуется ObjectCreate, только с некоторыми поправками.
   Во-первых, зададим для линии новое уникальное имя "Моя_линия_3". Во-вторых, зададим новый тип объекта 
   OBJ_TREND, т.к. будем создавать линию, которая может располагаться на торговом терминале в
   произвольном положении. В-третьих, там где в предыдущих скриптах мы записывали конкретные 
   величины price и time, а именно, time1, price1, time2 и price2, теперь мы должны записать вновь
   созданные нами переменные inp_time1, inp_price1, inp_time2 и inp_price2. Всё! Наш новый скрипт готов.
5. Компилируем и запускаем скрипт. Как компилировать и запускать скрипт мы уже узнали, когда создавали скрипт New2.mq5.
*/
 
MrBrooklin:

Спасибо, Петер! Надеюсь правильно называю Ваше имя? Обязательно найду эту книгу для изучения. Просто сейчас такой момент, когда может наступить ступор от переизбытка информации. Пока согласно плана самообучения у меня на очереди написание еще несколько скриптов, необходимых для закрепления того материала, который уже изучил.

За совет Вам, ещё раз, отдельное спасибо!

С уважением, Владимир.

Учебник по MQL4
Учебник по MQL4
Учебник по MQL4
  • book.mql4.com
В настоящее время персональный компьютер стал незаменимым помощником в жизни каждого человека. Благодаря развитию Интернета и увеличению мощности современных компьютеров открылись новые возможности во многих областях деятельности. Ещё десять лет назад торговля на финансовых рынках была доступна только банкам и узкому кругу специалистов. Сегодня...
 
Alekseu Fedotov:
Учебник по MQL4

Спасибо, Алексей, за ссылку!!!

С уважением, Владимир.

 
MrBrooklin:

Спасибо, Петер! Надеюсь правильно называю Ваше имя? Обязательно найду эту книгу для изучения. Просто сейчас такой момент, когда может наступить ступор от переизбытка информации. Пока согласно плана самообучения у меня на очереди написание еще несколько скриптов, необходимых для закрепления того материала, который уже изучил.

За совет Вам, ещё раз, отдельное спасибо!

С уважением, Владимир.

Петр тоже хорошо. :)

Вот сейчас, на полном серьезе: оставьте эту преждевременную "возьню" с линиями. Нахрапом программирование лучше не изучать - слишком сложная тема. Вам нужна база. Начните с первых уроков учебника MQL4 и не парьтесь о программе обучения, - там она хорошо продумана за Вас.

Читайте и конспектируйте. Пока не освоите хотя бы начало - даже не пытайтесь программировать, это только собьет вас с верного пути. Терпение и труд поможет Вам обрести полноценные знания, которые не получите в хаотичном самообучении. Это как ходить в школу, каждый  день наобум выбирая классы и предметы. В голове будет каша. :)

П.С. Сначала нужно пройти типы переменных, массивы, освоить работу с циклами, написать простейшие функции  и лишь потом рисовать линии. Если наоборот, то Вы будете привязаны к чужим кодам, и не сможете написать свою программу, по своему замыслу. Написание программы - это финал, а не начало обучения по учебнику.
 
Реter Konow:
 ... Сначала нужно пройти типы переменных, массивы, освоить работу с циклами, написать простейшие функции  и лишь потом рисовать линии. Если наоборот, то Вы будете привязаны к чужим кодам, и не сможете написать свою программу, по своему замыслу. Написание программы - это финал, а не начало обучения по учебнику.

Спасибо Петер, совет принят к сведению!

С уважением, Владимир.

Причина обращения: