Как запустить 50 терминалов на одном компе? - страница 3

 
50 экспертов, 450 Mb памяти. Верно?

Я понял так, что речь идёт о 50 терминалах.
Терминал тянет больше ресурсов, чем эксперт.
 
50 экспертов, 450 Mb памяти. Верно?

Я понял так, что речь идёт о 50 терминалах.
Терминал тянет больше ресурсов, чем эксперт.


Один терминал, на нем крутится 50 экспертов (раза в два сложнее, чем стандартный МАСД). 350-450Мб. Ну и тормозит, конечно. Потому-то и спрашивал.
 
Quark

У тебя все 50 молотят по нейро-алгоритмам?
И вообще - как успехи?


Пока работает только один НН эксперт. Вот сводка:
Balance: 860.00 (начальный депозит1000, лот 0.1)
Прибыль по типам сделок: Buy: -53.00, Sell: -87.00,
Number of trades: 8 ,
Max. Drawdown: 0.61 (buy: 0.48, sell: 0.12)

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

Мои сети, увы, кушают ресурсы. И соответственно, я их не запускаю, пока не закончится тестирование нынешнего "блока" экспертов. Комп не тянет.
 
Я вот не понимаю.

50 экспертов, 450 Mb памяти. Верно?
Может, речь, всё-таки, идёт о 50 тысячах экспертов?
Потому что иначе на каждого эксперта приходится по 9 Mb.
Windows 95 в таких условиях (9 Mb) летает со страшной силой, особенно на современных скоростях процессора.
Неужели эксперт, исполняющийся в виртуальной машине MQL4, в совокупности с ней - сложнее и мощнее, и решает при этом не менее сложные задачи, чем вся Windows 95?

Когда же ещё и сам представитель разработчиков удивляется, что в таких условиях MT4 ещё и работает, тут я уже не понимаю по-настоящему.

Видимо, для серьёзной работы с применением автоматизации придётся использовать MT4 только как болванку, организовав двусторонний gate с нормальным софтом.

Уважаемый Programmer,

В отличии от Вас ("Я вот не понимаю"), я отлично все понимаю.
Особенно заявления такого рода, показывающие абсолютную далекость от мира программирования.
Не нужно придумавать себе такие ники, если знания не позволяют даже поддерживать обсуждение.

Извините, не могу по другому высказаться.
 
В отличии от Вас ("Я вот не понимаю"), я отлично все понимаю.

Ну так объясните.

Если причины - административно-коммерческие в ущерб качеству, причём настолько в ущерб, так и скажите. Тогда понятно станет. А пока только догадываться могу.

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

Вообще-то я - профессиональный программист с более, чем 10 летним стажем. :)

Не нужно придумавать себе такие ники, если знания не позволяют даже поддерживать обсуждение.

Если бы откликнулся тот, с кем можно было бы поддерживать обсуждение, я бы, возможно, поддержал. Однако, не считаю разумным поддерживать обсуждение с теми, кто реагирует в таком стиле:

alexjou
Когда коту делать нечего... (продолжите сами)

А вот если есть, что сказать по существу и хотя бы какую-никакую аргументацию привести, - другое дело. Вы заметили, я таки плохо ли, хорошо ли, но аргументирую свою позицию.
У Вас, кстати, аргументов, почему Вы решили, что я далёк от мира программирования, и что мои знания не позволяют даже поддерживать обсуждение, я не увидел.

Извините, не могу по другому высказаться.

Ничего страшного.

На самом деле я много ещё чего "не понимаю".
Не понимаю, как это можно запросто выкинуть функции из API (SpeechText, например), даже не объявив эту функцию в документации предыдущей версии как deprecated. Вам, надеюсь, известно об этой практике этики в программировании?
Как можно исправленной (то есть - другой) версии присваивать тот же самый номер build'а (188)? В англоязычной части форума один из участников, кстати, прямо задал недоумённый вопрос по этому поводу.

Ругаемая и недолюбливаемая многими за не очень уважительное отношениее к потребителю её продукта Microsoft, занимающая относительно монопольное положение по ряду позиций, себе даже и близко такого не позволяет.
У них, почему-то, если исполняемый файл скомпилирован для некоторой версии Windows, то он будет работать и в последующей, а если и не будет, то об этом разработчикам станет известно заранее за много лет.

Хотя, не исключаю, что Вы как фирма занимаете в своей нише ещё более монопольное положение, чем Microsoft - в своей, поэтому такие вещи с MT4 и MQL4 и возможны.

Я сначала было нацелился серьёзно пользоваться MQL4, поскольку для программиста это - ограниченный вариант C с парой удобных элементов из C++, но, почитав на форуме, с чем сталкиваются люди, то есть, фактически, узнав больше о том, с каким качеством всё это реализовано, отказался от этой идеи.

А ведь, если чуть-чть доработать MQL4, например, добавить ссылки на функции (чтобы, например, можно было реализовать свой вариант qsort - я пользовался в одном из своих индикаторов индексной сортировкой), навести порядок с областью видимости и сокрытием локальных переменных, доработать препроцессор - в директиве define сейчас невозможны, например, даже простые константные выражения, типа 60 * 60, то даже без средств доступа к динамической памяти можно было бы большинство задач решать исключительно с помощью только MQL4.

А так - проще принять стратегическое решение сделать двусторонний gate, используя MT4 как болванку (чтобы не взламывать протоколы обмена с сервером и не зависеть от их смены в следующих версиях), разработать свой API, и тогда с выходом очередной версии MT4 нужно будет лишь протестировать и при необходимости поправить gate под, возможно, изменившийся API MT4.

Свой собственный API при этом останется неизменным или, во всяком случае, совместимым (при своём развитии), так что программы, написанные ранее, будут работать, во-первых, без переделки и, во-вторых, будут работать точно так же, как и прежде, а не как-то, вдруг, по-новому.

Тогда в 450 Mb, может быть, 50 тысяч экспертов и не удастся запустить (а, может, и удастся - вопрос), но 5 тысяч - не вопрос, а о 50 единицах экспертов указанной сложности - и говорить смешно.
 
2 Programmer:
Коллега! Я просто пошутил. Прошу извинить, если ненароком обидел. Мое частное мнение: есть, конечно, некоторые претензии к продукту. Однако работать с ним можно, как он есть. Но если очень-очень хочется, то можно, разумеется, организовать импорт котировок из него в свою собственную торговую систему его же штатными средствами, без насилия и грубости. Много чего можно сделать. Вопрос только в одном - зачем? Не буду писать о своем стаже программирования, однако скажу, что лично меня МТ вполне удовлетворяет в том виде, в котором он есть сейчас. Перестанет удовлетворять - будем думать. Просто я всегда стараюсь решать вопросы строго по мере их поступления. Так же действуют, думаю, и разработчики МТ. Попытки "объять необъятное" ни до чего хорошего никого еще не доводили. Только на моей памяти много замечательных проектов бесславно погибло просто потому, что хотелось "всего и сразу".
 
К сожалению, еще один программист, недовольный отсутствием клиентского апи, решил покритиковать нас. Видимо, этот программист каждый день запускает десятки экспертов в одной программе или десятки копий терминалов, раз так со знанием дела критикует, да еще с подменой условий сравнения (с Windows 95:-). Но я думаю, что он лишь теоретически рассуждает, заодно выказывая свои накопленные обиды.

Изначальный вопрос про 50 терминалов как-то отошел в сторону, подменившись на мелкую критику по билдам и функциям.

Теперь более аргументированно:
1) МетаТрейдер позволяет запускать несколько десятков терминалов. Это факт. Также он может запускать десятки экспертов. Ни один из близко стоящих по функционалу терминалов такое сделать не в состоянии.

2) МетаТрейдер в полном пакете занимает 2.8 Mb. Что в него входит?

- полноценная среда программирования MetaEditor с отличным редактором (подсветка, автодополнения, подсказки по параметрам функций), встроенной документацией по языку MQL4 на двух языках, интегрированный доступ к онлайновой базе скриптов
- клиентский терминал с мощным теханализом, трейдингом, экспертами, кастом индикаторами, и тд
- отдельный компилятор MQL4
- LiveUpdate
- MultiLanguage Pack для визуального перевода интерфейсов
- поддержка массы языков, встроенная помощь по F1 на двух языках

Кто из конкурентов сможет показать такую компактность и функциональность? Я таких не видел. Куда не посмотришь - так примитивная чертилка занимает 5-10 Mb, а если что-то с бОльшим функционалом, что размеры уже от 20 Mb, временами доходя до 100. Почему у них так, а у нас все во много раз меньше?

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

3) Если речь идет о массовом запуске экспертов, то напомню, что эксперт - это ПРОГРАММА, написанная неким программистом. И если программист пишет программу, то он знает (публично не признается конечно, стыдливо умалчивая детали), что она потребляет ресурсы. Эксперт, манипулирующий массой индикаторов, выделяет явно и неявно(не надо забывать про копии массивов от индикаторов и тд) память. И тут 9 мегабайт на эксперта - не предел.

Сформулирую свою мысль четко и однозначно:
Эксперт, скрипт или индикатор являются результатом труда трейдера-программиста(об этом как-то забыли в обсуждении, не правда ли?). И ответственность за неэкономное расходование ресурсов полностью ложится на плечи этого программиста. Будет эффективный код - все будет работать быстро и потреблять мало ресурсов.
 
К сожалению, еще один программист, недовольный отсутствием клиентского апи, решил покритиковать нас.

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

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

Так я же для и про Programmer писал.
Извините, что временами пишу излишне эмоционально.
 
alexjou:
Коллега! Я просто пошутил. Прошу извинить, если ненароком обидел.

Ничего страшного, но что я мог ответить?
Вот я и не стал отвечать. :)

alexjou:
Мое частное мнение: есть, конечно, некоторые претензии к продукту. Однако работать с ним можно, как он есть.

Скажем так, баловаться - можно, а серьёзно работать нельзя.
Лично я - не мазохист, чтобы каждый раз искать ошибки реализации внутреннего API очередной версии MT4 и придумывать способы, как их обойти, чтобы индикаторы, эксперты и скрипты снова работали, и работали правильно.

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

Ну, я же написал, зачем:

Programmer:
и тогда с выходом очередной версии MT4 нужно будет лишь протестировать и при необходимости поправить gate под, возможно, изменившийся API MT4.

Свой собственный API при этом останется неизменным или, во всяком случае, совместимым (при своём развитии), так что программы, написанные ранее, будут работать, во-первых, без переделки и, во-вторых, будут работать точно так же, как и прежде, а не как-то, вдруг, по-новому.

Вот, зачем.

alexjou:
Просто я всегда стараюсь решать вопросы строго по мере их поступления.

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

alexjou:
Попытки "объять необъятное" ни до чего хорошего никого еще не доводили. Только на моей памяти много замечательных проектов бесславно погибло просто потому, что хотелось "всего и сразу".

Речь не о том, чтобы "всего и сразу", а о качестве реализации в первую очередь и этике - во вторую.

Renat:
К сожалению, еще один программист, недовольный отсутствием клиентского апи, решил покритиковать нас.

По поводу "решил покритиковать" - полностью согласен, а вот по поводу "недовольный отсутствием клиентского апи" - попрошу привести аргументы по поводу моего недовольства не чем-нибудь, а именно отсутствием этого клиентского API, о котором я, кстати, даже и не заикался.
Под API MT4 я подразумеваю способ общения индикаторов, советников и скриптов изнутри MQL4 с внешним миром. Одна из функций этого API, например, (была) SpeechText. Именно это я подразумевал под API MT4.
При этом я нисколько не сетовал на отсутствие библиотечного интерфейса к клиентам - того клиентского API, о котором я даже не упоминал.
Вот ведь как интересно, сначала меня объявляют далёким от программирования, а теперь вот приписывают то, чего не говорил. Последнее, кажется, передёргиванием называется?

Renat:
Видимо, этот программист каждый день запускает десятки экспертов в одной программе или десятки копий терминалов, раз так со знанием дела критикует, да еще с подменой условий сравнения (с Windows 95:-)

Десятки экспертов не запускаю, а вот десятки индикаторов - да. Ой, тяжело стартует MT4, пару минут можно смело заниматься другими делами (P4 HT 3 GHz, RAM 1500 Mb, Inet 128/256 Kbit/s).
Условия сравнения я не подменяю, я сравниваю просто более отвлечённо. Тех ресурсов, которых с лихвой хватает аж целой Windows 95 для своей работы, с трудом хватает одному (!) эксперту в виртуальной машине MQL4.

Renat:
Изначальный вопрос про 50 терминалов как-то отошел в сторону, подменившись на мелкую критику по билдам и функциям.

Говорят, дьявол - в мелочах, особенно, если мелочей много и всё, в основном, - в одну сторону.
Хотя, когда в очередной версии вдруг перестают работать индикаторы, это - совсем не мелочи.
Или - смотря для кого. Для Вас - может, и мелочи. Для меня как пользователя - нет.

Renat:
Теперь более аргументированно:
1) МетаТрейдер позволяет запускать несколько десятков терминалов. Это факт. Также он может запускать десятки экспертов. Ни один из близко стоящих по функционалу терминалов такое сделать не в состоянии.

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

Renat:
2) МетаТрейдер в полном пакете занимает 2.8 Mb. Что в него входит?

На сегодня - не принципиально, 2.8 или 28 Mb занимает продукт. Когда в таких пределах - это не существенный для пользователя аргумент. Есть аргументы значительно существеннее.
Для Вас, может, это и предмет гордости, но пользователю важнее другое.

Renat:
- полноценная среда программирования MetaEditor с отличным редактором (подсветка, автодополнения, подсказки по параметрам функций), встроенной документацией по языку MQL4 на двух языках, интегрированный доступ к онлайновой базе скриптов

Насчёт отличного редактора - тоже не соглашусь. Почему подсказки по параметрам функций сделаны также похабно?
Пока параметры вводятся вручную, подсказка по параметрам функций держится.
Даже если вводится имя функции через автодополнение (производится вызов функции, и значение, которое она вернёт, будет использовано в качестве параметра), - подсказка по параметрам функций всё ещё держится.
Однако, стоит ввести в качестве очередного параметра через автодополнение именованную константу, например, MODE_BID, подсказка по параметрам функций срывается. Приходится добегать до открывающей скобки, стирать её, печатать заново, чтобы подсказка по параметрам функций появилась вновь, и продолжить ввод параметров.
И это называется - ОТЛИЧНЫЙ редактор?
А как-то ещё терял исходный текст, потому что в условиях нехватки места на диске этот отличный редактор вёл себя странно. Благо тот исходный текст был игрушечным и коротким, но я ведь сейчас - об "отличности" редактора.

Renat:
- клиентский терминал с мощным теханализом, трейдингом, экспертами, кастом индикаторами, и тд
- отдельный компилятор MQL4
- LiveUpdate

Вот, по поводу LiveUpdate.
Как, во-первых, он отключается кроме, как (временным) выведением из строя соответствующего исполняемого файла?
И как, во-вторых, мне откатиться к 186-му build'у, если после обновления посреди недели на недоделанный 188-й у меня нарушилась работа как самого MT4, так и некоторых индикаторов?

Renat:
- MultiLanguage Pack для визуального перевода интерфейсов
- поддержка массы языков, встроенная помощь по F1 на двух языках

Что ж, сам набор сервиса вполне стандартен для добротного продукта, чем-то выдающимся он не является.
Я критикую не сам набор, я критикую в первую очередь - качество реализации, а во вторую - этику.

Renat:
Кто из конкурентов сможет показать такую компактность и функциональность? Я таких не видел. Куда не посмотришь - так примитивная чертилка занимает 5-10 Mb, а если что-то с бОльшим функционалом, что размеры уже от 20 Mb, временами доходя до 100. Почему у них так, а у нас все во много раз меньше?

Потому что они являются откровенными неумехами и пользуются тем, что зачастую трейдер слабо знаком с компьютерами, поэтому ему не трудно "втюхать" безобразный товар, выдав его чуть ли не за совершенство.
Однако у MT4 имеется серьёзная болезнь - качество реализации, и поэтому очень хорошая изначальная идея как минимум наполовину оказывается убитой.
Я же говорю, сначала-то я обрадовался, когда начал знакомиться с MT4.

Renat:
Все это от того, что наша компания ставит эффективность и экономию ресурсов на первое место. Мы писали и пишем софт, который выжимает практически максимум из железа, не занимая лишних ресурсов. Мы умеем писать массовый софт и знаем что и как делать.

Я бы предпочёл иметь в несколько раз больший объём MT4, выход очередной версии не ранее, чем через пол-года, но при нормальном качестве реализации и как следует оттестированной.
Пользователю не так важно, 2.8 или 10 Mb занимает MT4, ему важнее, чтобы работал как часы и не нарушал с выходом очередной версии ничего.

Renat:
3) Если речь идет о массовом запуске экспертов, то напомню, что эксперт - это ПРОГРАММА, написанная неким программистом. И если программист пишет программу, то он знает (публично не признается конечно, стыдливо умалчивая детали), что она потребляет ресурсы. Эксперт, манипулирующий массой индикаторов, выделяет явно и неявно(не надо забывать про копии массивов от индикаторов и тд) память. И тут 9 мегабайт на эксперта - не предел.

Сформулирую свою мысль четко и однозначно:
Эксперт, скрипт или индикатор являются результатом труда трейдера-программиста(об этом как-то забыли в обсуждении, не правда ли?). И ответственность за неэкономное расходование ресурсов полностью ложится на плечи этого программиста. Будет эффективный код - все будет работать быстро и потреблять мало ресурсов.

В MQL4 отсутствуют средства управления памятью.
Поскольку программа исполняется в виртуальной машине MQL4, то именно её ресурсы неявно (отсутствуют средства управления памятью) потребляет программа.
Как отобразить это на реальные ресурсы - вопрос реализации виртуальной машины MQL4.
То, как написана программа на MQL4, конечно, влияет на потребляемые реальные ресурсы, но не так прямо и не в такой степени, как можно было бы понять с Ваших слов.

Ещё раз:

1. В MQL4 отсутствуют средства управления памятью.
2. Программа MQL4 исполняется в своей виртуальной машине, поэтому - как потребляемые виртуальные ресурсы отображаются на реальные - вопрос реализации виртуальной машины. Никто же Вам не мешал самим придумывать модель этой виртуальной машины. :)

Поэтому не могу согласиться с Вашей фразой "И ответственность за неэкономное расходование ресурсов полностью ложится на плечи этого программиста", особенно со словом "полностью".
Замечу, что как правило неэффективность реализации индикаторов и советников любителями лежит в плоскости вычислительных ресурсов, то есть, неэффективно расходуется в первую очередь процессорное время, а не память.
У Вас где-то на сайте даже предупреждение есть именно с этим акцентом.
Что неграмотная реализация может существенно замедлить работу MT4.
Но не сказано о том, что она может отнять много памяти.