Как Вы учили язык MQL4/5? - страница 4

 
Ivan Butko #:

Чтобы вызвать индикатор, нужно проделать дополнительные операции с хендлами, копибаферами, затем перепутать полярности индексаций и запутаться
В МТ4 один раз одной строчкой вызываешь любой индикатор и ставишь ему любой период. Хоть 1000 периодов. 
В МТ5 нужно инициировать 1000 индикаторов с 1000 периодами, помноженными на количество настроек. 
В МТ4 удалил индикатор с алертом с графика, и работаешь дальше. 
В МТ5 удалил индикатор с графика - он продолжает трезвонить из воздуха. Надо было дополнительно ИндикаторРелиз прописывать.
В МТ4 чтобы нарисовать линию индикатора - рисуешь линию индикатора. 
В МТ5 чтобы нарисовать линию индикатора - вызываешь плот Юрия Лозы. 
А если есть расчетные буферы между отрисоаывающимися, то запутаешься чей плот 
Бид, Аск, Тайм, Опен, Хай, Лоу, Клоз - в МТ5 нужно полностью прописывать, либо создавать кастомную функцию. 

Ну что ж... Понятно. Со всеми замечаниями согласен с оговорками. 

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

Вот тут как раз очень кстати ООП-подход. Когда ты просто одной строчкой вызываешь индикатор, и ставишь ему любой период хоть в МТ4, хоть в МТ5. 


В МТ4 чтобы найти что-там в исторических ордерах - нужен один цикл. В МТ5 чтобы найти что-то в исторических ордерах, нужен хороший программист

Да, верно. У меня, наверно, с десяток довольно больших классов обслуживают исторические данные. И, когда я их писал, мне даже пришлось ввести понятие TradePositionComponent - аналог ордера в МТ4 и пары сделок в МТ5, далее в моей библиотеке вся работа идёт именно через них.

Но, опять же - это чисто результат повышения гибкости, возможность работы на бирже.  

 
Georgiy Merts #:

Можно раскрыть мысль? 

По мне - так особой разницы и нет. После добавления нормального ООП - больше ничего кардинально не поменялось, причём те, кому ООП не нравится - могут по-прежнему писать без его применения. 

Скажем, все настройки я храню в SQL-датабазе, но, если для МТ4 мне нужен был адаптер и доступ к SQL.dll, то сейчас всё работает изначально с базами данных, что мне очень даже нравится. 

Вот, ввели векторы-матрицы, комплексные числа - отлично, в МТ4 у меня были отдельные классы для работы с ними... 


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

Но, в каком месте в МТ5 "переусложнение" по сравнению с МТ4 ? Я что-то этого не вижу... Можно пальцем показать?

Для написания ботиков лучше заходят всякие скриптовые ЯП. Минимум кода - максимум выхлопа. Писать огромные портянки под форекс на низкоуровневом ЯП - видится переусложнением. 

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

В итоге вместо пяти минут убиваешь день на ерунду. 
 
moskitman #:

Отлично.
Зашибательно!
Апупительно!!

А зачем? Какой смысл? Рыба где? MQL это давно уже секта программистов, программирующих ради программирования.

Зачем? Ну, скажем, вот, чтобы нарисовать такой график:


- выполняется расчёт Методом Наименьших Квадратов, который приводит к системе линейных уравнений, наиболее удобно решаемых именно с помощью матриц. 

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

 
Grigori.S.B #:

Кое-что поменялось кардинально. Возьми ордера, позиции, сделки.

Да-да. Это единственное, с чем я полностью согласен. 

Однако, это не вопрос языка, а вопрос применимости платформы. МТ5 изначально разрабатывался, как платформа для биржевой торговли, с её особенностями, которые имеют больший "вес". 

 
Maxim Dmitrievsky #:
Для написания ботиков лучше заходят всякие скриптовые ЯП. Минимум кода - максимум выхлопа. Писать огромные портянки под форекс на низкоуровневое ЯП - видится переусложнением. 

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

В итоге вместо пяти минут убиваешь день на ерунду. 

Берёшь библиотеку - и дальше убиваешь не слишком много. 

Если лень самому писать - берёшь старую библиотеку уважаемого fxsaber'a - и получаешь полностью переносимый код, также за пять минут.

Но, зато, МТ5 - ты можешь писать роботов для любых символов, в том числе, биржевых. А на МТ4 - это невозможно.  Усложнение ордерной системы - это прямой результат "расширения сферы интересов". Спрашивать "нафига" - это все равно, что ученики спрашивают "нафига производные-интегралы, если вполне неплохо обходились арифметическими действиями". 

 
Georgiy Merts #:

Берёшь библиотеку - и дальше убиваешь не слишком много. 

Если лень самому писать - берёшь старую библиотеку уважаемого fxsaber'a - и получаешь полностью переносимый код, также за пять минут.

Но, зато, МТ5 - ты можешь писать роботов для любых символов, в том числе, биржевых. А на МТ4 - это невозможно.  Усложнение ордерной системы - это прямой результат "расширения сферы интересов". Спрашивать "нафига" - это все равно, что ученики спрашивают "нафига производные-интегралы, если вполне неплохо обходились арифметическими действиями". 

Нахрена мне библиотека сабера, которая компилируется 2 минуты, если я скачиваю терминал и мне просто нужны функции бай/сел? :) delete terminal 
 
Maxim Dmitrievsky #:
Нахрена мне библиотека сабера, которая компилируется 2 минуты, если я скачиваю терминал и мне просто нужны функции бай/сел? :) delete terminal 

Как ты собрался использовать "функции бай-селл", если ты только скачал терминал, и даже не открыл МетаЕдитор? 

Давай не отрываться от реальности. 

Библиотека - просто офигительная, и позволяет программировать "в стиле МТ4" для всех желающих.

И что-то странное у тебя получается... У меня несколько сотен файлов - и компилируется быстрее... Хотя, две минуты-то можно и подождать...

 
Georgiy Merts #:

Как ты собрался использовать "функции бай-селл", если ты только скачал терминал, и даже не открыл МетаЕдитор? 

Давай не отрываться от реальности. 

Библиотека - просто офигительная, и позволяет программировать "в стиле МТ4" для всех желающих.

И что-то странное у тебя получается... У меня несколько сотен файлов - и компилируется быстрее... Хотя, две минуты-то можно и подождать...

У меня торговые системы генерятся быстрее, чем компилируются ваши торговые библиотеки :)

Не нужно ни в чьем стиле, нужны функции бай/селл и для остальных типовых операций, чтобы самому ничего не писать. А для любителей писать код - низкоуровневое. 
 

И мои 5 копеек. Я начал изучать MQL4 вроде в середине 2006 года. Как обычно у меня бывает, во всем виновата женщина )). Оля тогда прошла обучение в одной кухне за $200, ничего не поняла, и ей предложили вложить вроде $5000 или больше в управление их супермегатрейдерами. Я сказал:«Не вздумай, давай я сейчас  во всем разберусь». Скачал MT4, обнаружил там жалкое (на тот момент) подобие языка Си, стало интересно. 

Но я тогда имел богатый опыт работы в российских и иностранных фирмах на С/С++, Delphi, Matlab. Так что особых проблем не возникло. Терминал тогда был совсем сырой, постоянно валился редактор, не было нормальных дефайнов и структур! Не говоря уже об ООП. Поэтому в начале всю логику клал в DLL на С++, которую писал в Visual Studio, а советник выполнял простейшие функции. Сейчас МТ4 и МТ5 отличные терминалы и для меня надобность уходить в DLL практически отпала отпала. 

Я легко схватываю технические вещи и считаю, что если человек способен написать рассказ (а я пишу рассказы), то и программирование освоит легко. Потому что я с горечью вижу, что многие люди элементарно не могут внятно выразить свою мысль. А с билда 600 (вроде в начале 2013 г.) MQ довели MQL4 до уровня пятерки, появились дефайны в стиле С/С++, структуры и ООП. Сейчас все еще пишу мултиязычные программы, то есть один исходник компилируется под MQL4 и MQL5, тоже никаких ужасных сложностей.

 
Maxim Dmitrievsky #:
Нахрена мне библиотека сабера, которая компилируется 2 минуты, если я скачиваю терминал и мне просто нужны функции бай/сел? :) delete terminal 

В чём проблема? Есть такие функции в MQL5.

   bool              Buy(const double volume,const string symbol=NULL,double price=0.0,const double sl=0.0,const double tp=0.0,const string comment="");
   bool              Sell(const double volume,const string symbol=NULL,double price=0.0,const double sl=0.0,const double tp=0.0,const string comment="");

Выделенное красным писать не надо. Эти значения по умолчанию автоматом поставятся…

А в остальном согласен… Всё предложенное хрень несусветная…