Форум » Консультации по программированию » МТ 4 Metatrader » Ответить

МТ 4 Metatrader

igroker: Мне нужна ваша помощь в написании такой программы чтобы я мог скачивать с МТ4 котировки в EXCEL но не по одной валюте а сразу по многим на любом тайм фрейме который я могу менять недельный дневной месячный 4 часовой и т д в зависимости от моей потребности. в любое время Примерно в таком виде маленький срез не весь список котировок Это возможно ? OPEN HIGH LOW close EURUSD 1,4674 1,4818 1,4673 1,4787 GBPUSD 1,6206 1,6393 1,6205 1,6353 USDCHF 1,0323 1,0323 1,0215 1,0237 USDJPY 91,97 92,04 90,92 91,15 EURGBP 0,9052 0,9079 0,9025 0,9041 EURJPY 135 135,32 134,57 134,8 EURCHF 1,5149 1,5155 1,5131 1,514

Ответов - 12

Scriptong: На форуме MQL4 я Вам уже ответил, что это можно сделать через DDE. Но, видимо, этот вариант Вам не подходит (хотя не указано, почему). Возможно, Вам требуется обычная история котировок. В этом случае никакая программа не нужна - используйте "Архив котировок" МТ4 (Сервис - Архив котировок). Там есть кнопочка "Экспорт". Итоговый файл можно просмотреть в Excel. Также просмотрите свежую статью на эту тему. Возможно, будет полезно.

igroker: через экспорт качается только одна валюта а мне нужно сразу скачать 28 валютных пар.

Scriptong: igroker пишет: через экспорт качается только одна валюта а мне нужно сразу скачать 28 валютных пар. Последовательно выбирайте валюты и скачивайте. От того, что Вы сделаете это не одновременно, результат никоим образом не изменится. Или Вам нужно совместить котировки нескольких символов во времени?


igroker: так и делаю но это занимается много времениу просто нужен такой web запрос который с истории база данных МТ4 экспортировал только одну строчку автоматически а не всю базу данных по этой валюте и помещал в ехсель файл дальще с другой валютной пары тоже экспортировал только одну строчку и помещал в ексел файл но строой ниже и т д и в конце концов выходила тааблица в ехселе с 28 строками по 4 колонками OPEN HIGH LOW close тайм фрейм у всех одинаков день допустим и экспортировать нужно только тогда когда этот тайм фрейм уже завершен н вот сейчас еще день не закрылся он закроется когда будет термниальное время у каждого терминала МТ4 оно свое у него которых в 23 часа у других в 1 час ночи поэтому экспорт может быть осуществлен только вчерашнего дня или для 4 H тайм фрейма экспорт только предыдуших 4 часов которые завершены

Scriptong: Все-таки я не могу до конца разобраться, что же Вам нужно. Буду гадать. Необходимо взять данные последнего сформированного бара некоторого заданного таймфрейма? Например, если задан таймфрейм Н1, то следует взять данные за последний сформированный час по всем символам? К примеру, если сейчас время 22:35, то нас интересует бар со временем открытия 21:00 (он развивается до 22:00, а в 22:00 открывлся текущий незавершенный бар).

igroker: вы правильно говорите именно по всем символам eur gbp chf cad aud jpy nzd и по их кросскурсам итого 28 символов и плюс золото и серебро. но тайм фрейм меня больше интересует от 4 H .и выше . и чтобы это делось автоматически . Делать это вручную работу это долгая рутинная работа . Получив все символы сразу я по своим критериям в еxcele могу определить какая валютная пара подходит в данный момент для торговли или которая подходит через определенный момент времени проходит последний сформированный бар опять делаю тоже самое. Это работа не одноразовая это постояная . У меня будут отдельные таблицы допустим по дневному таймфрейму и отдельно по недельному отдельно по 4 H и эти данные с разных таймфреймов не будут смешиваться.

Scriptong: igroker пишет: вы правильно говорите именно по всем символам eur gbp chf cad aud jpy nzd и по их кросскурсам итого 28 символов и плюс золото и серебро. но тайм фрейм меня больше интересует от 4 H .и выше . и чтобы это делось автоматически . Ура, угадал Теперь ситуация стала яснее. Да, подобного формата сбора данных я пока не встречал. Но и сделать это лично для Вас я пока не смогу - достаточно много работы выходит. Возможно, получится сделать это в виде отдельной статьи. Но до тех пор, пока не смогу придумать реальное применение такому подходу к сбору данных, со статьей придется подождать.

Nize: Перешел таки на новые билды MT4, ждал когда исправят все баги Но вот столкнулся с одной серьезной проблемой, хочу скомпилировать индюк, вызываю из терминала Metaeditor, открываю код допустим такой: #property copyright "Copyright © 2014, AST" #property link "www.Russia.ru" #property description "Информационный индикатор" #property indicator_separate_window #property indicator_height 40 #property strict extern color BoxColor = White; extern color SpreadColor = Crimson; string ShortName = "Account Info"; .................................. ................................. Компилю все нормально ошибок нет, индюк запустился, в журнале тоже все ОК Потом допустим хочу изменить цвет переменной SpreadColor в Метаедиторе меняю цвет скажем на Blue Снова компилю, все нормально, в журнале вижу remove / loaded succes, но вот только цвет на синий не поменялся блин Если удалить индюк с графика и снова поставить то тогда все Ок новые значения применятся, но блин это реальная заморочка Кто-нибудь сталкивался с таким? на старых билдах не хочется сидеть, что делать? mqlcache чистил, терминал переустанавливал не помогает(

igorTrader: Я тоже с этим сталкиваюсь. Помогает только перезапуск индюка. Видимо, это "особенность" нового билда....

Scriptong: Nize пишет: Если удалить индюк с графика и снова поставить то тогда все Ок новые значения применятся, но блин это реальная заморочка Кто-нибудь сталкивался с таким? на старых билдах не хочется сидеть, что делать? В новых билдах МТ4 стараются прийти к следующей последовательности работы программ: 1. Запущена программа с некоторым набором параметров. 2. Исходник программы правится вплоть до изменения значений параметров и компилируется. 3. Программа перезапускается, но с теми значениями параметров, которые действовали до момента компиляции. На мой взгляд, это правильно. Многие программисты раньше жаловались на то, что после компиляции программы (даже если в нее не вносились изменения) рабочая копия сбрасывает значения своих параметров в умолчательные, в то время как советники и индикаторы были запущены на различных символах с различными значениями параметров. Теперь этого нет, стало удобнее. P. S. Кроме непосредственного удаления программы и ее последующего прикрепления к графику можно нажимать кнопку "Сброс" в окне настроечных параметров. Хотя по количеству действий это практически то же самое, что и удаление-добавление.

Nize: Ок, спасибо за подробный ответ! оказалось не баг а фича блин) Но мне казалось что в первых 600+ билдах было все по старому, уже не знаешь чего ждать, такая путаница, перелопатили для совместимости, теперь куча дублирующих функций и целостность языка нарушена( Но как же неудобно теперь если надо поменять какой-то параметр, а индюк прикреплен к 15 парам например А можно как-то программно допустим скриптом вызывать этот "Сброс"?

Scriptong: Nize пишет: Ок, спасибо за подробный ответ! оказалось не баг а фича блин) Но мне казалось что в первых 600+ билдах было все по старому, уже не знаешь чего ждать, такая путаница, перелопатили для совместимости, теперь куча дублирующих функций и целостность языка нарушена( Да, это достаточно свежее изменение, которое было произведено не более чем два месяца назад, т. е. на билдах свыше 600-ых. Изменение было вызвано настоятельными просьбами MQL-сообщества. Разработчики согласились. К сожалению, не могу дать ссылку - не нашел этого диалога на сайте MQL4. Но помню, что разговор был. Nize пишет: Но как же неудобно теперь если надо поменять какой-то параметр, а индюк прикреплен к 15 парам например Ну да. У Вас обратная ситуация. К сожалению, это два разных подхода и, видимо, был выбран именно тот, который использует большее количество программистов. Nize пишет: А можно как-то программно допустим скриптом вызывать этот "Сброс"? Через MQL4 - никак. Теоретически же можно с помощью WinAPI. Но даже этот способ будет работать только на определенных билдах, пока при очередном обновлении разработчики на изменят коды кнопок или панелек. Тогда придется вновь узнавать эти коды и вносить изменения в программу.



полная версия страницы