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

 
Vasiliy Sokolov:

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

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

Соответственно мы определили новое перечисление, которое внедрили в качестве параметра выбора для пользователя.

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

 
MrBrooklin:

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

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

Примите к сведению, что учебник MQL4 от Ковалева - лучший вариант. Он где то здесь на сайте. Лучше не найдете.
 
Vasiliy Sokolov:

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

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

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()                                                    
  {
   if(orderType1=="BUY_STOP")
     SendBuyStop(Lots, Distance);     
   if(orderType2=="SELL_STOP")
     SendSellStop(Lots, Distance);
  }
  

И это все. У нас есть простая схема-алгоритм перед глазами, которая к тому же еще и реально работает. Мечта одним словом.

 
Roman:

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

При чем тут ошибки, вы ведь даже не знаете как for работает, но советы раздаете. Были поставлены на место собственно, без обид)

 
Реter Konow:
Примите к сведению, что учебник MQL4 от Ковалева - лучший вариант. Он где то здесь на сайте. Лучше не найдете.

Это откровенное старье, которое нафиг сейчас никому не нужно. Лучше Кафку перед сном почитать что ли. И то пользы больше.

 

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

Учебник Сергея Ковалева https://book.mql4.com/ru

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

При чем тут ошибки, вы ведь даже не знаете как for работает, но советы раздаете. Были поставлены на место собственно, без обид)

Охо хо хо ))

Раздают тут советы другие.
Была задана задача относительно условия for, на неё не кто не ответил, включая вас!
О каком месте, может быть речь, если я вижу обратную картину ))

 
Vasiliy Sokolov:

Это откровенное старье, которое нафиг сейчас никому не нужно. Лучше Кафку перед сном почитать что ли. И то пользы больше.

Что значит старье? Азбука, букварь, могут быть старьем? Может арифметика старье?

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

 
Реter Konow:
Василий, человек еще даже массивы не освоил. Рано ему подобные лекции слушать.)

Петр, вот давай не будем. Давай вспомним как несколько лет назад мы тебе на форуме ООП объясняли)

Ну реально, сейчас даже не все современные программеры понимают что такое массив. Все с list работают, и не у каждого ЯП внутри это массив. Где-то это перечислитель + map например, и ни чо, пипл не жалуется.

 
Vasiliy Sokolov:

Петр, вот давай не будем. Давай вспомним как несколько лет назад мы тебе на форуме ООП объясняли)

Ну реально, сейчас даже не все современные программеры понимают что такое массив. Все с list работают, и не у каждого ЯП внутри это массив. Где-то это перечислитель + map например, и ни чо, пипл не жалуется.

Не, ну ты загнул конечно.))) (Вспомнил, что мы с тобой на ты. Давно ж тебя здесь не было:)) 

Массивы должны знать все!))), а вот ООП - необязательно. Хорошо конечно, но ТС рано об этом говорить.
Причина обращения: