Обсуждение статьи "Передача данных между индикаторами - простое решение наболевшей проблемы" - страница 2

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...Только один вопрос – как преобразовать указатель в целое. В этом нам и поможет Dynamic Link Library, а именно, возможности языка C++ по приведению типов данных. В связи с тем, что указатели в C++ являются четырехбайтовым типом данных, в наших целях удобно использовать четырехбайтовый же тип int...
Если не ошибаюсь, автор говорит о неявном преобразовании типов. Очень позновательная статья - огромное спасибо автору.
Ещё хотел добавить, что если понадобится сделать метод SetPtr, то не обойтись без явного приведения типов.
Будет выглядить примерно так
Вообще, MQL5 выиграл бы сильно, если бы указатели получили широкое признание и использование.
Вообще, MQL5 выиграл бы сильно, если бы указатели получили широкое признание и использование.
Я бы добавил в этот список обработку исключений, конструкторы с параметрами и множественное наследование.
Но разработчики почему-то считают, что мы не в достаточной мере умны, чтобы воспользоваться всеми этими возможностями, а только навредим себе.
Хотя все перечисленное является стандартными средствами ООП и никому особо еще не повредило.
Создается впечатление (у меня), что они просто не в состоянии надежно реализовать эти механизмы.
Печально, что кто-то решил, что этого у нас не будет
Я заметил, что в новых сборках MT4 функция SetIndicatorValue() не работает, а GetIndicatorValue() работает. Мне показалось, или в новых билдах (я думаю, изменения произошли где-то после билда 225) что-то сломало эту функцию? Если да, то есть ли какие-нибудь предложения, как заставить методологии из этой статьи работать на новых сборках MT4? Тот факт, что старые билды больше не поддерживаются, создает мне проблему в этом отношении, поскольку я действительно хотел бы, чтобы расчеты индикатора происходили только один раз, в советнике, но все же отображались на графиках путем подталкивания вычисленных значений к указателям индикаторных буферов. (BTW, я был очень благодарен, что нашел эту статью и смог применить ее методы - спасибо за ее написание).
Связанный с этим вопрос: я заметил, что в примечаниях к выпуску Build 392 MT4 от 3/17/2011 говорится: "3. Устранены ненужные пересчеты индикаторов при отображении их на графике". Отменяет ли это усовершенствование необходимость использования техник, описанных в этой статье, в том смысле, что использование пользовательских индикаторов в том виде, в котором они были задуманы, больше не будет медленнее, чем использование техник, основанных на указателях, о которых рассказывается в этой статье? Спасибо.
Я заметил, что в новых сборках MT4 функция SetIndicatorValue() не работает, а GetIndicatorValue() работает. Мне показалось, или в новых билдах (я думаю, изменения произошли где-то после билда 225) что-то сломало эту функцию? Если да, то есть ли какие-нибудь предложения, как заставить методологии из этой статьи работать на новых сборках MT4? Тот факт, что старые билды больше не поддерживаются, создает мне проблему в этом отношении, поскольку я действительно хотел бы, чтобы расчеты индикатора происходили только один раз, в советнике, но все же отображались на графиках путем подталкивания вычисленных значений к указателям индикаторных буферов. (BTW, я был очень благодарен, что нашел эту статью и смог применить ее методы - спасибо за ее написание).
Связанный с этим вопрос: я заметил, что в примечаниях к выпуску Build 392 MT4 от 3/17/2011 говорится: "3. Устранены ненужные пересчеты индикаторов при отображении их на графике". Отменяет ли это усовершенствование необходимость использования техник, описанных в этой статье, в том смысле, что использование пользовательских индикаторов в том виде, в котором они были задуманы, больше не будет медленнее, чем использование техник, основанных на указателях, о которых рассказывается в этой статье? Спасибо.
Как всё сложно!...
С помщью Ильнура ещё год назад написал библиотеку на MQL4 для работы с памятью. Можно выделять память, двигать указатели, писать и читать, передавать в любые другие программы имя области памяти.
Всё построенно на маппинге. Это существенно проще предлагаемого.
А можно добавить в DLL функции не только для работы с double, но и для datetime, для long и для int ?
Получается, что сейчас данные с массивов цен - легко можно переносить между вложенными структурами без копирования, а вот данные по времени, спреду и объемам - надо все равно копировать.
Пытался приспособить GetPtr для работы с datetime и long (и через извращения с передвижением бит с int) - не выходит, функция принимает ссылку на массив, и ее нельзя преобразовать.
Кто-нибудь решил данную проблему?
Молчание.
Эх... Придется самому вспоминать С++ и ставить MSVC...
Молчание.
Эх... Придется самому вспоминать С++ и ставить MSVC...
А сейчас вам никто ничего и не ответит, все ушли на фронт.
Слышали что нибудь об обновлении МТ4 ?
Краём уха, краём... :)
Обновление МТ4 мне очень даже кстати - у меня библиотеки большие, но все - на МТ5 (я, видите ли, без ООП жисть себе не представляю). А ДЦ, нехорошие люди - далеко не все МТ5 на реале имеют... Так что - мне данная новость очень даже кстати.
Но - пока не будет нормального МТ4++ я не вижу смысла приспосабливать код под обновленную платформу. Выйдет что-то вроде официальной беты (да, чтобы со Стандартой Библиотекой, я без нее тоже не желаю советников писать) - вот тогда и начнем преобразование кода...
А сейчас мне - ужасно хочется получать адреса не только массивов double, но и других... А - ёк... Хотел было через преобразование типов обойти проблему (время и лонги - тоже ведь восьмибайтные), но пока не выходит...