Programmer 33 Share Posted October 20, 2013 Предыстория Всем привет! За прошедшие несколько недель меня несколько раз спросили о тестировании на истории, загрузке котировок и увеличении промежутка тестирования. Сегодня мы поговорим именно на эти темы. Для того, чтобы проводить качественное тестирование на истории Вашего любимого ДЦ, необходимо иметь загруженные котировки. Однако, как Вы вероятно знаете, зажимая кнопку HOME можно прокрутить график назад лишь до определенного момента. Это не так страшно на H1 и D1, но вот если для тестирования Вам нужны более низкие ТФ, то возникают определенные проблемы. Особенно это заметно на M1. На свежем терминаое обычно M1 можно прокрутить лишь на примерно 2-3 месяца назад. Поэтому, чтобы иметь в своем терминале хороший запас M1 котировок (6 мес. и более) необходимо периодически прокручивать график назад, чтобы он подхватывал все новые бары. Если это делать для нескольких инструментов, то рано или поздно данная процедура зажимания кнопки HOME надоест даже самым усидчивым трейдерам. В связи с этим возникает вопрос об автоматизации зажимания кнопки HOME... И это минимум. В идеале, хотелось бы, чтобы скрипт пробегал все интсрументы и скачивал историю в фоновом режиме. Link to post Share on other sites
Programmer 33 Author Share Posted October 20, 2013 (edited) Скрипт После долгих поисков' date=' я наткнулся именно на такой скрипт. Называется он [b']ZG_All_Quotings v3.2[/b], автор Zhunko: http://codebase.mql4.com/ru/7110 Есть еще версия v4.1: http://codebase.mql4.com/ru/7484 Однако, я предпочитаю v3.2. Эти версии развивались параллельно, и с моей точки у v3.2 больше преимуществ. Что делает данный скрипт? Скрипт ZG_All_Quotings делает именно то, что нам нужно - пробегает по всем инструментам в обзоре рынка и скачивает все котировки для всех ТФ этого инструмента. Великолепие данного скрипта в том, что все делается в фоновом режиме. Т.е. хоть кнопка HOME и зажата, это не влияет на работу других программ, и более того - даже в самом МТ4 можно спокойно работать на других графиках. Выкладываю индикатор и все прилагаемые DLL тут, более подробное описание и инструкция доступны по ссылке выше. ZG_All_Quotings_3_20130814.zip Edited October 20, 2013 by Programmer Link to post Share on other sites
Programmer 33 Author Share Posted October 20, 2013 Проблема После попыток использования индикатора, я заметил небольшой глюк, который постоянно обрывал процесс скачивание истории. Скрипт устроен таким образом, что он пошагово прокручивает график влево пока терминал позволяет. Как только терминал больше не позволяет прокручивать график, скрипт переходит к следующему ТФ или инструменты. Момент окончания прокрутки определяется когда скрипт производит 5 подряд неуспешных попыток сделать очередной шаг влево. Все бы хорошо, но иногда слабое соединение с интернет просто-напросто не позволяет терминалу подгрузить историю достаточно быстро. В результате, скрипт неверно полагает, что он дошел до начала истории, хотя есть что еще скачивать. Автор учел этот момент, и для решения этой проблемы в скрипте предлагается настраиваемый параметр glAQ_Pause - Пауза в секундах между итерациями. Если увеличить этот параметр, то промежуток времени между шагами будет дольше, что будет давать терминалу больший запас времени, чтобы загрузить историю. Однако, что автор не учел, так это то, что если заметно увеличить этот параметр (например, до 1 секунды), то скачка истории по всем парам превращается во много- много-часовое занятие. Link to post Share on other sites
Programmer 33 Author Share Posted October 20, 2013 Решение - MOD K Для решения этой проблемы, я создал ZG_All_Quotings MOD K Я решил разделить скачку истории и определение скриптом момента достижения самой левой точки графика. Теперь скрипт скачивает историю в "быстром" режиме - примерно 0.2 секунды между шагами. А когда наталкивается на 5 подряд идущих неудачных попытки, то он увеличивает задержку между шагами до 1 секунды и пытается сделать еще 5 попыток. Если удается сделать хоть один шаг, то скачка скрипт опять уменьшает задержку до 0.2 сек и скачка продолжается в "быстром" режиме до следующей остановки. Если же за пять секунд (5 попыток x 1 сек) не было сделано ни одного шага, то считается, что история для данного ТФ данного инструмента скачана успешно. Вот такое вот простое решение нетривиальное проблемы. Скрипт находится в приложении. На самом деле, это очень полезная утилита, я ей пользуюсь примерно 1 раз в две недели и проблем с историей нет. Если есть вопросы по скрипту - пишите, обязательно помогу Кирилл ZG_All_Quotings_3_20130814_MOD_K.rar 1 Link to post Share on other sites
AntFX 6,474 Share Posted October 20, 2013 (edited) Спасибо! Полезная штука (если работает как надо ) Мне тоже пригодится Edited October 20, 2013 by AntFX 1 1 Link to post Share on other sites
AntFX 6,474 Share Posted February 8, 2014 (edited) В новых билдах 600+ скрипт работать будет? Хотя бы в виде скопированного из 509 .ex4 Edited February 8, 2014 by AntFX 1 Link to post Share on other sites
Programmer 33 Author Share Posted February 10, 2014 В новых билдах 600+ скрипт работать будет? Хотя бы в виде скопированного из 509 .ex4 Приветствую, Проверил - у меня скрипт работает в 600м терминале. Скрин прилагается: Если возникают проблемы, попробуй почистить глобальные переменные: Кирилл Link to post Share on other sites
AntFX 6,474 Share Posted February 10, 2014 И правда, работает... Что-то я не так запускал, значит 1 Link to post Share on other sites
Recommended Posts