MQL4 - automated forex trading   /  

Статьи

Cтатьи  MetaTrader 5  Вот мы и получили долгожданные MetaTrader 5 и MQL5 Авторизуйтесь или зарегистрируйтесь , чтобы добавить новую статью


Почитай статьи про MQL5
Готовься к Чемпионату -

Эта статья о возможностях
MetaTrader 4

Мобильный трейдинг!
Купите лицензию и торгуйте мобильно

Вот мы и получили долгожданные MetaTrader 5 и MQL5 [ en ]

Я очень кратко пройду по некоторым моментам.


Рис. 1. Это не Photoshop - это MQL5.


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

Основные базовые изменения MQL5 - это введения ООП (Объектно-ориентированное программирование). Я не стану останавливаться на ООП, просто отмечу, что для профессиональных программистов стало больше возможностей, а для тех, кто научился писать на MQL4 и не знает ООП, есть радостная новость: они могут вполне писать на MQL5 в стиле MQL4, не пользуясь ООП. Разница будет в функционале, который придется освоить заново.

Возьмем простой пример: переменных Ask и Bid больше не существует. И чтобы получить эти значения Bid необходимо вызвать функцию

SymbolInfoDouble(Symbol(),SYMBOL_BID);

Не существует часто используемых Low[0] или iLow ( Symbol(), PERIOD_D1, 0 ), но вы легко можете их воссоздать. Зато в функциях работы с историческими данными появилась возможность читать в память исторические данные от точки до точки, от одного конкретного бара до другого конкретного бара, или от указанного времени до указанного. Ранее чтение серии данных приводило к загрузке в память всего видимого диапазона, нужен он вам или нет, но он читался, и если имелась необходимость начитать M1, то она читалась от 1999 года( при наличии истории) до текущего дня, часа и минуты.

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

   MqlRates rates_arrayG[];
   Int Bar=30; // прочитать только 30 баров начиная с нулевого
   iCopBar=CopyRates(Symbol(),PERIOD_M1,0,Bar,rates_arrayG);

Эти нововведения значительно экономят память и время одновременно.

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

Некоторые функциональные нововведения, которые я ждал от MQL:

  • Функция OnTimer() для обработки событий таймера (теперь не требуется зацикливать эксперт, чтобы он работал с заданной периодичностью, независящей от прихода тика);
  • OnTrade() - функция для обработки торговых собютий - открытия, закрытия или измененияобъема торговой позиции;
  • OnChartEvent() - обработка событий мыши и клавиатуры на графике.


Кратко о них.

Функция OnTimer() вызывается, если предварительно инициировать таймер в предопределенной функции OnInit (обработчике события инициализации эксперта).

Пример:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetTimer(1); //мы каждую секунду будем обращаться к OnTimer()
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit()
  {
   EventKillTimer(); // обязательно вызвать при выходе отмену обращения к таймеру
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   MqlDateTime str1;
   TimeGMT(str1); // новая функция получить время GMT
   Comment(str1.hour
           ,str1.min
           ,str1.sec
           ,str1.day
           ,str1.mon
           ,str1.year
           ,str1.day_of_year
           ,OrdersTotal()
           ,PositionsTotal()
           );
  }

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

Очень радует функция OnTrade(). Эта функция вызывается в момент, когда срабатывает любое из торговых событий: выставление ордера, срабатывание StopLoss или TakeProfit, изменение уровней stoploss или takeprofit, выставление/удаление отложенного ордера.

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

Коснемся функции OnChartEvent(). Вызов функции происходит при нескольких событиях. Мне не удалось оттестировать каждое, но список событий впечатляет:

  • CHARTEVENT_KEYDOWN — событие нажатия клавиатуры;
  • CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику;
  • CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши;
  • CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста CHARTEVENT_CUSTOM+n — идентификатор пользовательского события
  • CHARTEVENT_CUSTOM_LAST — последний

В MQL5 появилась возможность управлять торговлей и графикой на новом функциональном уровне, что нам и обещали разработчики.

Новые графические объекты, конпки, поля ввода. Управление графиками теперь стало фантастическим, можно даже вставлять картинки из файлов - для любителей нестандартных дизайнов большой простор для фантазии. Это не Photoshop, это возможности MQL5 и MetaTrader 5. Появились новые возможности, вы можете создавать свои кнопки и свои поля ввода, добавив например в интерфейс кнопку которая закроет все открытые ордера. или быстрый бай или селл в один клик, с заранее выставленными параметрами стопа и тейка.

Рис. 2. Графические объекты позволяют создавать информационные панно.

Есть маленькое неприятное событие: из индикаторов нельзя создавать объекты. Разработчики шли на это сознательно, и взамен мы получим быстродействие индикаторов. Приятная новость в том, что они прекрасно это понимают и, вероятно, сделают возможность запускать на одном чарте несколько экспертов. Тем самым можно будет создавать эксперты-индикаторы с объектами, без торговых функций. Такие эксперты можно создавать и сейчас – они просто будут работать как индикаторы. Но при необходимости сейчас можно выйти из положения, запустив на одном чарте торгующего эксперта, на другом запустить эксперта-индикатора, создающего объекты, и наладить между ними обмен.

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

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

В каталоге HISTORY теперь нет файлов по разным таймфреймам



Рис. 3. Вся история теперь хранится в одном файле.

Приятные нововведения в том, что теперь можно очищать логи


Рис. 4. Одним нажатием кнопки очищаем Журнал экспертов от ставших ненужными сообщений.

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

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

С уважением
Юрий Зайцев

Skype: yurazyuraz
yzh@mail.ru

Создана: 24.09.2009  Автор: Yuriy Zaytsev
Предупреждение: все права на данные материалы принадлежат MetaQuotes Software Corp. Полная или частичная перепечатка запрещена.
Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5

Описание особенностей создания индикаторов в MQL5 в сравнении с MQL4, а также описание новых возможностей.

73 комментария: 1 2 3 4 5 6 7 8   Авторизуйтесь или зарегистрируйтесь
zhorzh писал(а):
HideYourRichess писал(а):

свечи любого таймфрейма кратного 3 секундам - остальные из них пересчитываются на лету, - а чего не кратно 1 секунде? это кстати легко делается.

Просто кратно 3 секундам можно строить 6, 12, 15, 30 и т.д. секундные свечи. А 1 секундные смысла нет, многие будут просто пустые. Вообще период хранения свечек задается, я прямо сейчас могу все базы свечек пересчитать на 1 секундные или 15 секундные, они из истории тиков считаются, так что не уел. :D


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


ух ты, как тут удобно картинки грузятся, молодцы!

Ну раз так просто, то вот еще 12 секундные свечи

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

Думаю, сомнений в реальности описанного уже меньше?

На счет ненужности секундных периодов могу поспорить но не буду - ибо лень.


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


Да, и где стакан? Стакан самое интересное в этой истории, - всё остальное вариации на уже пройденные темы.

26.09.2009 09:26 HideYourRichess
zhorzh писал(а):
HideYourRichess писал(а):

а интерес к МТ5 был, потому что грозились тоже его на ФР вывести. - если у вас есть такая замечательная платформа, как вы тут описали, то вам вообще ни что больше не нужно.


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


Извините что не стал приукрашать правду.

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


Платформа, которая у меня есть имеет тот недостаток, что является надстройкой над неособо функциональными терминалами и без них обходиться не может. Зная, что MT4 их на голову выше я от MT5 уже ожидал такого, чтобы надстройку над ним делать не нужно было для нормальной работы. Пока что вижу, что нужно,а то, что есть - на 4.1 понянет, не больше :)

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


Функциональность у МТ выше, но это другой рынок. Посмотрим как будет МТ5 на фондовом себя вести, пока ещё рано делать выводы. В бете к стаканУ доступа нет пока. По этому ни кто не знает.

26.09.2009 09:12 HideYourRichess
burguy писал(а):
А графики можно разносить на разные мониторы? Очень полезная и удобная функция была бы.

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

--

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

нет сейчас этого нет


26.09.2009 01:58 YuraZ
А графики можно разносить на разные мониторы? Очень полезная и удобная функция была бы.
26.09.2009 01:48 burguy

HIDDEN писал(а):

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

Вот и я о том же. Если Вы программист, то проблем с какими-бы то ни было новыми неудобствами - не существует, по определению. ;)

Но с другой стороны: если "философ может быть гробовщиком, а гробовщик - кинокритиком", то почему бы не стать программисту - трейдером.

пс.

Може кого-то в баню сводили (хотел ответить но не нашел цитаты), а зря. Хотел ответить в духе Георгия Константиновича, но всё. 

-1 Metaquotes

26.09.2009 00:59 coaster
zhorzh писал(а):
HideYourRichess писал(а):

свечи любого таймфрейма кратного 3 секундам - остальные из них пересчитываются на лету, - а чего не кратно 1 секунде? это кстати легко делается.

Просто кратно 3 секундам можно строить 6, 12, 15, 30 и т.д. секундные свечи. А 1 секундные смысла нет, многие будут просто пустые. Вообще период хранения свечек задается, я прямо сейчас могу все базы свечек пересчитать на 1 секундные или 15 секундные, они из истории тиков считаются, так что не уел. :D


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


ух ты, как тут удобно картинки грузятся, молодцы!

Ну раз так просто, то вот еще 12 секундные свечи

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

Думаю, сомнений в реальности описанного уже меньше?


26.09.2009 00:34 alexas
zhorzh писал(а):
HideYourRichess писал(а):

свечи любого таймфрейма кратного 3 секундам - остальные из них пересчитываются на лету, - а чего не кратно 1 секунде? это кстати легко делается.

Просто кратно 3 секундам можно строить 6, 12, 15, 30 и т.д. секундные свечи. А 1 секундные смысла нет, многие будут просто пустые. Вообще период хранения свечек задается, я прямо сейчас могу все базы свечек пересчитать на 1 секундные или 15 секундные, они из истории тиков считаются, так что не уел. :D


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


ух ты, как тут удобно картинки грузятся, молодцы!

Ну раз так просто, то вот еще 12 секундные свечи

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

Думаю, сомнений в реальности описанного уже меньше?


26.09.2009 00:34 alexas
EVladMih писал(а):
pisara писал(а):

Волшебники из METAQUOTES сделали великолепный продукт. Сам я...

Юра, а вот эта цитата оставила несмываемое впечатление - статья была заказана.

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

Какой смысл в статье, написанной в стиле: "и это лишь то, что я успел рассмотреть за короткий срок"? Фанфары...

Воздуха с шумом много, а нюансов? Картинки в окне графика?

Так на графике более полезным вещам место может пригодиться.


И опять же всё сводится к программированию и тестеру, т.е. по-прежнему никто не хочет понять, что большинство трейдеров - НЕ ПРОГРАММИСТЫ, по крайней мере к профи-программистам мало кого из них можно отнести.

Я не враг программистов, но как-то ближе бы к трейдингу...


Не вам лично:


--

это просто мои впечатления

мои ожидания

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

Но писать на ООП удобней легче и т п... те же трейдеры заказывают индикаторы скрипты советники

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

со временем будут написанны классы, далее конструировать проще...

---

статья не была заказанна, фраза ?, я был уверен что эта фраза резанет...

как то давно читал одну интересную книгу ... там взял фразу ...

и сказанна искренне ... пусть на эмоциях.

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

--

опишите недстатки... сравните с другими терминалами

наберите в гугле имеджевое название любого терминала и наберите названите MetaTrdaer - задумайтесь

почему другие продукты в сети встречаются на порядки на сотни и тысячи раз меньше

поделки в пользовании одного человека вообще не в счет...

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

они могут быть чем то хороши, иметь то чего нет в других терминалах ...

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

вряд ли они меют встронный язык отладчик тестер ...

и как правило это надстройки, в лучшем случае API

да и пользоваться ими никто не будет кроме автора

( может у кого есть тираж ? сколько копий ? какая поддержка ? )

--

это же массовый продукт, другие продуты не массовые

WINDOWS - тоже многие хаят - но пользуются



25.09.2009 23:21 YuraZ
MrX писал(а):

Долго терпел, не выдержал :-)

Я не сталкивался с какими-либо ограничениями при реализации различных стратегий торговли в МТ4.

В МТ4 мне не хватает 4 знаков при отображении графиков (если у дилера 5 знаков) и все.

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

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

Думаю, скоро будем тестировать и МТ6 :-(


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


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


MT6 и MQL6 ждать придется не менее 10 лет я думаю, в MT5 действительно многое стало возможным и этого с головой хватит всем. Года 2 еще MQL5 доводить до ума нужно будет.


EVladMih писал(а):

Я не враг программистов, но как-то ближе бы к трейдингу...


Для трейдинга тоже много всего интересного и вкусного, но основной кусок нового достаётся программистам.
25.09.2009 23:21 HIDDEN
pisara писал(а):

Волшебники из METAQUOTES сделали великолепный продукт. Сам я...

Юра, а вот эта цитата оставила несмываемое впечатление - статья была заказана.

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

Какой смысл в статье, написанной в стиле: "и это лишь то, что я успел рассмотреть за короткий срок"? Фанфары...

Воздуха с шумом много, а нюансов? Картинки в окне графика?

Так на графике более полезным вещам место может пригодиться.


И опять же всё сводится к программированию и тестеру, т.е. по-прежнему никто не хочет понять, что большинство трейдеров - НЕ ПРОГРАММИСТЫ, по крайней мере к профи-программистам мало кого из них можно отнести. 

Я не враг программистов, но как-то ближе бы к трейдингу...

25.09.2009 21:01 EVladMih
73 комментария: 1 2 3 4 5 6 7 8