![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хотя бы потому, что она заявлена в документации, и я хочу ее использовать.
Для закачки и проверки истории, по аналогии с МТ5: https://www.mql5.com/ru/docs/series/timeseries_access
Повторю вопрос, Вы знаете, как можно средствами старого mql4 получить эту дату?
Для меня наличие функции в документации не является достаточным основанием для того чтобы разбираться с сервисдеском и на форуме, тратя время и силы, если она мне в принципе не нужна. А зачем она может быть нужна Вы, на мой взгляд, так и не смогли аргументировать.
Я лично никому не рекомендую использовать в МТ4 функции из API МТ5, потому что они давно уже подобным образом глючат, с самого момента "модернизации" MQL4. И впредь не буду рекомендовать их использовать, пока кто-то не докажет их безусловную необходимость.
Для меня наличие функции в документации не является достаточным основанием для того чтобы разбираться с сервисдеском и на форуме, тратя время и силы, если она мне в принципе не нужна. А зачем она может быть нужна Вы, на мой взгляд, так и не смогли аргументировать.
Я лично никому не рекомендую использовать в МТ4 функции из API МТ5, потому что они давно уже подобным образом глючат, с самого момента "модернизации" MQL4. И впредь не буду рекомендовать их использовать, пока кто-то не докажет их безусловную необходимость.
Вы так и не ответили на мой вопрос. Но, я понял, что Вам все равно и Вас все устраивает.
А, и еще один аргумент - переносимость программ с МТ4 на МТ5 и обратно.
Вы так и не ответили на мой вопрос. Но, я понял, что Вам все равно и Вас все устраивает.
А, и еще один аргумент - переносимость программ с МТ4 на МТ5 и обратно.
Узнать сколько баров есть на сервере если у Вас стоит ограничение на число баров в окне МТ4 нельзя. И я не встречал регулярную ситуацию когда это было бы нужно. Разумеется, экзотики всякой можно напридумывать много, но реально в 99.9% задач трейдеров можно обойтись без этого.
Насчет переносимости - это совсем разные платформы с принципиально разной методологией работы как с данными так и с ордерами. Поэтому и методология программирования для них совершенно разная. Для переносимости есть директива __MQL4__ и библиотеки с условной компиляцией.
Узнать сколько баров есть на сервере если у Вас стоит ограничение на число баров в окне МТ4 нельзя. И я не встречал регулярную ситуацию когда это было бы нужно. Разумеется, экзотики всякой можно напридумывать много, но реально в 99.9% задач трейдеров можно обойтись без этого.
Насчет переносимости - это совсем разные платформы с принципиально разной методологией работы как с данными так и с ордерами. Поэтому и методология программирования для них совершенно разная. Для переносимости есть директива __MQL4__ и библиотеки с условной компиляцией.
Организация доступа к данным - "экзотика"!? Гм. Хорошо.
Да трейдерам вообще по барабану на язык, трейдеру - нужно торговать и чтобы советники/индикаторы/скрипты работали правильно. Как они работают - это уже проблемы программиста. А вот программисту, чтобы написать качественный продукт для трейдера, нужно обращать внимание на такие мелочи, как доступ к данным.
И если Вы что-то не встречали, это не значит, что у других этого не было.
Организация доступа к данным - "экзотика"!? Гм. Хорошо.
Да трейдерам вообще по барабану на язык, трейдеру - нужно торговать и чтобы советники/индикаторы/скрипты работали правильно. Как они работают - это уже проблемы программиста. А вот программисту, чтобы написать качественный продукт для трейдера, нужно обращать внимание на такие мелочи, как доступ к данным.
Вы так и не привели ни одной реальной задачи, для которой была бы необходима эта функция. Только красивые слова вроде "доступ к данным" и признание, что эта функция Вам нужна просто потому, что описана в документации.
В API МТ4 вполне достаточно функций для доступа к данным, на мой взгляд, совершенно незачем залезать в функции для МТ5. Узнавать количество баров на сервере в МТ4 просто никому не нужно, потому что не нужно программно подгружать историю - это делает сам терминал перед обращением к функциям доступа к данным, применяемым в МТ4 (iHigh, iLow, MarketInfo и т.д.)
Что надо сказать очень удобно и очень жаль, что это изменили в МТ5, что создало там массу трудностей с доступом к данным
Вы так и не привели ни одной реальной задачи, для которой была бы необходима эта функция. Только красивые слова вроде "доступ к данным" и признание, что эта функция Вам нужна просто потому, что описана в документации.
В API МТ4 вполне достаточно функций для доступа к данным, на мой взгляд, совершенно незачем залезать в функции для МТ5. Узнавать количество баров на сервере в МТ4 просто никому не нужно, потому что не нужно программно подгружать историю - это делает сам терминал
Что надо сказать очень удобно и очень жаль, что это изменили в МТ5, что создало там массу проблем с доступом к данным
Да вообще-то привел, даже ссылку дал:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Сервисдеск. Жалобы, предложения.
Alexey Kozitsyn, 2015.10.30 17:11
Хотя бы потому, что она заявлена в документации, и я хочу ее использовать.
Для закачки и проверки истории, по аналогии с МТ5: https://www.mql5.com/ru/docs/series/timeseries_access
У меня на mql5 написана функция проверки/подгрузки истории по аналогии с тем, как это описано по ссылке. Все работает как надо. И я захотел воспользоваться ею же в программе на mql4. Я произвел перенос кода и определил, что функция SeriesInfoInteger() работает не корректно. Написал заявку в Серсисдеск. Почему я не должен использовать существующий код, если все функции дублируются на обоих языках?
Вы же, насколько я понял, сначала писали под mql4, потом перешли на mql5. Я - наоборот сначала активно начал писать на mql5, а затем - на mql4. Так что мне удобнее использовать новый функции.
И если сравнить документацию по организации доступа к данным из mql4 и mql5, то станет понятно, что доступ одинаковый. Просто документация по mql5 расширена примером доступа. Так что, еще большой вопрос, а так уж различается этот самый доступ.
Простой пример - один индикатор вызывает другой по iCustom. А этот другой индикатор в свою очередь вызывает также третий и четвертый. И все эти индикаторы строятся чуть дольше нескольких миллисекунд. Так вот запустив такую конструкцию в выходные, пользователь не дождется построения индикатора пока выходные не кончатся, если только сам не будет регулярно нажимать на графике кнопку "Обновить", и никакими программными средствами эту проблему не решить. Из-за этой проблемы мне пришлось вместо iCustom делать целую систему классов для вызова индикаторами друг друга минуя iCustom. В МТ4 такого геморроя и подавно не было.
В МТ4 сначала индикатор построился, потом вызывается код, который использует его данные. С таймсериями большей частью точно также. В Мт5 все переиначили и по моему убеждению совсем не в лучшую сторону.
Простой пример - один индикатор вызывает другой по iCustom. А этот другой индикатор в свою очередь вызывает также третий и четвертый. И все эти индикаторы строятся чуть дольше нескольких миллисекунд. Так вот запустив такую конструкцию в выходные, пользователь не дождется построения индикатора пока выходные не кончатся, если только сам не будет регулярно нажимать на графике кнопку "Обновить", и никакими программными средствами эту проблему не решить. Из-за этой проблемы мне пришлось вместо iCustom делать целую систему классов для вызова индикаторами друг друга минуя iCustom. В МТ4 такого геморроя и подавно не было.
В Мт4 сначала индикатор построился, потом вызывается код, который использует его данные.
Alexey Kozitsyn:
Попробуйте использовать события таймера.
События таймера на самом деле являются подклассом ChartEvent, и вызываются только когда индикатор запущен непосредственно на графике. В индикаторах, вызванных через iCustom, Вы не дождетесь ни вызова OnTimer, ни вызова OnChartEvent
Там один индикатор начинает построение только после того как построился другой, который он использует. Значит один раз нужно нажать обновить чтобы построился один, самый далекий в цепочке, потом ещё раз, чтобы построился тот, который использует его данные :)
Потому что индикатор в своем потоке не может ждать построение данных другого индикатора, не произведя возврат из OnCalculate. Это тоже приятная особенность. И вот так пользователь и будет постоянно тыркаться в меню графика вместо того, чтобы работать с данными.