Обсуждение статьи "Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5"

 

Опубликована статья Стать хорошим программистом (Часть 1): избавляемся от пяти привычек, чтобы лучше программировать на MQL5:

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

Прежде чем искать решения для своей проблемы, надо понять причины ее возникновения. Только разобравшись, вы сможете задавать правильные вопросы на форуме, а не постить код в надежде получить исправленное и правильно работающее решение в ответ. А ведь проблема может быть связана с тем, что вы просто не понимаете, что и зачем пишете. Опять же возьмем мой пример: я скопировал где-то код, чтобы изменить шаблон графика, не понимая и вообще не зная ничего о работе с графиками через стандартную библиотеку. И что в итоге? Я написал, что библиотека не работает.

Как только вы столкнетесь с проблемой или ошибкой, убедитесь, что вы понимаете все библиотеки и код, который не работает. Есть разные способы найти соответствующую информацию на MQL5. Основные, это:

  • Документация по MQL5
  • Форум

Документация по MQL5:

К счастью, в нашем распоряжении есть отличная документация со всей нужной информацией и не нужно искать где-то в интернете. Профессиональные программисты знают о документации и пользуются ей. А для начинающих я напишу, как быстро ее найти: откройте MetaEditor, меню Справка и выберите Справочник MQl5.

Доступ к документации

Автор: Omega J Msigwa

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

спасибо за ценные советы.

 
int CountPosByType(ENUM_POSITION_TYPE type)
  {
   int counter = 0;
   for(int i=PositionsTotal(); i>=0; i--)
      if(m_position.SelectByIndex(i))
         if(m_position.Magic()==MagicNumber && m_position.Symbol()==Symbol() && m_position.PositionType()==type)
            { 
                counter++; 
            }
   return counter;
  }

  • Первое значение переменной в цикле ошибочное.
  • Вместо одного if стоит два.
  • string-сравнение (символ) должно стоять в конце.
  • bool-выражения не выделены скобками.
  • Мэджик-переменная отсутствует во входных функции.
  • Объект позиции не создан.
 
fxsaber #:

разные отступы и стили фигурных скобок, т.е. своему совету про стилизатор не следует )

крч ни о чем

 

Функция довольно проста и вроде ее можно понять. Но она не отвечает требованиям чистого кода. Поэтому применим стилизатор. Это просто: нажимаем на синюю кнопку в виде расчески в MetaEditor и причесываем код.

по-моему стилизатор не позволяет получить чистый код 

чистый код это не много другое

 
Тот кто слепо копирует чужой код может называться программистом? 
 
Любопытно, что дальше будет...
 
Sofiia Butenko #:
Тот кто слепо копирует чужой код может называться программистом? 

что за. тем то не знает, что делать?

 
Sergey Pavlov #:
Любопытно, что дальше будет...

Омега пишет в английской ветке. Следующая статья Better Programmer (Part 02): Stop doing these 5 things to become a successful MQL5 programmer.

Omega J Msigwa
Omega J Msigwa
  • www.mql5.com
Trader's profile