Тестер, поддерживающий МГ4-скрипты и советников - страница 4

 

Можете все хоть головой биться об стену, или изобретать теплую воду.... Но Integer все ровно прав.

Integer:

Точно. Особенно пользуясь авторитетом начальственного положения.

Все языки одинаковые, за небольшим исключением особо экстравагантных. Все они изучаются за 21 день любым чайником. У всех for, while, if, switch, может быть форма записи отличается, но принципиально от этого ничего не меняется. Значение имеет не форма записи операторов, а инфраструктура с которой язык взаимодействует. В этом отношении МТ4 и МТ5 - два разных мира.

Разница во всем. Начиная с незначительного - с нумерации баров в индикаторе, в МТ4 справа налево, в МТ5 слева направо. Продолжая более существенным - совокупной позицией и организацией данных истории торговли. Самая большая разница, в том, что чаще всего требуется - в способе доступа к данным котировок и индикаторов, копирование данных требует проверки, индексация то слева направо то справа налево, время бара то входит в диапазон, то не входит. Чего стоит только одно обсуждение аналога функции iBarShift() в CodeBase.

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


 
Renat:

Что только у нас на форуме не увидишь.

А что, ответственности то никакой. Можно ляпнуть что угодно.

Языки пока отличаются. Код индикатора для пятерки не всегда будет работать в четверке. Возможностей не хватает
 
Vinin:
Языки пока отличаются. Код индикатора для пятерки не всегда будет работать в четверке. Возможностей не хватает
Уж лучше, чтобы коды индикаторов для 4-ки попрежнему работали в 4-ке же. И возможностей не нужно будет
 
borilunad:
Уж лучше, чтобы коды индикаторов для 4-ки попрежнему работали в 4-ке же. И возможностей не нужно будет
Они и работают. Если в них не вносить изменения и не перекомпилировать
 
Vinin:
Они и работают. Если в них не вносить изменения и не перекомпилировать
Я в "Тема"х ничего не изменял, просто когда Терминал обновился с 670-го на 711-й билд, стало тормозить с любым из них в тестере, потому и сообщил об этом, но сам стал экспериментировать со штатным МА и обнаружил много-чего, что раньше не мог по неопытности. Сейчас работаю с ним и доволен. Только недоволен моим приобретением 8-ки, что называется, попал, а планировал на нём только работать, а на Висте всё остальное. Видно, придётся продолжать на Висте, пока держится, а потом купить уже, не доверяясь никому, а эту 8-ку пущу на мыло, сайты и пр. :)
 
Renat:

В MetaTrader 4 лимитированная глубина истории, отдельные таймфремы и прямой доступ к барам своего символа через Open/High/Low/Close/Time[xxx]. Такой прямой доступ очень дорог в реализации с точки зрения ресурсов и затрат CPU. Задумайтесь о том, что каждый эксперт имеет свою локальную копию этих данных, чтобы не конфликтовать с другими экспертами и самим терминалом.

Это не совсем проблема пользователя, это ваша проблема. Т.е. можно сказать вы перекидываете проблемы терминала доступа к данным на пользователя.

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

Да и вообще некоторые ваши решения очень спорные.

 
TheXpert:

Это не совсем проблема пользователя, это ваша проблема. Т.е. можно сказать вы перекидываете проблемы терминала доступа к данным на пользователя.

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

Да и вообще некоторые ваши решения очень спорные.


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

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

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

 
Renat:

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

Я прочитал весь текст. Это не невозможно. Вы собираете таймфреймы для графиков, так же могли бы собирать и для советников, причем делать это вполне эффективно.

С чего вы взяли что пользователь бы вас гробил за тормоза?

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

Сделать умный кеш (есть же опыт), остальное не держать в памяти.
 

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

Иначе ответить на советы "сделайте, умный кеш, гнобить не будут и тд" нельзя.

 
Integer:

Точно. Особенно пользуясь авторитетом начальственного положения.

Все языки одинаковые, за небольшим исключением особо экстравагантных. Все они изучаются за 21 день любым чайником. У всех for, while, if, switch, может быть форма записи отличается, но принципиально от этого ничего не меняется. Значение имеет не форма записи операторов, а инфраструктура с которой язык взаимодействует. В этом отношении МТ4 и МТ5 - два разных мира.

Разница во всем. Начиная с незначительного - с нумерации баров в индикаторе, в МТ4 справа налево, в МТ5 слева направо.

...

Нумерация в МТ5 обратная по сравнению с МТ4 только по умолчанию. На самом деле с массивы можно развернуть в любые стороны. См. документацию: Направление индексации в массивах, буферах и таймсериях.

Integer:

...

Продолжая более существенным - совокупной позицией и организацией данных истории торговли. 

...

Как раз на МТ4 было много траблов в связи с тем, что приходилось перекрывать встречные позы по инструментам путём отправки лишнего приказа на сервер через OrderCloseBy(), который не всегда срабатывал по разным причинам. Поэтому надо было дополнительно проверять, и посылать приказы заново, а иначе вся логика ТС нарушалась.

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

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

Integer:

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

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

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


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

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

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