На днях я опубликовал обновленную версию библиотеки OrderWrappers 1.0.6. Скачать её можно отсюда. Назначение библиотеки - предоставить функции-обертки для стандартных функций работы с ордерами, дополнив их обработкой возможных ошибок.
Любая из функций - OrderSend, OrderClose, OrderCloseBy, OrderModify, OrderDelete - является критически важной в том смысле, что нарушение в её работе может повлечь существенные потери трейдера. Поэтому обработчики ошибок, аналогичные тем, что имеются в данной библиотеке, вынуждены писать все авторы автоматических торговых систем. Каждый делает это по-своему, "изобретая велосипед", и, вполне вероятно, делает это не всегда корректно, оставляя лазейки для неприятных ситуаций.
Интересный вопрос заключается в том, почему компания MetaQuotes реализовала такой опасный для трейдера програмный интерфейс (API). Ведь, для трейдера гораздо удобнее иметь функции, автоматически реагирующие на нештатные ситуации, и основные шаблоны правильной их обработки известны производителю несомненно лучше любого стороннего автора советников.
Ответ прост: для компании MetaQuotes приоритетом в разработке ПО являются интересы брокера, а не клиента. Если бы МетаКвоты радели за интересы трейдера, им бы не составило труда реализовать непосредственно в терминале достаточно интеллектуальную обработку ошибок.
Показаны сообщения с ярлыком MetaQuotes. Показать все сообщения
Показаны сообщения с ярлыком MetaQuotes. Показать все сообщения
суббота, 8 мая 2010 г.
воскресенье, 2 мая 2010 г.
МетаТрейдер 4: пресловутая сборка номер 226
Наверное, то, о чем пойдет сегодня речь, не новость для пользователей МетаТрейдера, но обойти стороной эту животрепещущую тему нельзя.
Несколько недель назад МетаКвоты выпустили очередную сборку МетаТрейдера под номером 226. В официальном списке новшеств упомянуты всякие мелочи, а самое главное намеренно замолчено: в экзешник встроена защита от анализа сторонними средствами, то есть попросту говоря от отладки. Причины такого решения понятны - МетаКвоты предполагают усложнить таким образом жизнь тем, кто пишет декомпиляторы скриптов MQL4 с целью снять защиту с прибыльных советников. Но одновременно МетаКвоты усложняют жизнь и абсолютно всем законопослушным пользователям программы. Можете не сомневаться, любая подобная защита существенно усложняет продукт изнутри, и стабильность его работы падает. Кроме того, становится сильно затруднена, если не сказать вообще невозможна, отладка советников, которые реализованы с использованием DLL. По поводу обеих проблем с самого момента выхода новой сборки постоянно сыпится шквал жалоб. Какой бы благой ни казалась цель разработчиков, выбранный ими способ явно дискредитирует всю идею. Какова реакция МетаКвотов? Они демонстративно молчат, выказывая полное неуважение к пользователям. Да и что они могут ответить? Только то, что они все уже "продумали", и иного решения в силу своей "гениальности", представить не могут? Понятно, что ответ в таком стиле выльется в долгие разбирательства на форумах. Проще конечно же засунуть голову в песок, и сделать вид, что ничего не происходит.
А стоило ли вообще заваривать кашу? Если программа доступна хакеру с потрохами, что и имеет место в случае терминала, то какой бы навороченной ни была её защита, её все равно сломают - ну не за неделю, так за месяц. Было бы из-за чего ломать. А ведь если найдется действительно успешный эксперт, то лучшего вложения средств, чем заказ на взлом, трудно представить. Итог - МетаКвоты подложили очередные грабли всем пользователям за просто так. Может быть это недостаток компетентности, может быть недомыслие - трудно сказать, но факт остается фактом.
Реальная защита торговых систем может быть осуществлена только с использованием сервера. Многие авторы, которые серьезно подходят к проблеме безопасности советников, именно так давно и делают. Вся логика работы торговой системы "крутится" на сервере, а для терминала создаются скрипты-заглушки, которые лишь получают сигналы для торговли. Аналогичный подход мог бы быть применен и в самой платформе МетаТрейдера. Для этого её архитектура должна быть изменена путем добавления нового звена - сервера приложений. Важные части скриптов должны загружаться туда и выполняться непосредственно там. Терминал же будет выступать в качестве интерфейса для отображения результатов обработки и управления входными параметрами. Разумеется, те скрипты, которые не требуют защиты, могут быть оставлены на локальном компьютере пользователя, т.е. выполняться в терминале как и прежде. МетаКвоты, при желании, могли бы организовать централизованный сервис - что-то вроде единого онлайн магазина по образцу Apple Store или базы расширений для FireFox. Пользователь, купив советник в этом магазине, тем самым неявным образом инициировал бы его автоматическую установку на сервер приложений для своего счета. Будет ли этот сервер у каждого ДЦ свой или МетаКвоты могли бы организовать кластер таких серверов у себя - вопрос открытый. Выгоду от подобной централизации получили бы и пользователи, и сами МетаКвоты. Конечно, всегда существует опасность, что и среди людей, имеющих доступ к серверу, найдутся желающие стырить советник, но эта ситуация видимо принципиально не исправляется на все 100% в современном мире, где даже в банках встречаются мошенники. По сути дела и сейчас у нас нет гарантий, что МетаКвоты не станут анализировать под тем или иным предлогом конкретный ex4-файл. Зато все внешние силы по отношению к тройке "пользователь - МетаКвоты - ДЦ", при серверной модели хранения советников, оказываются за бортом.
Несколько недель назад МетаКвоты выпустили очередную сборку МетаТрейдера под номером 226. В официальном списке новшеств упомянуты всякие мелочи, а самое главное намеренно замолчено: в экзешник встроена защита от анализа сторонними средствами, то есть попросту говоря от отладки. Причины такого решения понятны - МетаКвоты предполагают усложнить таким образом жизнь тем, кто пишет декомпиляторы скриптов MQL4 с целью снять защиту с прибыльных советников. Но одновременно МетаКвоты усложняют жизнь и абсолютно всем законопослушным пользователям программы. Можете не сомневаться, любая подобная защита существенно усложняет продукт изнутри, и стабильность его работы падает. Кроме того, становится сильно затруднена, если не сказать вообще невозможна, отладка советников, которые реализованы с использованием DLL. По поводу обеих проблем с самого момента выхода новой сборки постоянно сыпится шквал жалоб. Какой бы благой ни казалась цель разработчиков, выбранный ими способ явно дискредитирует всю идею. Какова реакция МетаКвотов? Они демонстративно молчат, выказывая полное неуважение к пользователям. Да и что они могут ответить? Только то, что они все уже "продумали", и иного решения в силу своей "гениальности", представить не могут? Понятно, что ответ в таком стиле выльется в долгие разбирательства на форумах. Проще конечно же засунуть голову в песок, и сделать вид, что ничего не происходит.
А стоило ли вообще заваривать кашу? Если программа доступна хакеру с потрохами, что и имеет место в случае терминала, то какой бы навороченной ни была её защита, её все равно сломают - ну не за неделю, так за месяц. Было бы из-за чего ломать. А ведь если найдется действительно успешный эксперт, то лучшего вложения средств, чем заказ на взлом, трудно представить. Итог - МетаКвоты подложили очередные грабли всем пользователям за просто так. Может быть это недостаток компетентности, может быть недомыслие - трудно сказать, но факт остается фактом.
Реальная защита торговых систем может быть осуществлена только с использованием сервера. Многие авторы, которые серьезно подходят к проблеме безопасности советников, именно так давно и делают. Вся логика работы торговой системы "крутится" на сервере, а для терминала создаются скрипты-заглушки, которые лишь получают сигналы для торговли. Аналогичный подход мог бы быть применен и в самой платформе МетаТрейдера. Для этого её архитектура должна быть изменена путем добавления нового звена - сервера приложений. Важные части скриптов должны загружаться туда и выполняться непосредственно там. Терминал же будет выступать в качестве интерфейса для отображения результатов обработки и управления входными параметрами. Разумеется, те скрипты, которые не требуют защиты, могут быть оставлены на локальном компьютере пользователя, т.е. выполняться в терминале как и прежде. МетаКвоты, при желании, могли бы организовать централизованный сервис - что-то вроде единого онлайн магазина по образцу Apple Store или базы расширений для FireFox. Пользователь, купив советник в этом магазине, тем самым неявным образом инициировал бы его автоматическую установку на сервер приложений для своего счета. Будет ли этот сервер у каждого ДЦ свой или МетаКвоты могли бы организовать кластер таких серверов у себя - вопрос открытый. Выгоду от подобной централизации получили бы и пользователи, и сами МетаКвоты. Конечно, всегда существует опасность, что и среди людей, имеющих доступ к серверу, найдутся желающие стырить советник, но эта ситуация видимо принципиально не исправляется на все 100% в современном мире, где даже в банках встречаются мошенники. По сути дела и сейчас у нас нет гарантий, что МетаКвоты не станут анализировать под тем или иным предлогом конкретный ex4-файл. Зато все внешние силы по отношению к тройке "пользователь - МетаКвоты - ДЦ", при серверной модели хранения советников, оказываются за бортом.
четверг, 29 апреля 2010 г.
Добро пожаловать!
Добро пожаловать на блог, посвященный известному программному продукту для работы на Форексе - МетаТрейдеру, и в целом компании MetaQuotes, которая его производит.
Наверно, такое вступление звучит многообещающе для читателей-трейдеров, так как они надеются увидеть здесь описание торговых стратегий, сигналы для входа в рынок, индикаторы и скрипты, но всего этого не планируется (по крайнней мере, пока).
Основное назначение данного блога - познакомить читателя с проблемами МетаТрейдера как ПО. К сожалению, проблем таких много, они сказываются на производительности и удобстве пользования программой и в конечном счете - на прибылях. Компания производитель не в силах исправить некоторые проблемы и может быть даже сознательно создает новые, но точно узнать причину этого вряд ли удастся в силу закрытости компании. Остается лишь догадываться - особый ли местечковый менталитет, принципиальная политика фирмы, низкая квалификация сотрудников, или что-либо еще является причиной излюбленного подхода к общению с конечными пользователями: проигнорировать или удалить сообщение об ошибке, в лучшем случае сделать отписку в духе "сам пользователь виноват", не вникая в суть и обнаруживая при этом свою некомпетентность, нежелание признавать свои ошибки.
Случилось так, что автор этих строк гораздо лучше разбирается в программировании, чем в трейдинге. Именно поэтому мой опыт программирования позволяет мне судить о качестве разработке МетаТрейдера. Собственно МетаТрейдер был выбран в свое время для трейдинга именно в силу того, что программа предоставляет широкие возможности для создания автоматических торговых систем - роботов. По прошествии нескольких лет использования МетаТрейдера и нескольких безуспешных попыток установить конструктивное общение с разработчиками, я вынужден начать данный блог.
Наверно, такое вступление звучит многообещающе для читателей-трейдеров, так как они надеются увидеть здесь описание торговых стратегий, сигналы для входа в рынок, индикаторы и скрипты, но всего этого не планируется (по крайнней мере, пока).
Основное назначение данного блога - познакомить читателя с проблемами МетаТрейдера как ПО. К сожалению, проблем таких много, они сказываются на производительности и удобстве пользования программой и в конечном счете - на прибылях. Компания производитель не в силах исправить некоторые проблемы и может быть даже сознательно создает новые, но точно узнать причину этого вряд ли удастся в силу закрытости компании. Остается лишь догадываться - особый ли местечковый менталитет, принципиальная политика фирмы, низкая квалификация сотрудников, или что-либо еще является причиной излюбленного подхода к общению с конечными пользователями: проигнорировать или удалить сообщение об ошибке, в лучшем случае сделать отписку в духе "сам пользователь виноват", не вникая в суть и обнаруживая при этом свою некомпетентность, нежелание признавать свои ошибки.
Случилось так, что автор этих строк гораздо лучше разбирается в программировании, чем в трейдинге. Именно поэтому мой опыт программирования позволяет мне судить о качестве разработке МетаТрейдера. Собственно МетаТрейдер был выбран в свое время для трейдинга именно в силу того, что программа предоставляет широкие возможности для создания автоматических торговых систем - роботов. По прошествии нескольких лет использования МетаТрейдера и нескольких безуспешных попыток установить конструктивное общение с разработчиками, я вынужден начать данный блог.
Подписаться на:
Сообщения (Atom)