История котировок. Увы, опять !

 
Когда-то Renat по этому поводу написал:
Сам сервер хранит и выдает не более 16384 баров по каждому графику. На стороне клиента эти данные могут накапливаться. Экспортировать можно вручную из History Center (клавиша F2) или прямо из бинарных файлов - их структура описана во встроенной документации (клавиша F1).


В результате с историей котировок сложилась фактически тупиковая ситуация.
Пользователь МТ4 имеет один-единственный (!!!) способ сформировать статистически значимую историю котирововок на своем компьютере - накапливать их лично. Разработчики с барского плеча разрешают ему закачать не более, чем "16384 баров по каждому графику". Брокеры вообще об этой проблеме не задумываются - с чего бы это, информация же на сервере лежит, получайте ! Добывать архивы котировок из Инета или у друзей - бестолковое занятие, у каждого брокера свои тонкости и своя история. И все !

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

К примеру, реальная ситуация. Я давно не открывал график EURUSD, M5, с 17 ноября 2005 г. Ну не пользуюсь я им обычно. И тут решил вдруг одну мысль проверить. А было в том файле 13000 баров.
И вот, МТ4 честно догрузил еще 16000 в конце и я получил "историю котировок" с сентября 2005 по апрель 2006. Правда с провалом от 17 ноября по 24 января ! Дык и зачем они мне нужны эти устаревшие данные :) ?

Не понятна мне в этой ситуации позиция разработчиков. С одной стороны они дают нам, пользователям, великолепный инструмент - МТ4+MQL4. Действительно великолепный ! За год работы я не разу не столкнулся с тем, что МТ4 не позволяет сделать что-то существенное. Всегда есть способ реализовать свои идеи, надо только "учить матчасть" :)

И что бы ни говорили писатели стратегий, MQL4 - отличное средство. Достаточно легкое, чтобы использоваться даже любителями. И достаточно насыщенное, чтобы обеспечить реализацию замыслов даже профессиональных программеров. А снобы от программирования могут не беспокоиться - не нравится MQL4 - пишите на чем угодно и юзайте свои DLLки.

Однако ! С другой стороны все совсем не так хорошо ! Давая нам отличный движок разработчики запрещают (именно!) нам получать к нему топливо. Как можно исследовать рынок не имея истории котировок ? Как можно без истории обкатать торговую программу ? Она ведь не фальшивыми деньгами будет рисковать, а реальными, кровными ! Как можно имея дело с такой системой как рынок обойтись без статистики ? И разве можно назвать статистикой 16000 баров ? На минутках это всего лишь 2,5 недели.

Дорогие разработчики, объясните мне, глупому, какие такие принципиальные основания послужили такому жесткому ограничению пользователей, которое ставит их в положение стрелков с оружием, но без патронов ? Неужели объем ? Но ведь это было бы смешно ! Даже минутный файл истории за год имеет объем всего в 15 Мб. И не качают ведь историю каждый день и все подряд пользователи.

Заботитесь о нагрузке на сервер ? Так вы ведь специально поставили под сервер не очень сильную машину, которая к тому же тянет и другие задачи, чтобы обеспечить в конце концов экономичность продукта. И это вам отлично удалось. Я думаю, что МТ4 - самый экономичный продукт !

Однако, у брокеров же другая задача ! Они ведь под сервера ставят мощные, надежные машины. Они обязаны обеспечивать клиентов котировками, это их уровень сервиса.

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

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

С уважением,
 
Пока что решением проблемы является попросить полную историю котировок мелких ТФ у брокера. Правда брокеры обычно предоставляют её только в случае, если у вас уже открыт реальный счёт у него. Хотя это напрягает всех в первую очередь службу техподдержки брокера. И отказ предоставлять котировки без каких-либо условий является просто дополнительным искусственным шагом по привлечению клиентов? Может быть просто обязать брокеров выкладывать полную историю котировок мелких ТФ у себя на сайте? Поскольку всё равно это ОБЯЗАННОСТЬ брокера предоставить котировки, в противном случае кто будет работать у брокера отказавшего в предоставлении этой информации?

К примеру, реальная ситуация. Я давно не открывал график EURUSD, M5, с 17 ноября 2005 г. Ну не пользуюсь я им обычно. И тут решил вдруг одну мысль проверить. А было в том файле 13000 баров.
И вот, МТ4 честно догрузил еще 16000 в конце и я получил "историю котировок" с сентября 2005 по апрель 2006. Правда с провалом от 17 ноября по 24 января ! Дык и зачем они мне нужны эти устаревшие данные :) ?


Я тоже про это самое говорил в ветке "Вопрос о взаимосвязи котировок разных таймфреймов" на что Renat ответил
У нас приоритет - как можно больше экономии ресурсов. Поэтому массовых закачек нет и вряд ли будет.

Я вижу выход в следующем. Просто пишется элементарный советник, в функцию start() которого помещаются такие вот выражения :
a=iClose("EURUSD",PERIOD_M1,0);
a=iClose("EURUSD",PERIOD_M5,0);
a=iClose("EURUSD",PERIOD_M30,0);
a=iClose("EURUSD",PERIOD_H1,0);
a=iClose("EURUSD",PERIOD_H4,0);
a=iClose("EURUSD",PERIOD_D1,0);
a=iClose("EURUSD",PERIOD_W1,0);


Тогда скрипт в автомате будет запрашивать данные по требуемым инструментам и ТФ, накапливая их в архиве. И тогда не потребуется специально еженедельно щёлкать экраны с разными ТФ чтобы закачать свежие котировки. Хотя я лично за то, чтобы закачивались котировки ВСЕХ ТФ, для открытого инструмета без всяких обходных путей!


 
Может быть просто обязать брокеров выкладывать полную историю котировок мелких ТФ у себя на сайте?

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

Интересно, что подразумевает Renat под массовыми закачками ? Любому нормальному трейдеру история может понадобиться только один раз. Закачал и дальше пользуйся. Какая это должна быть флуктуация, чтобы трафик таких закачек вдруг стал существенным для нагрузки сервера ?

Renat, ваша фирма когда-нибудь пыталась определить среднюю или пиковую долю закачек истории в общем трафике МТ сервера ?

solandr, предложенный Вами метод хорош, чтобы не щелкать по разным т/ф, однако с его помощью нельзя получить того, что на Вашем компе отсутствует. Только новые данные. А речь как раз об истории.

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

Разработчики, может я ошибаюсь ?
 
Я многократно повторял: все предоставляется в режиме по требованию. Если нужен график, то это определяется по тому, запросил ли человек или скрипт этот график.

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

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

Это правило не будет изменено.
 
Есть просьба: не ставьте себя в центр вселенной и тогда сразу многое станет понятным. Подумайте над тем, что на сервере тысячи пользователей в онлайне, несколько сотен баз данных и тд. Просто любое расчитанное для себя число умножайте на 1000 или 10000.
 
Есть просьба: не ставьте себя в центр вселенной
:)
Ренат, конечно, абсолютно прав, когда призывает нас к объективности и благоразумию.

Хотя на самом деле всё это совсем не просто.
Если говорить о цифрах, то это как раз в 1000 раз сложнее, чем программировать.

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

Успехи на Форексе по сравнению с этим - просто детская забава.
 
Есть просьба: не ставьте себя в центр вселенной и тогда сразу многое станет понятным

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

А по существу в Вашем ответе больше противоречий, чем объяснения позиции.
Я многократно повторял: все предоставляется в режиме по требованию. Если нужен график, то это определяется по тому, запросил ли человек или скрипт этот график.

Как мы видим - не все. Ни человек, ни график, ни скрипт или эксперт ДАЖЕ ПО ТРЕБОВАНИЮ получить от вашего сервера более 16000 баров не могут.
Мы ни в коем случае не будем предоставлять массовых закачек всего что только можно без явной необходимости того или иного графика.

Тут я вообще ничего не понял. Так кто определяет необходимость графика: я, когда его открываю ДЛЯ РАБОТЫ, или вы ? И почему в центре внимания оказыввается график, а не пользователь ? А как вы определяете явную необходимость ?
Запрос в глубину истории не является разрешенной операцией в экспертах, так как это автоматически приведет к возможности организовать массовые закачки истории.

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

На самом деле это вообще не проблема. И найти решение, которое устроило бы все стороны, было бы совсем не сложно. При желании, конечно.

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

Предлагаю простое и честное решение вопроса.
Дополните этот сайт еще одной страничкой - "История котировок",
и выложите на ней архивы хотя бы только младших таймфреймов,
хотя бы только по основным валютным парам.

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

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

А выложить архивы котировок по некоторым т/ф и парам это, согласитесь, работа на один человеко-день.
Зато пользователи будут удовлетворены полностью, а вы получите реальную возможность определить действительно ли так существенен трафик по закачке истории.
 
Уважаемый Yurixx,

Еще раз попрошу - не ставьте себя в центр и не считайте, что кто-то Вам специально и злобно не дает что-то. Мы наоборот делаем все, чтобы предоставить лучшие решения для трейдеров. Если снова появляется мысль "а чего не даете?", то подумайте поглубже.


Вопрос по истории многократно поднимался и мы отвечали на него практически одинаково.
Во всем должен быть баланс.

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

Увеличение глубины истории пропорционально увеличивает объемы баз данных, сетевой трафик, время сжатия пакетов при перекачке, потребляемую память компьютера и тд. И так как увеличение глубины затрагивает массу компонентов, то увеличение глубины истории в 2 раза за счет сложных связей может привести к 3-4 кратному повышению затрат ресурсов.

Кстати, при переходе от МТ3 к МТ4 мы подняли в 4 раза стандартную глубину истории с 4096 баров до 16384. Вероятно, уже пришло время еще повысить планку, например, до 32768 баров. Мы обсудим этот вопрос.
 
Вероятно, уже пришло время еще повысить планку, например, до 32768 баров. Мы обсудим этот вопрос.

Странно, у меня качаются 32тыс. баров.

18:13:13 HistoryCenter: synchronize 'USDJPY1'
18:13:36 HistoryCenter: 33096 bars imported in 'USDJPY1'
18:14:12 HistoryCenter: synchronize 'GBPUSD1'
18:14:49 HistoryCenter: 32683 bars imported in 'GBPUSD1'
18:15:10 HistoryCenter: synchronize 'GBPCHF1'
18:15:32 HistoryCenter: 32808 bars imported in 'GBPCHF1'
18:15:42 HistoryCenter: synchronize 'EURUSD1'
18:15:57 HistoryCenter: 32799 bars imported in 'EURUSD1'
 
Мне думается, что весь вопрос сводится к тому, чтобы не допускать лишней нагрузки без необходимости.

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

(в общем-то, так и сделано, речь идёт о большей глубине истории, обычно имеющейся и дилера)