Может ли чайник написать робота? Что два байта переслать! Глава 2.

24 января 2020, 22:20
Programmer96
[Удален]
0
106

Основы языка

     В этой главе конспективно изложено то что нужно знать как таблицу умножения. Это то, что нужно знать не заглядывая в документацию. Знание назубок основ языка обязательно. Хотя бы для того чтобы свободно читать код работ опубликованных в Библиотеке сайта. Там есть много очень даже толковых работ. Умея читать можно выудить из них нужные вам алгоритмы и функции. Или, если работа имеет хорошо проработанную "исполнительную машину", модифицировать чужую работу под вашу идею, добавив свой алгоритм открытия/закрытия сделок.

________________________________ Содержание ________________________________

  • Введение
  • Первый шаг
  • Основы языка
  • Переменные 
  • Функции
  • Учимся читать
  • Обучение методом "Ломаем/строим". Модификация чужого кода
  • Работа над ошибками
  • Как найти "иголку" в стоге кода функции которую якобы можно использовать "как есть"?
  • Графический интерфейс
  • Пишем простой советник с нуля
  • Пишем сеточный советник с Мартингейлом
  • Перечень вложений

Основы языка

   Ранее я писал "не нужно зубрить". Это не совсем так. Кое-что нужно знать не хуже чем таблицу умножения. Ниже я перечислю самое основное из "обязательной программы", остальное найдете в Документации. Где искать - подскажу.

   Комментарий:
  //   Это однострочный комментарий.  Если вам нужно исключить из кода какую-то строку не удаляя ее или написать какую-то памятку для себя - ставите // в начале строки

  /* 
      А это блочный комментарий.
      Между этими знаками можно роман писать.
      Причем на любом языке - компилятор этот текст игнорирует. 
  */ 

   Типы данных:
  int   Целое число. Минимальное значение -2 147 483 648, максимальное 2 147 483 647

  double  Десятичные числа двойной точности.

  string   Предназначен для хранения текстовых строк.

  void     Этот тип используется для указания того, что функция не возвращает значения

  bool     Переключатели (флаги). имеют значения 0 (false) или 1 (true)

  color   Цвет

 datetime  Дата и время

   Арифметические операции  
Сумма величин                          
i = j + 2;
Вычитание величин          
i = j - 3;
Изменение знака                       
x = - x;
Умножение величин                 
z = 3 * x;
Частное от деления                   
i = j / 5;
Добавление 1 к значению переменной     
i++; или   ++i;
Вычитание 1 от значения переменной    
k--;  или   --k;
 Операции присваивания
 
 Присваивание значения x переменной y                 
  у = x;
 Эти операции объединяют арифметические операции с операцией
 присваивания:         
Умножение значения переменной на число или переменную 
a *=10;  или a *= c;
Деление значения переменной на число или переменную a /=10; или  a /= c;
Прибавление к переменной числа или переменной a +=10; или a += c;
Вычитание из переменной числа или переменной a -=10; или a -= c;
 Операции отношения  
 Истина, если a равно b                      
 a == b;
 Истина, если a не равно b                   
 a != b;
 Истина, если a меньше b                     
 a < b;
 Истина, если a больше b                     
 a > b;
 Истина, если a меньше или равно b           
 a <= b;
 Истина, если a больше или равно b           
 a >= b;
 Логические операции  
 Логическое отрицание НЕ  !
 Логическая операция ИЛИ
 ||
 Логическая операция И
&&
 Другие операции  
   Запятая
Выражения, разделенные запятыми, вычисляются слева направо.
 ,
  Точка с запятой
Обозначает конец оператора
 ;
 Вызов функции 
 ( )
 Указывает на элемента массива
 []   [0]  [1] и т.п.
   

Операторы

 
 Составной оператор
Один или более операторов любого типа, заключенные в фигурные скобки {  c=a+b;  a +=10; tikFind=true; break;   }
 { }
 Оператор-выражение
Выражение, заканчивающееся точкой с запятой   tmDif=(tm-clsTM)/60;
 ;
 Оператор прекращает выполнение текущей функции и возвращает управление вызвавшей программе  return
 Условный оператор
Используется при необходимости сделать выбор
 if-else
 Оператор цикла
Крутит цикл до тех пор, пока проверяемое выражение не станет ложным.
 while
Оператор цикла
Прокручивает цикл до тех пор, пока проверяемое выражение не станет ложным. Проверка выражения производится перед каждой итерацией
 for

  Выше я кратко перечислил самое-самое.
Но это далеко не все что вам нужно знать из этого раздела документации.
     Запустите встроеный в терминал редактор, нажмите клавишу F1 - откроется встроенная справка.
Далее - все что выделено на рисунке оранжевым прямоугольником вам нужно очень внимательно прочесть.
В документации даны развернутые описания, приводятся примеры использования и т.д.
Иногда описания слишком развернуты, иногда недостаточные, иногда слишком мудреные (нужно же было автору показать свою ученость ;), но понять можно.

    Альтернативный вариант - Онлайн-документация на сайте MQL4.com
Там все то же самое, но не работает поиск, что несколько затрудняет работу, приходится постоянно листать содержание.
Более удобоваримое описание всего что вам нужно есть в онлайн-учебнике Сергея Ковалева.
   Там же найдете множество примеров и функции которые можно использовать  убрав из них все что вам не нужно.
Несмотря на то что учебник был опубликован в 2008 году, он вам будет полезен. Но кое-что в нем устарело, кое-чего нет - последнее слово за Документацией.

  Отнеситесь серьезно, не изучив этот материал, вы не сможете понять то о чем я буду писать далее.



    С первого прочтения вы далеко не все поймете как в доке, так и в учебнике.
Возвращаться к тем или иным разделам вам придется неоднократно. Несмотря на то что я пишу на MQL4 около 12 лет, периодически приходится заходить в документацию. Причина проста - я никогда ничего не зубрил в школе, не зубрил и здесь. Важно не помнить все от А до Я, а ПОНИМАТЬ язык. Нужное всегда найдете.
   Ранее опубликованные посты (с августа 2014)


Поделитесь с друзьями: