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

 
MrBrooklin:

Здравствуйте, Алексей! Извините, что сразу не отреагировал на Ваш пост. Ссылка очень интересная. Просмотрел коды всех 11-ти видов трейлингов и библиотеки функций. Всё очень позновательно, хотя и написано на языке MQL4. Честно говоря, даже и не предполагал, что существует столько видов трейлинга. Большое Вам спасибо за содействие!

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


Да все гуд! :-)
Если честно, то ожидал вашей реакции... :-)
Хочу сообщить, что благодаря вам и Василию Соколову сам тут начал ревизию наводить в своих кодах и библиотеках...
Спасибо Вам за мотивацию!
Он вам грамотно все расписал в плане старта шаблона трала. Тем более названия функций интуитивно понятны это вообще гуд. Вы сами уже к этому подошли в своих кодах. Тут же все понятно. Идет тело экспа трала, далее функции. Вы и так сами в своих кодах уже дошли до этого, так что все норм. Сейчас главное их наполнить смвсловой нагрузкой а именно перевода в безубыток ну и собствннно трала для бай поз и селл.
 
MrBrooklin:

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

Понимаю, что Вы, как и многие уже устали от постоянного разжевывания мною всех строчек кода и топтания на месте, но проблема заключается как раз в том, что до сих пор у меня нет понимания принципа построения всего, начиная от алгоритма и заканчивая написанием кода. Сюда нужно ещё и прибавить отсутсвия знаний в английском языке, т.к. практически все сообщения компилятора об ошибках и предупреждениях, да и другие английские слова, мне приходится копировать и вставлять в Гугл Переводчик. Кстати, если кто-нибудь пробовал запускать те микро, даже нано-коды, которые выкладывал в этой теме, то они все прошли компиляцию с  "0 error, 0 warnings".

Теперь мне нужно некоторое время, что бы осознать, а точнее разобраться, почему появились эти функции и операторы. Короче - тихий ужас. Да и плохой из меня ученик, если не понимаю элементарных вещей.

Спасибо Вам и всем другим программистам, что Вы всё ещё терпите моё тугодумие. Хотя при этом, прекрасно понимаю, что Ваше терпение не безгранично.

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


Что то если не понятно в мета эдиторе нажимайте F11 на подсвеченных операторах в коде шаблона Василия и изучайте справку по ним.
 
Aleksey Masterov:

Что то если не понятно в мета эдиторе нажимайте F11 на подсвеченных операторах в коде шаблона Василия и изучайте справку по ним.

Здравствуйте, Алексей! Спасибо за совет. Про кнопку F1 (наверно её Вы имели ввиду) узнал, как только начал изучать язык MQL5. Хэлпом, т.е. Справочником MQL5, пользуюсь постоянно и смотрю встречающиеся там примеры, которые объясняют, как пользоваться тем или иным свойством изучаемого предмета (переменная, оператор, цикл, функция, класс и т.д.).

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

 
MrBrooklin:

Здравствуйте! Максим выше правильно сказал краткое описание, что делает та или иная функция помогает в понимании и запоминании,

добавлю, заголовки помогают отыскать в куче кода нужный блок, например блок вводимых параметров начинается с заголовка

//+------------------------------------------------------------------+
//| Expert input parameters                                          |
//+------------------------------------------------------------------+
 
Простое задание Владимиру:
Написать скрипт с вычислением факториала заданного числа. Число задаётся через параметры и может быть в диапазоне от 1 до 15 включительно, при выходе за указанный диапазон, вывести сообщение. Ответ также надо вывести.
 
Aliaksandr Hryshyn:
Простое задание Владимиру:
Написать скрипт с вычислением факториала заданного числа. Число задаётся через параметры и может быть в диапазоне от 1 до 15 включительно, при выходе за указанный диапазон, вывести сообщение. Ответ также надо вывести.

Здравствуйте, Александр!

Здравствуйте, уважаемые участники данной темы!

До ближайших выходных, т.е. до 17 октября, решил взять паузу по нескольким причинам:

  1. Из-за переизбытка информации, полученной за столь короткий для меня срок, наступил полный ступор!
  2. Мне нужно немного отдохнуть и полностью переключиться на другие темы, не заглядывая на форум сайта MQL5.
  3. В выходные дни планирую снова сесть за компьютер и прочитать все сообщения с 1-й по 59 страницу этой темы.
  4. Произвести анализ всего того конструктивного материала, который был любезно предоставлен участниками данной темы, и сделать соответствующие выводы.

Далее буду стараться реже выкладывать код, но с таким расчётом, чтобы он был более насыщенным и обснованным, а не так как делал раньше, когда выкладывал по несколько строчек, отвлекая участников форума от более важных дел.

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

До выходных!

С огромным уважением ко всем, Владимир.

 

Пока у ТС таймаут..

паралелльно с этой темой учу детей программированию (им как-бы в школе надо, а преподают "поубивав бы") . Поэтому есть некоторые выводы и примечания.

1. Крайнее важен визуальный, ощутимый, видимый и значительный результат. Минимум внесённого, напечатаного кода должен приносить максимум эффекта.

2. Мы, как уважаемые сами-собой гуру, топим ТС в деталях. У него должно быть каша в голове из MQL и API платформы.

3. MQL совершенно не годен для обучения с 0 ..:-(  имея бекграунд, он довольно прост, но основу надо ещё получить

чтобы поспособствовать ТС в обучении с уровня зеро,

надо заранее/сразу предоставить работающий в тестере советник с минимальным кодом, который он уже будет дополнять и изменять.

в последней (оно же первая о трале) задаче - чтобы написав чуть и запустив сову в тестере ТС видел как именно траллится стоп.

 

Закидали тут, смотрю, человека советами. Тоже решил подписаться, глядишь совсем желание отобью))) Шутка.

Ок. Дано: хочу трал классический.

Делим задачу на две:

  1. Собственно трал.
  2. Что-то на экран выдать.
Пишем код:
enum EMessType{Init,Deinit,Set};

int OnInit(void){
   Messenger(Init);
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason){
   Messenger(Deinit);
}

void OnTick(){
   Messenger(Set,Tral());
}
  
string Tral() {return "0";}

void Messenger(EMessType fType,string fInfo=""){
   switch(fType){
      case Init:
      case Deinit:
         Comment("");
         break;
      case Set:
         Comment(fInfo);
   }
}

Что тут происходит?

  1. У нас есть функция Messenger, которая будет выводить сообщения.
  2. У нас есть функция Tral, которая будет тралить ордера, пока это, так называемая "заглушка", которая возвращает некое валидное для выполнения кода значение.
  3. Есть перечисление EMessType, которым мы определяем в функции Messenger, что именно мы от нее хотим, там есть блок Init, DeIni и Set

Это пример простенькой такой декомпозиции.

Все, жена пришла, испаряюсь)))

Завтра продолжим)))

PS Если скучно стало, то не стесняйтесь, скажите)))

 
за одно недельный курс по enum)
 
И чего вы уперлись в этот трал? Трал это второстепенный кусок советника, не более. Лучше бы индикатор поразбирали, ту же машку.
Причина обращения: