Что Вы сделали для популяризации MetaTrader 5? - страница 29

 
Renat Fatkhullin:

Якобы "простой" метод Close[i] в MetaTrader 4 в разы дольше, чем CopyClose() в пятерке за счет того, что обычно нужно делать много запросов в историю.


Вам "про Фому", а Вы "про Ерёму".

 
Vasiliy Sokolov:

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.

 
George Merts:

Резюмируя:

Единственное место, где программирование для МТ4 проще, а для МТ5 - сложнее (и не просто сложнее, а пипец, насколько сложнее) - это случай работы нескольких советников на одном счету. Во всех остальных случаях - я не вижу разницы в трудности написания кода под МТ4 и МТ5.

Вы, вероятно, ошиблись, может быть не на счете, а на символе?

Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.

И я не испытываю трудностей (за исключением недоделок MQ) в программировании. 

 
Фьючерсные объемы для МТ:

Пропускаем мимо ушей необоснованные оскорбления. А чем этот код небезопасен?

На мой взгляд, если есть возможность возврата ошибочных данных - код без такой проверки небезопасен, и проверять возврат надо обязательно. Я не прав ?
 
Михаил:

Вы, вероятно, ошиблись, может быть не на счете, а на символе?

Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.

И я не испытываю трудностей (за исключением недоделок MQ) в программировании. 

Ну не придирайтесь к словам. Это оговорка.  Конечно же на одном символе - речь-то была об ордерной системе. Ренат - правильно сказал про виртуализацию. Можно извратиться, и сделать, чтобы и на МТ5 на одном символе и счете работало много советников. Но, лишних усилий придется сделать много.
 
George Merts:
Ну не придирайтесь к словам. Это оговорка.  Конечно же на одном символе - речь-то была об ордерной системе. Ренат - правильно сказал про виртуализацию. Можно извратиться, и сделать, чтобы и на МТ5 на одном символе и счете работало много советников. Но, лишних усилий придется сделать много.

Избави Бог, придираться (без сорказма), просто хотел выяснить (для себя) не ошиблись ли Вы.

P/S Про локирование в МТ5.

Не знаю как на ФОРЕКС, а Московская биржа приняла решение о разрешении

кросс-сделок на ФОРТС!

http://moex.com/n9427 

 
Михаил:

Вы, вероятно, ошиблись, может быть не на счете, а на символе?

Если не ошиблись, то Вы не правы. У меня на одном счёте работают 50 советников.

И я не испытываю трудностей (за исключением недоделок MQ) в программировании. 

Ох ё 50 штук, они там между собой не ссорятся, или у вас 50 счетов
 
Михаил:

Не знаю как на ФОРЕКС, а Московская биржа приняла решение о разрешении кросс-сделок на ФОРТС!

Это только по персональному разрешению и для технических нужд типа "клиент вынужден на одном конечном биржевом аккаунте иметь возможность вести несколько разнонаправленных позиций для обеспечения таких-то задач".

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

 
Alexey Busygin:
Ох ё 50 штук, они там между собой не ссорятся, или у вас 50 счетов
Счёт один, научил не ссорится...
 
Renat Fatkhullin:

Это только по персональному разрешению и для технических нужд типа "клиент вынужден на одном конечном биржевом аккаунте иметь возможность вести несколько разнонаправленных позиций для обеспечения таких-то задач".

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

В пресс-релизе этого не написано.

Поживём-увидим. 

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