Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Якобы "простой" метод Close[i] в MetaTrader 4 в разы дольше, чем CopyClose() в пятерке за счет того, что обычно нужно делать много запросов в историю.
Вам "про Фому", а Вы "про Ерёму".
Integer ответил. Ответил конечно поздно и уже на форуме MQL4, но тем не менее. Делаю перепост. Прав он или нет, решать вам:
О. Вот теперь - первая нормальная аргументация. С частью - я согласен, с частью - нет. Итак.
В МТ4 это Close[i] или iClose(NULL,0,i), просто взял значение и все.
В МТ5 это выполняется функцией CopyClose() или CopyRates(), функции возвращают true/false, что намекает на то, что может и не получиться скопировать,
Ну и кто мешает "просто взять значение и все" в МТ5, проигнорировав возврат ? Как я понимаю, и в МТ4 - точно так же может "и не получиться скопировать". Напомню, с неверными данными я столкнулся именно на МТ4, на МТ5 - ни разу этого не было. При этом - я считаю, возврат флага - это очень правильная работа функции. Функции с "просто взял значение и все" - могут не возвращать флага в том случае, если они гарантированно отдают правильные данные. Ни в МТ4, ни в МТ5 - гарантированной выдачи котировок, к сожалению, нет. Поэтому правильно написанный код в обоих случаях должен проверять результат.
2. Получение данных индикаторов.
Опять же - получение индикатора, на мой взгляд, гораздо лучше организовано именно в МТ5, за счет флага возврата. Потому, что операция эта, как я понимаю, достаточно сложная, и "простое" получение - чревато непонятными ошибками, которые непросто отловить.
3. Собственно эксплуатация советника.
Известно, что в МТ4 очень просто обеспечить независимую работу нескольких советников, в МТ5 же это же вообще не реально.
Ну, справедливости ради следует сказать, что с помощью диких извращений это все же реально. Но - тут полностью согласен. Ордерная система, являясь, фактически, "костылем" для удобства работы с позициями - предоставляет гораздо большую гибкость, и возможность установки нескольких советников на один счет. Тут - полностью согласен, на МТ4 это лучше.
4. Сейчас не знаю как обстоит дело, но было... В МТ5 после открытия позиции, в списке истории еще отсутствуют данные об ордере и сделке, требуется какая-то доля секунды. Это усложняет алгоритм. В МТ4 на одном тике можно последовательно выполнить много действий, в МТ5 надо усложнять алгоритм
А разве много действий на одном тике - это не усложнение ? Действия - в любом случае придется делать, как в МТ4, так и в МТ5.
5. Взгляд на работу советника с точки зрения статистики. МТ4 позволяет отработать все торговые сигналы независимо, что дает более достоверный результат при оценке аналитической части советника.
Не понял. А разве в МТ5 - отработка сигналов зависимая ?
6. ArraySort() в МТ4 позволят сортировать многомерные массивы по первому измерению, в МТ5 только одномерные сортируются.
Тут - считаю, в МТ5 - сделано правильно. ArraySort() вобще не должен работать с многомерными массивами во избежание ошибок.
7. Тестер. Отладка советника в тестере. В МТ4 полноценный график, можно графические объекты создавать... значки сдвигать... все как по настоящему. В МТ5 возможности работы с графиком ограничены.
Что-то я не понял, отладка на исторических данных - вроде вот, только что появилась... Разве в МТ4 - она есть ???
8. Время графических объектов. В МТ4 скопировал мышкой и вставил в код. В МТ5 за один мах мышкой время не скопируешь, приходится набирать вручную.
9. Отчет в тестере. В МТ4 события в хронологическом порядке. В МТ5 отложенный ордер и сразу под ним сделка этого ордера, хотя эта сделка могла быть гораздо позже, чем события в следующих строках отчета. Т.е. в МТ5 события не в хронологическом порядке.
10. МТ4 через год (когда узнал о нем) после своего появления был полностью в рабочем состоянии и не менялся. В МТ5 годами выполнялись значительные принципиальные изменения. Сначала убрали параметры PositionSelet(), что потребовало переделки написанных советников, потом меняли идентификаторы из-за чего некоторые советники снова требовали переделки. Может и другие какие изменения, за всем не уследишь.
Ну, это к программированию вроде как не относится...
В МТ4 переменные Point, Digits... В МТ5 эти же переменные начинаются с подчеркивания. Это выглядит как будто это все кто-то наскоряк на шару придумал... а экспертописателям их ставить, пальцы топырить. Мелочь конечно, но как-то раздражает. Чувствуется непродуманность.
На мой взгляд, тут больше вопрос нотации... Я обычно с подчеркивания начинаю те объекты, пользование которых подразумевает некоторых неявных соглашений. Как правило, это защищенные фукнции. Какими соображениями руководствовались в данном случае - мне сказать трудно.
В МТ5 доступ к разным данным через идентификаторы. Чтобы получить одно значение надо сначала написать функцию с названием в пол экрана, потом еще идентификатор написать размером еще пошире чем пол экрана. Эта проблема решается использованием стандартных классов, но там свои "моментики", не все названия очевидны, например у класса работы с позицией были методы Type и PositionType (как-то так). Для определения направления позиции используется метод PositionType, а не Type. Мелочь конечно, но все это требует повышенного внимания и потребляет энергию.
Тут - да, процедурный подход не самый лучший метод. В МТ5 все-таки больше ориентация на ООП.
Резюмируя:
Единственное место, где программирование для МТ4 проще, а для МТ5 - сложнее (и не просто сложнее, а пипец, насколько сложнее) - это случай работы нескольких советников на одном счету. Во всех остальных случаях - я не вижу разницы в трудности написания кода под МТ4 и МТ5.
Резюмируя:
Единственное место, где программирование для МТ4 проще, а для МТ5 - сложнее (и не просто сложнее, а пипец, насколько сложнее) - это случай работы нескольких советников на одном счету. Во всех остальных случаях - я не вижу разницы в трудности написания кода под МТ4 и МТ5.
Вы, вероятно, ошиблись, может быть не на счете, а на символе?
Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.
И я не испытываю трудностей (за исключением недоделок MQ) в программировании.
Пропускаем мимо ушей необоснованные оскорбления. А чем этот код небезопасен?
Вы, вероятно, ошиблись, может быть не на счете, а на символе?
Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.
И я не испытываю трудностей (за исключением недоделок MQ) в программировании.
Ну не придирайтесь к словам. Это оговорка. Конечно же на одном символе - речь-то была об ордерной системе. Ренат - правильно сказал про виртуализацию. Можно извратиться, и сделать, чтобы и на МТ5 на одном символе и счете работало много советников. Но, лишних усилий придется сделать много.
Избави Бог, придираться (без сорказма), просто хотел выяснить (для себя) не ошиблись ли Вы.
P/S Про локирование в МТ5.
Не знаю как на ФОРЕКС, а Московская биржа приняла решение о разрешении
кросс-сделок на ФОРТС!
http://moex.com/n9427
Вы, вероятно, ошиблись, может быть не на счете, а на символе?
Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.
И я не испытываю трудностей (за исключением недоделок MQ) в программировании.
Не знаю как на ФОРЕКС, а Московская биржа приняла решение о разрешении кросс-сделок на ФОРТС!
Это только по персональному разрешению и для технических нужд типа "клиент вынужден на одном конечном биржевом аккаунте иметь возможность вести несколько разнонаправленных позиций для обеспечения таких-то задач".
Ну а если обычный трейдер начнет совершать поток разнонаправленных операций, то сразу пойдет на разбор за попытку манипуляций.
Ох ё 50 штук, они там между собой не ссорятся, или у вас 50 счетов
Это только по персональному разрешению и для технических нужд типа "клиент вынужден на одном конечном биржевом аккаунте иметь возможность вести несколько разнонаправленных позиций для обеспечения таких-то задач".
Ну а если обычный трейдер начнет совершать поток разнонаправленных операций, то сразу пойдет на разбор за попытку манипуляций.
В пресс-релизе этого не написано.
Поживём-увидим.