Будьте готовы к выходу свежего MetaTrader 4 с обновленным языком MQL4 - страница 12

 
Laryx:

Как раз мне, как программисту - совершенно не нравятся ни сложные структуры, ни всевозможные ООП-ухищрения. Все они - это лишняя нагрузка и на комп, и на меня. Для меня идеальная программа состоит из нуля операторов.

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

=Не факт 

Это все равно, что врач начнет рассуждать, что, мол, "ему, как врачу не нужны ни температуры жидкого гелия, ни мощные магнитные поля, ни хитроумные детекторы и прочее, из чего состоит МРТ-томограф - ему нужно как можно проще знать, что находится у пациента внутри, не убив его при этом". Вопрос - как собирается врач "загянуть внутрь пациента" без томографа ?

=И он абсолютно прав.  Врачу не нужны ни температуры жидкого гелия, ни мощные магнитные поля, ни хитроумные детекторы и прочее, из чего состоит МРТ-томограф. Врач должен уметь использовать томограф. И его не интересует внутренняя начинка аппарата. 

Аналогию даже можно продолжить - МТ4 без ООП - это что-то  типа рентген-аппарата, а МТ5 или МТ4 с ООП - это что-то вроде томографа. Безусловно, чтобы увидеть перелом - достаточно рентгена. Но вот для чего-то более сложного - лучше иметь томограф.

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

Не согласен - для меня это значительное упрощение работы, и возможность применить наработки, написанные в совсем других областях на С++.  Я, фактически, просто беру готовые классы, давно написанные и хорошо отлаженные - и почти через Copy-Paste переношу их из MSVC в МТ5. (а сейчас - и в МТ4).

= Так и я говорю. Мне как пользователю главоболие, вам как программисту значительное упрощение работы. 

МТ4 без ООП - хорош, пока нужно написать небольшой индюк. А вот когда требуются сложные советники, или даже те же индикаторы - на МТ4 начинаются реальные заморочки - код становится поддерживать крайне сложно.  Скажем, мой класс CINIFile (и необходимые для его работы CINISection, а также CArrayString, CArrayObj, и некоторые другие из Стандартной Библиотеки) - гораздо гибче и удобнее в использовании, чем все процедуры для работы с INI-файлами, которые я видел в МТ4. А ведь использование INI-файлов очень удобно.  Более того - у меня есть отлаженный класс CRegINIFile - для работы с реестром - простая замена в коде одного класса другим приводит к тому, что все записи из INI-файла переносятся в реестр, и мы работаем уже там. Весь остальной код - "не замечает" подмены.  

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

Как раз полезная отдача есть.

Безусловно, если нам надо посадить одно дерево - разумно взять лопату, а не заводить экскаватор. Но для котлована лопата подходит мало.

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

Удачи 

 
vlad1949:

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

Удачи 

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

Смешно, да?

Удачи

 
 vlad1949:

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

Да почему же ?

Я хочу ясно видеть плюсы и минусы того или иного подхода.  Для простейшего индикатора а-ля АТR - ООПшный огород городить - совершенно не имеет смысла, и индикатор АТR для МТ4 и МТ5 - будет выглядеть практически одинаково, вполне себе МТ4-style.

Ну а если надо что-то более комплексное ? Скажем, тот же индикатор АТR, но взятый не последовательно, а параллельно - то есть мы берем средние часы не как они идут, а первый час сегодня, вчера, позавчера... И так - параллельно каждый из 24 часов.  Вот тут - уже ООПшный подход будет примерно столь же трудоемок, и индикаторы для МТ4 и МТ5-ООПшные будут примерно одинаковы по объему.

Но самое интересное будет, если потребуются дальнейшие разработки, хотя бы тех же "параллельных" индикаторов. Если нам потребуется не АТR, а любой другой индикатор "впараллель" - то с ООП надо будет доделать очень немногие моменты. В МТ4 же придется копировать весь код индикатора, рискуя где-то чего-то не учесть.

То есть, на мой взгляд, разница подходов разделяется именно по объему работы. Где объем маленький - вполне сойдет старый МТ4-подход. Но там, где работы много - без ООП будет слишком сложно.

Вот вы сказали, что вам требуется решать задачи ЛЮБОЙ сложности - соответственно, подход должен быть разным для простых и сложных задач. И новый МТ4 (и МТ5) - это позволяют. А старый МТ4 - нет.

 

При компиляции примера из "Справочника MQL4"(статья AccountInfoInteger) выдается ошибка

'ENUM_ACCOUNT_TRADE_MODE' - undeclared identifier ttt.mq4 20 4

 

void OnStart()
  {
//--- выведем всю информацию, доступную из функции AccountInfoInteger()
   printf("ACCOUNT_LOGIN =  %d",AccountInfoInteger(ACCOUNT_LOGIN));
   printf("ACCOUNT_LEVERAGE =  %d",AccountInfoInteger(ACCOUNT_LEVERAGE));
   bool thisAccountTradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_ALLOWED);
   bool EATradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_EXPERT);
   ENUM_ACCOUNT_TRADE_MODE tradeMode=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
.
.
.

 

такой вопрос, а что за файл mql.exe? то clam ругается.

sudo clamscan -r -i --bell --log /tmp/virus.log /home/xxx/

/home/xxx/.wine/drive_c/Program Files/MetaTrader - E-Global Trade & Finance Group/mql.exe: BC.Heuristic.Trojan.SusPacked.BF-6.A FOUND


 
Это ложное срабатывание антивируса.
 
Пожалели иконку для метаэдитора нового).
 
WWolf:

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

эти тихушные обновления бесят :) нет времени сидеть у вас на форуме и смотреть что же вы опять нового придумали и как этого избежать :)

Согласен полностью. У меня четыре терминала, а пака для всех четырёх терминалов одна. И когда я попробовал определить где есть что и откуда, то естественно не смог! Более того, я не нашёл там индюки и роботы которые имели одинаковые названия, но были заточены каждый под свой терминал! Я решил всё восстановить, но с новым MQL4. Сегодня весь день потратил на восстановление полной совместимости. Теперь едитор не выдаёт ошибок, но остаются предупреждения. Впереди выходные, думаю управлюсь. Но есть и положительные стороны. например, если добавить папку MQL5 и в неё поместить mql5.exe, то терминал автоматически создаст нужные папки. Тут стоит подумать о переключателе в едиторе с MQL4 на MQL5 и наоборот, было бы совсем не лишнее. Впрочем пусть сами думают своими мозгами, с такими головотяпами я делится не собираюсь. Да и написал то для людей, а не для создателей новой платформы.
 

Обновил МТ4 до 606 билда, МЕ до 887.

Компилирую ранее написанный код, при запуске скрипта  выдает:

2014.02.15 11:41:26.729 Access violation read to 0x62333338 in 'E:\Program Files (x86)\MT4\MT4_Test\MQL4\Scripts\BTCe\BtceTest.ex4'

 ex4 полученный каким то предыдущим компилятором - работает.

 
kPVT:

Обновил МТ4 до 606 билда, МЕ до 887.

Компилирую ранее написанный код, при запуске скрипта  выдает:

 ex4 полученный каким то предыдущим компилятором - работает.

Паша,  давай больше информации, у телепатов до понедельника выходные.
Причина обращения: