Как импортировать котировки из excel в metatrader 4
Некоторые самые первые (но важные) статьи о Excel не вошли в группу, т.к. на момент их написания группы еще не было. Находятся эти статьи в персональном блоге. Ссылки на них:
Если Вы используете Excel в своей работе, то советую вступить в группу. Для этого надо всего лишь нажать одну кнопку ниже
Зато после вступления Вы будете получать уведомления на почту о появлении новых тем и точно ничего интересного не пропустите.
Лучшее от Kaur
Системная торговля. Готовы ли вы к просадкам? 51
2013-01-24 12:54:00 0
Как подняться трейдеру, если денег нет, а прибыльная торговая система есть? 24
2015-01-11 16:35:29 0
Первая сделка на валютном рынке за 7 шагов - инструкция для начинающих 61
2014-03-27 16:41:56 0
Информационная безопасность для трейдера 21
2014-09-30 16:19:15 0
Лежит пылится в сохраненных у меня один способ для решения этой задачи. Добавлю и в группу.
Итак, задача — передавать котировку из терминала в ячейку Excel. Для этого делается советник с кодом:
Если нужно, чтобы сохранялись данные не только о последней свече, но вся история по текущему ТФ, то добавляем строчку FileSeek(handle, 0, SEEK_END) Вот так:
В первом случае результат в файле будет просто в виде одной строки:
Передаются четыре цены текущего бара в порядке High Open Close Low
Если кому нужно, то прикладываю сам советник.
Вступите в группу "Excel на службе трейдера", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
Предыдущая запись в группе
(видео) Построение и тестирование EMA в Excel
Следующая запись в группе
Excel-прототипирование торговых систем (часть 1): быстрый старт
Комментарии ( 10 )
Уважаемый Руслан.
Будет ли Вам интересно написать Транслятор/Ретранслятор для МТ5 на основе «Трансляция котировок из МТ4 в Excel» с последующей ретрансляцией в МТ5 команд Sell и Buy; в виде удобного Окошка; с возможностью передавать торговлю Советнику, учитывать разрыв связи, вести трансляцию всех Bid и Ask подряд или через заданные интервалы времени…
Если Да, то назовите стоимость услуги.
А затем, после отладки на Демо-Счёте (надеюсь удачной), перепрограммировать стратегию из Экселя в MQL5.
Очень жаль. Без простого транслятора/ретранслятора теряется вся прелесть простоты экселя и возможность его использования.
В сети предлагается Скрипт MQL-Excel для МТ4:
Программа предназначена для людей далеких от программирования на MQL, но желающих создать свой торговый робот, без посторонеей помощи, и торговать по своим алгоритмам в автоматическом режиме.
Скрипт передает данные в EXСEL и позволяет торговать, отдавая сигналы из EXСEL в МТ4. Все расчеты на основании данных из МТ4, могут проводиться в EXCEL. Скрипт позволяет всу стратегию Вашей торговли перенести в EXCEL, т.е. все расчеты и передачу приказов брокерам проводить прямо из всем известной программы. Для создания своих стратегий Вам больше не понадобится обращаться к программисту, знаяEXCEL, Вы легко решите любые задачи, связанные с автоторговлей.
Но продавец совершенно безымянен и даже заказывать переделку на МТ5 просто «боязно».
С уважением, Александр Ильин
не работает у меня советник(, присоединяю его к графику, но никакой записи в файл не происходит, в чем может быть дело?
пишет, что эксперт загружен и инициализирован
1) Поставили ли все разрешения для советника? Должен быть улыбающийся смайлик в правом верхнем углу
2) В правильном ли месте ищите файл? Должен появится файл firstfile.xls в experts/files/
разобрался, папка мт была в програм файлс, а туда система не дает вносить изменения, переместил в другое место все заработало), а нельзя сделать, чтобы текущие котировки нужного ТФ передавались непосредственно в открытый файл excel?
Подскажите, есть ли такой индикатор, который будет брать значения из книги Excel ( а эти значения я туда буду заносить) и чертить на графике МТ4 горизонтальные уровни заданной длины?
[11:43] ilsergeev1988: Всем привет, а есть тут на сайте самый стабильный и прибыльный советник. Просто их тут много и не понятно какой из них самый надежный?
[17:04] Bishop: Конкурс пока не проводится. Может проводится на какое-то событие, тогда уведомление придет
Быстрое соединение
В данный момент Вы не видите обновлений в чате.
Соединитесь с чатом прямо сейчас! Или перейдите на страницу чата.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
- Устанавливаем библиотеку в папку "Каталог терминала\experts\libraries"
- Запускаем скрипт разрешив использование dll.
- Открываем оффлайн график следующего формата "!Eqv+Имя символа+,+M+Значение переменно TicksInBar"
- Должен открыться Excel.
Замечание: по умолчанию стоит путь D:\Книга1.xlsx, и желательно что бы файл уже был создан.
Пример: Кинули скрипт на евродоллар со значением переменной TicksInBar=1, значит нужно искать график с именем "!EqvEURUSD,M1"
Где можно применить?
Как вариант импорт данных из квика в МТ4 посредством Excel. Делаем импорт данных из Quik(предварительно соорудив таблицу в квике с необходимыми данными) в Excel по DDE в ячейку A1(1,1). Оттуда берем данные этим скриптом.
Для проверки работоспособности меняем значение ячейки А1 на любое число неотрицательное (как оказалось в МТ4 на графике нельзя отобразить отрицательное число), и наблюдаем как меняется график, для удобства наблюдения делаем отображение графика линией.
Замечание: Всегда берутся данные только с активного листа в Excel.
Таким образом можно получать тиковые данные с квика, а при желании и много других данных, и после отправлять транзакции обратно в квик. Более подробно об отправке транзакций в квик из МТ4 тут.
Внимание: Скрипт дописывает данные в конец графика если оффлайн график уже существует.
Отличная штука . Только с эксель-2007 не во всём корректно работает :( А можно попросить выложить здесь вариант библиотеки для 2007 ?
Отличная штука . Только с эксель-2007 не во всём корректно работает :( А можно попросить выложить здесь вариант библиотеки для 2007 ?
У меня в 2003 excel работает, только конвертор с microsoft установил (FileFormatConverters.exe), чтобы читал и писал нужный формат.
Я лично, искал как данные импортировать, только чтобы не просто тики рисовались но и собиралось все в минутные/пяти минутные /? минутные свечи из Excel, Quik . Не нашел. И честно говоря мне не понятно почему MetaQuotes Software Corp. не желает занимать нишу поставщика програмного оборудования через брокеров ММВБ и РТС. Самая "популярная" среди отечественных брокеров программа Quik стоит трейдерам примерно 200 руб/месяц. Сказать по правде, с учетом функциональных возможностей программ, я лучше платил бы своему брокеру за MT4|5 для РТС и ММВБ, если у него она была бы. Конечно может и с forexных контор нормальный доход, вот только пока идет волна - нужно брать максимум. Много лет назад Quik заслуженно называли самой популярной программой тех анализа, но на современном этапе она все меньше отвечает запросу клиента (трейдера): нет возможнсти так разнообразить с индикаторами, скриптами, а чтобы реализовать нормального робота - нет тестера стратеги + учи язык Си, к примеру. Брокеры пишут свои пограммы для построения роботов, для людей не являщихся програмистами и в скором времени сделют что-то уже удачное - а это все в возожности МТ.
Эта статья адресована тем, кто не знает MQL и не может быстро создать советника для проверки своей торговой идеи. Как быть? Поможет старый добрый Excel. Он прост и понятен в использовании и при этом обладает довольно мощными возможностями, включая сбор статистики, построение графиков, генерацию случайных чисел.
Конечно, существует определенный потолок. Попытка переложить в таблицы очень сложные и ресурсоемкие системы ни чем хорошим не закончится. Года три назад я увлекся и попытался сделать универсальную матрицу, которую можно было бы быстро перестраивать под самые разные системы. Дело закончилось махиной, которая состояла из 12 одновременно открытых книг excel, занимала 800 Мб места и еле ворочилась. Такой подход является, конечно, верхом иррационализма. Гораздо более продуктивным было бы изучить все-таки MQL. Но здесь я расскажу о том, как проверять быстро свои торговые идеи, потратив буквально пару часов на исследования.
B первая задача, которая стоит перед нами, — экспортировать ценовые данные из MetaTrader4 в Excel.
Предположим нас интересуют дневные графики EUR/USD.
Открываем пункт меню «Сервис» -> «Архив котировок» или просто нажимаем F2. Открывается окно с котировками. Находим нужную пару (в нашем случае EURUSD) и выбираем нужный ТФ (в нашем случае D1, или «День»). В результате получится примерно такое окно:
Нажимаем кнопочку «Экспорт» и сохраняем выбранные данные в файл *.CSV
Данные выгружены. Переходим к стадии импортирования, на которой обычно и возникают вопросы.
Дело в том, что если мы попытаемся просто открыть CSV файл, то у российских пользователей это может закончиться вот так:
Т.е. вместо стройных столбцов с данными мы видим, что вся информация записана в один единственный столбец. Существует несколько решений.
Я поступаю следующим образом:
-
Переименовываете расширение .xls на .txt (не обращая внимания на предупреждения)
Это все! Поздравляю! Теперь подобным образом вы можете экспортировать из терминала ценовые данные любой валютной пары и любого таймфрейма.
Осталось немного облагородить внешний вид таблицы — расширить первый столбец для даты, задать заголовки. Для дневок второй столбец со временем не нужен, его можно удалить. Получится примерно так:
И да, не забудьте сохранить файл как Книгу XLS (через пункт меню «Сохранить как. »). Иначе большинство изменений не сохранится.
Детальная проверка работоспособности исследуемой торговой тактики в тестере стратегий MetaTrader 4 (MT4) требует наличия истории котировок того или иного торгового инструмента. Чем глубже и полнее история котировок, тем большее количество рыночных ситуаций можно смоделировать.
Доступная глубина истории в MT4 измеряется в свечах (барах). По умолчанию количество доступных исторических баров в терминале установлено равным 512 000 (пункт главного меню «Сервис» -> «Настройки», закладка «Графики»), а максимально видимое в окне — 65 000 (см. рис. 1).
Рис. 1. Настройки терминала MetaTrader 4.
Такого количества истории вполне достаточно, если речь идет о крупных таймфреймах: месячном, недельном, дневном. Нехватка данных будет ощущаться особенно остро на мелких таймфреймах, например, на минутном (М1), для которого 65 000 баров — это полтора месяца.
Следует отметить, что таймфрейм М1 является базовым для всех таймфреймов, т.к., имея данные по таймфрейму М1, можно синтезировать историю котировок для любого другого таймфрейма, даже нестандартного. Кроме этого, таймфрейм М1 позволяет детально рассматривать процесс формирования свечи более крупного таймфрейма. Если для какой-то, к примеру, часовой, свечи не существует детализированной минутной истории, то о развитии ситуации внутри нее можно только догадываться. Во время тестирования стратегии для подобных свечей производится моделирование минутных свечей, что может быть близко к истине, но не дает абсолютной точности воспроизведения реальных событий. По этой причине важно иметь как можно более глубокую историю котировок, детализированную до уровня таймфрейма М1.
Получение истории котировок в MetaTrader 4
В терминале MT4 предусмотрены штатные средства для получения глубокой детализированной истории котировок. Рассмотрим этот процесс пошагово.
Шаг 1. Установить достаточное количество доступных баров в истории и количество видимых баров в окне (см. рис. 1). Вычислим это значение. Максимально доступная история по большинству инструментов насчитывает 11.5 лет (с 01.01.1999 до нынешнего времени). На один год приходится около 260 рабочих дней (52 недели, состоящих из 5 рабочих дней). Каждый день состоит из 1440 минут (24 часа * 60 минут в часе). Итого получаем: 11.5 лет х 260 дней в году х 1440 минут в одном дне = 4 305 600 минут. Учитывая тот факт, что со временем история будет накапливаться, установим доступную глубину истории с запасом, т.е. 5 000 000 баров.
Шаг 2. Загрузить полную историю с сервера компании MetaQuotes Software Corp. Для этого необходимо открыть окно «Архив котировок» (главное меню «Сервис» — «Архив котировок» или нажать F2), выбрать нужный инструмент и таймфрейм (см. рис. 2). Обратите внимание, что пиктограмма выбранного таймфрейма должна быть подсвечена. Далее нажимаем кнопку «Загрузить» и получаем окно предупреждения о том, что загрузка котировок будет произведена не с сервера компании брокера, а с сервера компании MetaQuotes. Убираем предупреждение с экрана путем нажатия кнопки «ОК» и ожидаем окончания процесса загрузки, который, в зависимости от скорости соединения, может занять различное время. Объем загружаемой информации, если обращение к архиву котировок производится впервые, составит около 40 Мб.
Рис. 2. Использование «Архива котировок».
Шаг 3. После окончания загрузки данных желательно перезагрузить терминал, т.к. изменение значения максимального количества баров происходит только при запуске терминала.
Вновь запустив МТ4, проведем проверку наличия закачанных данных. С этой целью откроем график инструмента, по которому производились вышеуказанные действия, установим таймфрейм М1 и нажмем клавишу Home, что приведет к переходу по шкале времени к началу имеющихся данных. Если вы наблюдаете свечи, соответствующие 4-ому января 1999-го года, то процесс получения истории котировок прошел успешно.
Казалось бы, дело сделано, и можно приступать к тестированию разработанной стратегии. Но не тут то было. При детальной проверке целостности полученных котировок сталкиваемся с неприятным сюрпризом: история котировок изобилует провалами в данных — «дырами» (см. рис. 3). К сожалению, подобные «дыры» далеко не редкость в закачанной истории котировок. Только за 2010 год можно легко найти еще два серьезных пробела: 07.05.2010 — 08.07.2010 и 23.07.2010 — 05.08.2010.
Рис. 3. Одна из «дыр» истории котировок.
Использовать подобную историю котировок при тестировании стратегий, значит, обманывать самого себя. Поэтому для серьезных исследований стоит подготовить историю котировок, которая не содержит «дыр», или, по крайней мере, тех «дыр», которые образовались неестественным образом (отсутствие реально существовавших данных по необъяснимым причинам). В свою очередь, под естественными «дырами» подразумеваются провалы в данных, которым соответствует реальное отсутствие котировок, вызванное низкой волатильностью рынка, например, в ночное время.
Импорт котировок в MetaTrader 4
Найти глубокую детализированную историю котировок для MT4 в свободном доступе оказывается проблематичным делом. Намного проще найти ее для другой торговой платформы — MetaStock. Данные для MetaStock и были взяты за основу для получения истории котировок для МТ4. Форматы представления истории котировок в MT4 и MetaStock достаточно похожи, хотя и нуждаются в некоторой коррекции, которая была проведена автором статьи для 14 наиболее распространенных финансовых инструментов. В итоге прилагаемые к статье файлы истории котировок можно использовать для импорта в среде терминала МТ4.
Процесс импорта котировок производится в несколько шагов:
Шаг 1. Закрыть терминал МТ4.
Шаг 2. В папке терминала history\\ удалить все файлы типа hst, которые относятся к тому инструменту, по которому предполагается импортировать историю котировок. Например, для инструмента EURUSD это будут файлы: EURUSD1.hst, EURUSD5.hst, EURUSD15.hst, EURUSD30.hst, EURUSD60.hst, EURUSD240.hst, EURUSD1440.hst, EURUSD10080.hst и EURUSD43200.hst.
Шаг 3. Загрузить терминал.
Шаг 4. Открыть окно «Архив котировок», выбрать в списке нужный инструмент и таймфрейм так, как это показано на рис. 2.
Шаг 5. Нажать кнопку «Импорт», что приведет к появлению окна, указанного на рис. 4. Далее, путем нажатия кнопки «Обзор…», необходимо выбрать один из распакованных файлов, которые были получены по представленным в статье ссылкам.
Рис. 4. Импорт истории котировок.
Шаг 6. В зависимости от брокера, с которым работает пользователь, необходимо установить временной сдвиг истории котировок. Представленная история основана на времени сервера брокера GMT+1. Поэтому, если сервер вашего брокера настроен именно на такое время, то в поле «Сдвиг» следует оставить значение 0. Для времени сервера GMT необходимо указать сдвиг -1 час, а для времени GMT+2 сдвиг будет равен +1 час. Обратите внимание, что речь идет не о локальном времени компьютера пользователя, а именно о времени, принятом на сервере брокера.
Смещение времени сервера MetaTrader 4
Вычислить смещение времени сервера можно в один из рабочих дней следующим образом: открыть окно терминала «Обзор рынка» (главное меню «Вид» — «Обзор рынка» или нажать Ctrl+M) и сравнить время, указанное в заголовке окна с локальным временем компьютера. Если локальное время компьютера опережает значение, указанное в «Обзоре рынка», то из локального часового пояса (можно посмотреть в настройках Windows при установке времени) необходимо вычесть полученную разность. Если же локальное время компьютера отстает от времени сервера брокера, то разность в часах прибавляется к локальному часовому поясу (см. рис. 5).
Рис. 5. Вычисление часового пояса сервера брокера.
Шаг 7. Нажать кнопку «ОК» и дождаться окончания загрузки истории котировок.
Выполнение перечисленных шагов приведет к получению качественной минутной истории котировок с 03.01.2001 по 22.06.2011.
Синтез различных таймфреймов из М1
Как упоминалось выше, располагая минутной историей, можно синтезировать любой другой таймфрейм. Для этого достаточно использовать штатный скрипт period_converter:
1. Активизировать окно графика нужного инструмента и установить таймфрейм М1.
2. Открыть окно «Навигатор» (главное меню «Вид» — «Навигатор» или Ctr+N).
3. Раскрыть список «Скрипты» и найти скрипт period_converter.
4. Произвести двойной клик мышью в строке с названием скрипта, что приведет к появлению окна настроек программы.
6. Параметру ExtPeriodMultiplier присвоить значение, соответствующее количеству минут, содержащееся в желаемом таймфрейме. Например, для часового таймфрейма это значение 60, для Н4 — 240, для D1 — 1440, для W1 — 10080, для MN1 — 43200.
7. Нажать «ОК» и выждать несколько секунд для завершения конвертации, после чего можно нажать правой клавишей мыши на графике и выбрать пункт «Удалить скрипт». Для того чтобы убедиться в окончании синтеза данных до принудительного удаления скрипта с графика, необходимо открыть окно «Терминал» (главное меню «Вид» — «Терминал» или нажать Ctrl+T) и выбрать закладку «Эксперты». Вслед за строкой вида: «2011.07.22 22:56:52 period_converter EURUSD,M1 inputs: ExtPeriodMultiplier=60» должна следовать строка вида: «2011.07.22 22:56:55 period_converter EURUSD,M1: 75673 record(s) written». После этого можно смело удалять скрипт и приступать к синтезу других необходимых таймфреймов.
Внимание! Для наиболее правильного синтеза таймфреймов из таймфрейма М1 не рекомендуется переключать период графика до окончания синтеза всех генерируемых таймфреймов.
Дело в том, что при установке терминала, история котировок ограничена и по мере прокрутки истории она подгружается с сервера брокера. Вы наверно сами это замечали, когда быстро крутите историю, например, на минутных таймфреймах терминал подтормаживает.
Для анализа стратегий в ручную такое еще прокатит, но вот в автомате (тестере стратегий) нет, нужна загруженная история.
Временной таймфрейм закачки архива котировок будем использовать M1, ввиду того что на его базе можно синтезировать любой таймфрейм.
Итак, начнем, для начала снимем ограничения загрузки.
Откройте терминал, затем нажмите Ctrl + O, появится окно настроек, выберите вкладку «Графики» и установите в значение «Макс. баров истории» максимальное число загрузки баров. Всё как на скриншоте:
Объяснять, наверное не надо, почему надо устанавливать максимальное число.
На главном меню терминала нажмите на «Сервис», затем выберите «Архив котировок» (можно вызвать нажатием на F2):
Слева в колонке «Символы» выберете нужную валютную пару, затем два раза щелкните по ней мышкой и выбираем 1 минуту, далее жмем загрузить. Пошла загрузка, это довольно длительный процесс (конечно, всё зависит от скорости принимающего и раздающего).
Когда процесс загрузке завершится, может появиться окно с предложением пересчитать все таймфреймы, соглашаемся. Закрывайте окно и перезагрузите терминал.
Теперь перейдем к следующему.
Как загрузить архив котировок со сторонних брокеров (ресурсов)?
Максимальный временной промежуток загружаемых историй котировок в первую очередь зависит от брокера, и глубина их истории у всех разная. Так же это относится к качеству самих котировок, наличие или отсутствие провалов во времени (дыры).
Что делать, если Вас не устраивает закачанная история котировок вашего брокера?
Не расстраивайтесь, вы можете на стороннем брокере или ресурсе найти историю для нужной валютной пары и таймфрейма.
Находим котировки и скачиваем их в формате .csv, либо же в .hst, но тогда просто в ручную поместите его в папку history (c:\Program Files\MetaTrader (название вашего брокера)\ history\ и выберите счет), не забудьте предварительно удалить предыдущий .hst файл загружаемой валютной пары.
Но в основном брокеры предлагают архив котировок в формате .csv. Предварительно скачав его вызываем «Архив котировок»:
Нажимаем на «Импорт», появится окно:
Далее нажимайте обзор и укажите путь скачанного файла на своем компьютере. Если часовой пояс вашего брокера отличается от скачанного архива котировок, установите значение сдвига (например, скачали котировки в GMT, а брокер работает в GMT +2, тогда назначьте значение в сдвиге +2).
Если всё выполнили тогда жмем Ок.
Вот и вся загрузка истории котировок, как видите ничего сложного в ней нет. Удачного вам анализа! До свидания.
С уважением, Евгений Бохач
Статьи на похожую тему:
Подпишись на блог! И получай статьи на почту!
2 комментария на «“Как загрузить историю котировок в терминале mt4?”»
Еще есть замечательный тестер стратегий, позволяющий «вживую» запустить историю и в ручном режиме протестировать свою стратегию на любом таймфрейме и за любой период.
Называется SimpleForexTester. Очень полезная штука!
только почему-то у меня дальше ноября не идет история. а я хотела просмотреть статистику за год(((((
Читайте также: