Уроки по программированию на языке MQL4 от eevviill

eevviill

Заблокирован
Добрый день. Только недавно создал свой скрипт и появилась мысль стать учителем

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

Список уроков:

Урок 1 - ex4 и mq4 файлы



Урок 2 - основные функции и типы данных



Урок 3 - разделительные знаки и операции



Урок 4 - написание простейшего скрипта



Урок 5 - скрипт калькулятор



Урок 6 - скрипт открывающий ордер с заданым риском



Урок 7 - советник на основе МА и ATR



Урок 8 - цикл for(;;;) и цикл while()



Урок 9 - скрипт закрывающий ордера



Урок 10 - трейлинг стоп



Урок 11 - пользовательская функция



Урок 12 - индикатор



Урок 13 - функция iCustom



Урок 14 - перебор ордеров



Урок 15 - выбор наибольшего лота среди открытых ордеров



Урок 16 - расчёт лота от депозита



урок 17 - подсчёт ордеров



Урок 18 - подсчёт прибыли в пунктах



Урок 19 - робота по времени



Урок 20 - количество попыток открыть(модифицировать,закрыть) ордер
 
Последнее редактирование модератором:

cfifcfif

Элитный участник
Да неплохо было бы но чуствую сваими вопросами припазорюсь на всю РФ.
как то пробывал читать мол чуть голова не взарвалась что куда каието буквы цифры там надо перимножить там разделить. вообщем вот так уменя есть задачка на блежайшие годы английский выучить я недавно подумывал за мол но чёт побаеваюсь.
 
Последнее редактирование:

foxksi

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

eevviill

Заблокирован
Да неплохо было бы но чуствую сваими вопросами припазорюсь на всю РФ.
как то пробывал читать мол чуть голова не взарвалась что куда каието буквы цифры там надо перимножить там разделить. вообщем вот так уменя есть задачка на блежайшие годы английский выучить я недавно подумывал за мол но чёт побаеваюсь.
Я буду подробно объяснять. Пока все не поймут дальше двигатся не будем.
В 95 источниках учёбы по MQL4 такое чувство что пиасли специально для того чтобы ученик не понял. С Английским проще. Поищите учебники(желательно сначала для первого класа) которые вам будут максимально понятны.
 

eevviill

Заблокирован
А как будет проходить обучение? но было бы не плохо поучиться , пригодится .
Я буду выкладывать урок. Детально объяснять. Вы-задавать вопросы(если что не понятно). И когда вопросы исчерпаются-будем переходить к следующему уроку.
 

eevviill

Заблокирован
Урок 1 - ex4 и mq4 файлы

Итак начнём с самого простого. Все скрипты, индикаторы и советники имеют разширенее файла ex4 или mq4.
Для чего 2 типа файлов?
1) mq4 это исходный код програмы. Значок выглядит как знак восклицания на желтом фоне. С таким расширением мы можем редактировать файл(код). Редактирование файла проходит в програме Meta Editor. Чтобы изменить код надо или просто открыть файл или в терминале на нужном на файле нажать изменить.
Если советник с таким расширением, то в терминале в вкладке советники мы будем видить слева от названия советника желтую голову с синей шляпой.
MQ4 НЕ ИСПОЛЬЗУЕТСЯ ТЕРМИНАЛОМ!
2) ex4 это скомпилированый файл. Его нельзя редактировать. Компиляция проходит тогда, когда при редактировании файла mq4 нажать кнопку "Компилировать"(сверху, по середине). Если советник с таким расширением, то в терминале в вкладке советники мы будем видить слева от названия советника серую голову с серой шляпой.
EX4 ИСПОЛЬЗУЕТСЯ ТЕРМИНАЛОМ!

P.S. Пока только 2 ученика. Жду вопросов. Если не будет вопросов, то переходим к следующему уроку.
 

cfifcfif

Элитный участник
Спасибо это я знаю как декомпельнуть как в коде методам тыка поменять код без ошибок чтобы был в журнале , дажи есть мой первый советник каторый я чучуть изменил проблема втом что зачто отвечает.
они таргуют отложками. ставим на карелирующие пары и пущай торгует каму интересно можете папробывать.:)
 

Вложения

  • крот-Buy.mq4
    28,5 КБ · Просмотры: 259
  • крот-Sell.mq4
    28,5 КБ · Просмотры: 186

cfifcfif

Элитный участник
кстати забыл сказать если кто попробует сов скажу так если стаят на 15менутах отложки будут ставить каждый 15 минут если на один час будут ставить каждый час и они ставят не тупа в одну сторону а ставят за ценой вообщем пробуйте
 

Ugar

Гуру форума
Только недавно создал свой скрипт и появилась мысль стать учителем
Интересный подход. По принципу учит то кто сам не может?
Установка советника, индикатора, диски, папки, файлы и их расширение, и даже установка терминала и винды, не относится к программированию. Это уровень пользователя, может чуть продвинутого, но пользователя, а не программиста. Так что первый урок не про программирование.
Может сразу перейти к программированию?
 
Последнее редактирование:

eevviill

Заблокирован
Спасибо это я знаю как декомпельнуть как в коде методам тыка поменять код без ошибок чтобы был в журнале , дажи есть мой первый советник каторый я чучуть изменил проблема втом что зачто отвечает.
Я конечно говорил про компиляцию, а не декомпиляцию. Ну ладно. cfifcfif Если ты не против, то буду на тебя ориентироватся. Если у тебя нет вопросов, то я продолжу.
 

eevviill

Заблокирован
Интересный подход. По принципу учит то кто сам не может?
Установка советника, индикатора, диски, папки, файлы и их расширение, и даже установка терминала и винды, не относится к программированию. Это уровень пользователя, может чуть продвинутого, но пользователя, а не программиста. Так что первый урок не про программирование.
Может сразу перейти к программированию?
Вообщето cfifcfif называл исходный код светлоголубоватым значком. Так что не надо расказывать с чего начинать.

Я не знаю зачем вы зашли в эту ветку(чтобы убить её или помочь), но представте ситуацию.
Во дворе играют пацаны в футбол. Играют слабо, коряво. Тут появляется професиональный игрок Джексон. Заходит на поле и говорит "Ну вы и лошары. Сечас я покажу как надо играть".
В данной ситуации вы похожи на Джексона.
 

cfifcfif

Элитный участник
eevviill если можно помедлиней мне кажетса что-то знаю а вдругое время думаю что вообще ничего незнаю вообщем ждём вас.
 

Maks42

Новичок форума
интересная тема. буду читать обязательно. может быть даже научусь чему нибудь.
 

cfifcfif

Элитный участник
Вообщето cfifcfif называл исходный код светлоголубоватым значком. Так что не надо расказывать с чего начинать.

Я не знаю зачем вы зашли в эту ветку(чтобы убить её или помочь), но представте ситуацию.
Во дворе играют пацаны в футбол. Играют слабо, коряво. Тут появляется професиональный игрок Джексон. Заходит на поле и говорит "Ну вы и лошары. Сечас я покажу как надо играть".
В данной ситуации вы похожи на Джексона.

ну да было помню такой неудобняк был поэтому и говорю вроде штото знаю а сдругой стороны вообще нехера незнаю.:)
 

Ugar

Гуру форума
Вообщето cfifcfif называл исходный код светлоголубоватым значком. Так что не надо расказывать с чего начинать.

Я не знаю зачем вы зашли в эту ветку(чтобы убить её или помочь), но представте ситуацию.
Во дворе играют пацаны в футбол. Играют слабо, коряво. Тут появляется професиональный игрок Джексон. Заходит на поле и говорит "Ну вы и лошары. Сечас я покажу как надо играть".
В данной ситуации вы похожи на Джексона.
Я никого лошарами не обзывал и не собираюсь учить кого то кодить. Уметь самому и уметь учить, это разные навыки. То что я умею писать программы ещё не означает что смогу кого то этому научить. И наоборот. Олимпийский чемпион завоёвывает золотые медали, а его тренер вряд ли сможет то же самое. Зато он смог обучить, натренеровать чемпиона. По этому, учит тот кто сам не может, это не обзывательство, а нормальная реальность.

Просто я подумал что если начинать с расширений файлов то до программирования вы долго не доберётесь. А между тем, начинающему программисту не терпится написать первую программу, пусть бестолковую, но работающую.
Ладно, прошу прощения что влез. Я уже говорил что учить не умею. Значит влез не в своё дело.
 

SilverKZ

Элитный участник
В свое время, когда изучал mql4, очень помогло:
1) учебник по MQL4 (архив из двух частей во вложенных файлах)
2) справка MetaEditor на русском языке, особенно по отдельным словам через ctrl + F1
3) изучение чужого кода с комментариями
 

Вложения

  • MQl4BookRussian.part1.rar
    1,4 МБ · Просмотры: 890
  • MQl4BookRussian.part2.rar
    567,2 КБ · Просмотры: 756

eevviill

Заблокирован
Урок 2 - основные функции и типы данных

На эту тему нужно обратить особое внимание. Так как если её не поймёте, то дальше можно не продолжать.
Итак. Для создания скрипта, советника или индикатора нужно в терминале на вкладке Советники, Пользовательские индикаторы, Скрипты нажать правой кнопкой мыши и выбрать Создать.
Выбираем Советник и даём название.
После этого у вас откроется Meta Editor с каким то кодом.
1.1) init()

1) Основные функции. Основными функциями являются:
Вызывается при инициализации(прикреплению к графику) файла. В этой функции нужно прописывать то, что вы хотите чтобы советник(индикатор) узнал сразу при прикреплении к графику.
1.2) deinit()
Вызывается при удалении с графика советника(индикатора). В этой функции нужно прописывать то, что вы хотите чтобы советник(индикатор) стёр с графика сразу при его удалении.
1.3) start()
Это основная функция советников, индикаторов, скриптов. Если без первых двух файл сможет работать, то без start() не сможет. У советников эта функция начинает работать после очередного тыка, у индикатора и скрипта - после прикрепления. Все вычислительные операции в советниках и скриптах надо проводить в этой функции.

2) Типы данных. Чтобы файл понимал что мы ему подсовываем, надо перед тем писать к какому типу данных это относится. Их можно объявлять(писать) прямо в функции где это надо, но лучше их писать сначало.
Есть такие типы данных:
2.1)
int - целые числа. Это те числа которые в априоре не могут быть дробными.
Пример
int Stop_Loss = 34;
2.2)
double - числа, которые могут быть дробными.
Пример
double ATR_Level = 0.0004;
2.3)
bool - логический тип данных. Может быть true\false
Пример
bool useATR = true;
2.4)
string - строковый тип данных. Переменной являются буквы.
Пример
string gb5 = "Hello";
2.5)
color - тип данных цвета.
Пример
color MA = Gray;
2.6)
datetime - тип данных времени.
Пример
datetime End_trade = 24.03.2012 14:03;

P.S. Следующий урок будет про разделительные знаки и операции(арифметическии, логическии и т.д.).
 
Последнее редактирование модератором:

Beast

Почетный гражданин
а теперь вопросы по типам переменных.
каким образом конвертировать одни в другие.

пример нам надо добавлять 5 пунктов к стоплосу и тп
описываем переменную
int sl_shift = 5
как теперь ее добавить к double (sl=sl+sl_shift)
double sl = 1.3200
так чтобы в результате получилось 1.3205, а не 6.3200
 

eevviill

Заблокирован
Урок 3 - разделительные знаки и операции

1) Разделительные знаки.
1.1) , (запятая) - применяется для отделения названий свойств некоторой операции. Может не понятно объяснил, но по примеру поймёте.
Пример
PHP:
MarketInfo(Symbol(),MODE_LOTSTEP);
1.2) ; (точка с запятой) - используеться для завершения какого то расчёта. Смысл примерно такой как точка в конце предложения.
1.3) {} (квадратные скобки) - применяются для начала фунции и конца.
1.4) () (скобки) - в них(не всегда) записываются свойства операции.
1.5) " " (не знаю как называются) - то что в них не используется в самых расчётах, но можна выводить на экран или в настройки.
1.6) // или /* */ - используются для коментирования кода. 
Если // в начале строки то всё что дальше закрасится в серый цвет и експертом вообще не будет применятся.
Если надо больше одной строки, то в начале /* и в конце */ надо поставить.

2) Операции.

Арифметические операции.
+Сумма величинx + 2 -Вычитание величин или изменение знакаx — 3, y = — y *Умножение величин3 * x /Частное от деленияx / 5 %Остаток от деленияminutes = time % 60 ++Добавление 1 к значению переменнойy++y = y + 1--Вычитание 1 из значения переменной
(+,-,*,/) - это все знают.
% Остаток от деления
++ Добавление 1 к значению переменной - тоесть x=6. Если х++, то х=7
-- Отнемание 1 из значения переменной

Операции присваивания
= Присваивание значения x=6
+= Увеличение значения переменной x+=3 значит x+3
-= Уменьшение значения переменной
*= Умножение значения переменной
/= Деление значения переменной
%= Остаток от деления значения переменной

Операции отношения
== Истина, если x равно y x == y
!= Истина, если x не равно y x != y
< Истина, если x меньше y x < y
> Истина, если x больше y x > y
<= Истина, если x меньше или равно y x <= y
>= Истина, если x больше или равно y x >= y

Логические операции
! (логическое отрицание)
|| (ИЛИ)
&& (И)


P.S. Завтра вечером будем писать простенький скрипт.
 
Последнее редактирование модератором:
Верх