МТ4 или МТ5. Какие преимущества и недостатки? - страница 6

 

человеку наврали, что 4 и 5 это одинаковые языки. он проверил, что это не так. а потом его еще и обосрали. )))

 
Aliaksandr Yemialyanau:

Этот код как раз опровергает утверждение что "МТ4 и МТ5 - это абсолютно одинаковый язык"

В некоторых мелких нюансах, но если сразу учитывать разницу, то вполне хватает

#ifdef __MQL5__
     #include <Trade_MQL5.mqh>
#else
     #include <Trade_MQL4.mqh>
#endif
CTrade trade;


с одноименными функциями и вполне дальше можно писать один код не заморачиваясь на некоторые отличия.

Например в Trade_MQL5.mqh

class CTrade
{
public:
     CTrade(){};
     ~CTrade(){};


     // Информация по ордеру
     int       Orders_Total()      { return( PositionsTotal() ); }
     string    Order_Symbol()      { return( PositionGetString(POSITION_SYMBOL) ); }
     int       Order_Ticket()      { return( (int)PositionGetInteger(POSITION_TICKET) ); }
     int       Order_Type()        { return( (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE) ); }
     double    Order_OpenPrice()   { return( (double)PositionGetDouble(POSITION_PRICE_OPEN) ); }
     double    Order_Lots()        { return( (double)PositionGetDouble(POSITION_VOLUME) ); }
     double    Order_StopLoss()    { return( (double)PositionGetDouble(POSITION_SL) ); }
     double    Order_TakeProfit()  { return( (double)PositionGetDouble(POSITION_TP) ); }
     double    Order_Profit()      { return( (double)PositionGetDouble(POSITION_PROFIT) ); }
     double    Order_Swap()        { return( (double)PositionGetDouble(POSITION_SWAP) );}
     double    Order_Commission()  { return( (double)PositionGetDouble(POSITION_COMMISSION) ); }
     int       Order_MagicNumber() { return( (int)PositionGetInteger(POSITION_MAGIC) ); }
     bool      Order_Select(const int cnt){ return( PositionSelect( PositionGetSymbol(cnt) ) ); }
};

и в Trade_MQL4.mqh

class CTrade
{
public:
     CTrade(){};
     ~CTrade(){}


     // Информация по ордеру
     int       Orders_Total()      { return( OrdersTotal() ); }
     string    Order_Symbol()      { return( OrderSymbol() ); }
     int       Order_Ticket()      { return( OrderTicket() ); }
     int       Order_Type()        { return( OrderType() ); }
     double    Order_OpenPrice()   { return( OrderOpenPrice() ); }
     double    Order_Lots()        { return( OrderLots() ); }
     double    Order_StopLoss()    { return( OrderStopLoss() ); }
     double    Order_TakeProfit()  { return( OrderTakeProfit() ); }
     double    Order_Profit()      { return( OrderProfit() ); }
     double    Order_Swap()        { return( OrderSwap() );}
     double    Order_Commission()  { return( OrderCommission() ); }
     int       Order_MagicNumber() { return( OrderMagicNumber() ); }
     bool      Order_Select(const int cnt){ return( OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES) ); }

};

и по коду в дальнейшем использую trade.функция(); все проблем ни каких.

Подключаю данный Class в начале скрипта и спокойно пишу.

Например:

for(int cnt=0; cnt<trade.Orders_Total(); cnt++)
{
     if( !trade.Order_Select(cnt) ) continue;
     if( trade.Order_Type()!=ORDER_TYPE_BUY && trade.Order_Type()!=ORDER_TYPE_SELL ) continue;
     if( trade.Order_MagicNumber()!= 111 ) continue;
                   
     switch( trade.Order_Type() )
     {
         case ORDER_TYPE_BUY:
              break;
         case ORDER_TYPE_SELL:
              break;
     }
}


P.S. Код конечно моего класса подрезан, но сам принцип думаю понятен.

 
Максим Дмитриев:

человеку наврали, что 4 и 5 это одинаковые языки. он проверил, что это не так. а потом его еще и обосрали. )))

Нет, просто "человек" пришел сюда продвигать глупости.

Ему очень хочется.

 

Господа, вы занимаетесь очень технической темой алготрейдинга.

Пользуйтесь рациональными оценками и смотрите как минимум на год вперед.

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

У нас даже некоторые ангажированные СМИ по 5 лет умудрялись писать про "ну счас точно их скинут, вот конкурент есть, вот еще один". Прошло много лет, все конкуренты провалились, все стало ясно и теперь они отказались от постоянной вставки между строк мысли "счас провалятся".


Для разбирающихся в теме нет рациональных и технических причин выбирать Метатрейдер 4. И даже очередной посыл "в МТ4 торговые условия лучше" натянут от безысходности.

Так что хватит пытаться обсуждать мифы, вытаскиваемые троллями.

 
Максим Дмитриев:

он имел ввиду эти ветки

https://www.mql5.com/ru/forum/6343

https://www.mql5.com/ru/forum/160587


эти ветки как раз говорят о том, что если даже рассматривать последний год, то новички MQL5 активней новичков MQL4 на 30%. И это не смотря на то, что пользователи,  использующие МТ4 пока все еще в большинстве в виду банальных отсутствия знаний, инерции и лени.
А вот что я имел ввиду:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Одна из причин почему брокеры не любят МТ5

Renat Fatkhullin, 2017.11.21 13:33

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

И ведь самое смешное, чтобы админу брокера закачать детальную историю (например, с MetaQuotes-Demo и любого другого сервера), нужно потратить пару минут простейших операций. Даже данных готовить не надо.


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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1640: создание и тестирование собственных финансовых инструментов

Renat Fatkhullin, 2017.10.08 08:26

Это же развернутый кеш для быстрого доступа.

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

При работе с массивными и детальными данными нужно смириться с потребностями в десятках гигабайт диска. Мы в 2017 году, где 10 гб SSD стоят 10 долларов.

Терминал сам внимательно следит за неиспользуемыми символами и стирает их историю. Также чистит и каталоги тестера.


Как я повторял уже сто раз, вот подтверждение, почему мы сделали MQL5 несовместимым с MQL4 по модели доступа к данным. У Метатрейдера 5 насколько огромные объемы данных, что к ним категорически нельзя обращаться по плоской модели типа Close[x] на всем пространстве истории. Банально памяти не хватит.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

MT4-Tester VS MT5-Tester

Renat Fatkhullin, 2017.05.08 10:41

Во всем:

  1. работа с историей идет вовсю, сделки после скана истории закрываются
  2. использовать MT4Orders.mqh - это сразу ставить крест на чистоте эксперимента. чудовищная библиотека с оверхедом, написанная отвратительно и нечитаемо. кто-то сурово проявил свою лень
  3. писать for(i=200 000; i>=0; i--) OrderSelect на каждом тике - это ничто как сумашествие и попытка исключительно повторить анекдот про японскую пилу и русских мужиков
       for(int i=OrdersTotal()-1; i>=0; i--)
          if(OrderSelect(i,SELECT_BY_POS) && ((!TradeTime) || (OrderProfit()>0) || 
             ((OrderType() == OP_BUY)  && (PriceToInteger(OrderOpenPrice()) - IntBid >= Limit)) ||
             ((OrderType() == OP_SELL) && (IntAsk - PriceToInteger(OrderOpenPrice()) >= Limit))))
             OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);
    
  4. весь тест был написан исключительно ради цикла из пункта 3

    Грубо берем 1 800 000 тиков в тесте, где за 5 дней открывается 200 000 сделок. Упрощаем для простоты до 900 000 тиков, где идет сканирование 100 000 ордеров в истории и получаем 900 000 * 100 000 = 900 000 000 000 вызовов OrderSelect(да еще и с оверхедом от библиотеки). Вот именно 900 миллиардов OrderSelect и тестируются.

    Причем из них 99.99% вызовов абсолютно лишние и сделаны исключительно ради демонстрации "тормозов".


Если хотите провести чистый тест, напишите два идентичных чистых примера без библиотек. Так будет гарантия чистоты и отсутствие встроенного ради совместимости оверхеда.

Мы оптимизировали доступ к истории и полностью свели на нет эту демонстрацию. Ее ведь специально так написали.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

ООП vs процедурное программирование

Renat Fatkhullin, 2017.08.15 13:27

Не обижайтесь пожалуйста, но это какой-то праздник сюрреализма.

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

Именно так в форумах рождаются самоподдерживаемые и самоссылающиеся заявления про MQL4 проще, а MQL5 совсем-совсем сложно. Профессиональные разработчики просто не лезут в такие обсуждения.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Renat Fatkhullin, 2017.07.21 12:55

Использовать родные, более производительные функции MQL5 языка и не цепляться за MQL4 код. Любой конвертор/упрощатель MQL4 -> MQL5 несет в себе замедление в десятки раз, так как он пытается микрофункции прямого доступа из MQL4 сэмулировать через массовые операции MQL5. Причем эмуляция абсолютно без оптимизации и кеширования.

В корне использования той или иной функции(куска кода, включая чужой код) должно лежать понимание, что конкретно делается. Иначе получается "я просто использовал чужой код, смотрите - скорость упала!". Без понимания инструмента и того, что ты с ним делаешь, хорошего результата не получить.


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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Renat Fatkhullin, 2017.07.21 09:00

К сожалению, вы все делаете не так.

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

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

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Есть ли конкуренты ?

Renat Fatkhullin, 2017.05.24 11:35

Это хорошо объясняет ваши заявления.

Вы понятия не имеете ни о языке MQL5, ни об его производительности. Как не имете понятия о производительности/эффективности самого MetaTrader 5 по сравнению с MetaTrader 4. На основе сильно устаревших данных об MetaTrader 4 (которым вы тоже не пользуетесь по сути), вы делаете простой вывод "ну, МТ5 такой же ведь" и заявляете:

  • если мне нужна скорость я покупаю FPGA и пишу программу на низком уровне
  • мне, опять таки не нужны эти самые тонны...
  • мне не нужно графического интерфейса...
  • мне нужна лишь цена!!! Ну от силы несколько.
  • для того, чтобы за доли секунды принять решение они и не нужны, ибо пока ты считаешь другие уже совершили сделку!!!
  • [MQL5/MT5] игрушка для виртуальных данных

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

Реально смешно такое читать - покупаю FPGA(почему не "купил"? ведь для красного словца было упомянуто) и доли секунды(ладно бы миллисекунды или микросекунды). Особенно зная, что ничего в МТ5 не препятствует трейдеру делать сделки максимально быстро, проводить тяжелейшие расчеты(есть даже OpenCL штатный), все данные под рукой (хоть десятки миллионов реальных тиков) и все в удобном интерфейсе.

Вот интересные материалы:


Не нужно критиковать то, чем не пользовались и не пользуетесь. Тем более, заявлять в мир позицию "я с голой шашкой и анализом пары тиков торгую" как альтернативу аналитике и глубокому анализу.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Предложения по продвижению платформы МТ5 в массы

Renat Fatkhullin, 2017.01.31 21:13

У MQL5 совершенно другой компилятор, во много раз качественнее четверки.

За счет сложной оптимизации время компиляции заведомо больше. Но и результирующая скорость полученного кода в разы быстрее MQL4.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Предложения по продвижению платформы МТ5 в массы

Renat Fatkhullin, 2017.01.29 10:48

Вот несколько важный позиций:
  1. Конвертер кода, как и поддержка MQL4 в MetaTrader 5 не имеет смысла и не приведет к изменению ситуации

    Когда вы говорите "если бы был конвертор", то вы не понимаете, что это вообще ничего не изменит. Абсолютно ничего - спорить на эту тему не буду, так как для этого нужно, чтобы оппоненты были на совершенно другом уровне понимания продуктоведения и маркетинга.

    Проблема совершенно не в старых кодах, а исключительно в человеческой инерции.

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

    Архитектуру меняют, чтобы сделать следующую систему правильнее и готовой к новым нагрузкам и запросам. Мы уже 4 раза с нуля переписали свои торговые платформы в цепочке FX Charts -> MetaQuotes -> MetaTrader 3 -> MetaTrader 4 -> MetaTrader 5, чтобы иметь возможность конкурировать с другими системами и быть современными.

    В отличие от конкурентов, у нас есть возможность менять менять рынок.

  3. На MQL5 уже достаточно явно лучше написанных программ по сравнению с MQL4
    Язык
    Codebase
    Market
    Articles
    MQL4
    4 000
    2 700
     240
    MQL5
    3 700
    870
     480
    С учетом того, что мы активно заняты наполнением именно MQL5 базы, то все будет отлично.

  4. Мы реформируем Codebase, MQL5 Storage и редактор кода

    Мы полностью изменим работу с MQL5 Storage и вынесем все в отдельные проекты, в которые можно приглашать других разработчиков. Увеличится гибкость, появится возможность любой проект публиковать в Codebase прямо из редактора и использовать версионность.

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

    Это даст возможность резко увеличить объем и качество библиотеки кода. Возможно, получится мини-гитхаб.

  5. Ключ распространения технологий в покрытии и привлечении гигантских масс

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

    Задача в том, как изменить восприятие 5-10 миллионов человек, которые не желают тратить свое время, читать, учиться, узнавать или рационально размышлять.


Это только некоторые цитаты человека, который является самым компетентным человеком в мире по вопросу сравнения MT4 c MT5.
А вот он уже и сам здесь :))

 
Renat Fatkhullin:

И даже очередной посыл "в МТ4 торговые условия лучше" натянут от безысходности.

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

Опять же как только появится брокер с конкурентной ценовой политикой, то все без больших сомнений перейдут на МТ5 ибо технически это уже не составляет большого труда, к тому же будет коммерческий стимул.

Весь вопрос почему такой конкурентный брокер с МТ5 все еще не появился и есть ли шанс что появится хоть когда-то?

 
Andrei:

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

Опять же как только появится брокер с конкурентной ценовой политикой, то все без больших сомнений перейдут на МТ5 ибо технически это уже не составляет большого труда, к тому же будет коммерческий стимул.

Весь вопрос почему такой конкурентный брокер с МТ5 все еще не появился и есть ли шанс что появится хоть когда-то?

Святая наивность.

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

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

Только в мобильном Метатрейдере 5 сейчас доступно 343 брокерских сервера. Выбирайте.

 
Nikolai Semko:

А вот что я имел ввиду:

Спасибо за подборку!

Это мизерная часть моих объяснений. Вообще для желающих есть удобная возможность искать по автору: https://www.mql5.com/ru/search#!author=renat


 
Renat Fatkhullin:

Маркетинг работает.

Метатрейдер 5 брокеров огромное количество и условия у них разные.

Только в мобильном Метатрейдере 5 сейчас доступно 343 брокерских сервера. Выбирайте.

Вы вот говорите про маркетинг и одновременно предлагаете клиентам выбрать лучшие ценовые условия из 343 брокеров МТ5 и одновременно сравнить их с не меньшим количеством брокеров МТ4.

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

 
Andrei:

Вы вот говорите про маркетинг и одновременно предлагаете клиентам выбрать лучшие ценовые условия из 343 брокеров МТ5 и одновременно сравнить их с не меньшим количеством брокеров МТ4.

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


Безвольные и безынициативные особи в современном стремительном цифровом мире обречены на вымирание. Современному человеку просто необходимо иметь такие навыки: умение пользоваться поисковыми системами, умение анализировать.

Докажите себе, что Вы человек, подыметесь с дивана, включите поисковик.

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

Причина обращения: