Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 818
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Надеюсь Вы хендлы индикатор создаёте ОДИН раз в OnInit()?
Глубина расчёта - всё зависит от самого индикатора. Редкие индикаторы принудительно ограничивают глубины - как правило все считают на всю историю. Поэтому Вам, возможно, пригодится такой вариант: в индикаторе ввести переменную отвечающую за глубину и затем в советнике, через iCustom, передавать этот параметр.
1. Да, я понимаю, что по-хорошему это делается один раз в ините. Но вопрос в том, что входные параметры индикаторов могут меняться. Например, в спектральном анализе вычисляются резонансные частоты, результатом расчётов является период используемой МА. И если запрашивать данные МА для новой размерности, то это - новый хэндл. Практически частоты меняются же не на каждом баре, поэтому достаточно долго (~ минуты) в расчётах используется один и тот же хэндл МА. Но всё равно наступает момент, когда хэндл меняется. И тогда мне нужно либо кучу хэндлов юзать, либо использовать один хэндл, но периодически его пересчитывать. Вот здесь-то и нужна экономия.
2. iCustom я освоил. Но как ограничить глубину расчётов в самом индикаторе? В технических - никак. Видимо, придётся понасоздавать кучу пользовательских клонов тех. индикаторов. Это противно, конечно, но должно быть эффективно. Спасибо за совет. Хорошая идея. Спасибо.
1. Да, я понимаю, что по-хорошему это делается один раз в ините. Но вопрос в том, что входные параметры индикаторов могут меняться.
Разработчики могут написать СБ, в которой с индикаторами можно без потери эффективности работать в MQL4-стиле. Т.е. все кеши и хендлы спрятаны в СБ.
1. Да, я понимаю, что по-хорошему это делается один раз в ините. Но вопрос в том, что входные параметры индикаторов могут меняться. Например, в спектральном анализе вычисляются резонансные частоты, результатом расчётов является период используемой МА. И если запрашивать данные МА для новой размерности, то это - новый хэндл. Практически частоты меняются же не на каждом баре, поэтому достаточно долго (~ минуты) в расчётах используется один и тот же хэндл МА. Но всё равно наступает момент, когда хэндл меняется. И тогда мне нужно либо кучу хэндлов юзать, либо использовать один хэндл, но периодически его пересчитывать. Вот здесь-то и нужна экономия.
2. iCustom я освоил. Но как ограничить глубину расчётов в самом индикаторе? В технических - никак. Видимо, придётся понасоздавать кучу пользовательских клонов тех. индикаторов. Это противно, конечно, но должно быть эффективно. Спасибо за совет. Хорошая идея. Спасибо.
1. В таком случае вероятно лучше неиспользуемый хендл убивать и создавать новый (главное - контроль, чтобы не нашлёпать в OnTick() миллион хендлов :) ).
2. Создаёте копию встроенного индикатора, но с другим названием (например добавить в название "depth of history") и вводите новый параметр: InpDepthHistory. То есть нужно написать новые пользовательские индикаторы.
1. Да, я понимаю, что по-хорошему это делается один раз в ините. Но вопрос в том, что входные параметры индикаторов могут меняться. Например, в спектральном анализе вычисляются резонансные частоты, результатом расчётов является период используемой МА. И если запрашивать данные МА для новой размерности, то это - новый хэндл. Практически частоты меняются же не на каждом баре, поэтому достаточно долго (~ минуты) в расчётах используется один и тот же хэндл МА. Но всё равно наступает момент, когда хэндл меняется. И тогда мне нужно либо кучу хэндлов юзать, либо использовать один хэндл, но периодически его пересчитывать. Вот здесь-то и нужна экономия.
2. iCustom я освоил. Но как ограничить глубину расчётов в самом индикаторе? В технических - никак. Видимо, придётся понасоздавать кучу пользовательских клонов тех. индикаторов. Это противно, конечно, но должно быть эффективно. Спасибо за совет. Хорошая идея. Спасибо.
Как я понял, вы хотите как в mql4 получать только 1 значение с помощью iCustom() но не учитываете что в mql4 тоже пересчитывался индикатор на всю глубину истории при первом обращении. Точно так-же пересчитывается и при смене хотя-бы одного параметра.
Отсюда вывод: Не надо заморачиваться. Если "устаревший" индикатор больше не нужен, его можно просто удалить и получить хендл индикатора с другими параметрами.
Разработчики могут написать СБ, в которой с индикаторами можно без потери эффективности работать в MQL4-стиле. Т.е. все кеши и хендлы спрятаны в СБ.
Извините, я не понял. Здесь слово Разработчики - это те, кто создал МТ или я грешный прикладник? И СБ - это..?
1. В таком случае вероятно лучше неиспользуемый хендл убивать и создавать новый (главное - контроль, чтобы не нашлёпать в OnTick() миллион хендлов :) ).
2. Создаёте копию встроенного индикатора, но с другим названием (например добавить в название "depth of history") и вводите новый параметр: InpDepthHistory. То есть нужно написать новые пользовательские индикаторы.
2. Да. Благо, есть практически все коды техн. индикаторов. А уж свои и подавно.
Спасибо.
Извините, я не понял. Здесь слово Разработчики - это те, кто создал МТ или я грешный прикладник? И СБ - это..?
MetaQuotes при желании может создать такую Стандартную Библиотеку. Большой вопрос, а нужна ли она?
Как я понял, вы хотите как в mql4 получать только 1 значение с помощью iCustom() но не учитываете что в mql4 тоже пересчитывался индикатор на всю глубину истории при первом обращении. Точно так-же пересчитывается и при смене хотя-бы одного параметра.
Отсюда вывод: Не надо заморачиваться. Если "устаревший" индикатор больше не нужен, его можно просто удалить и получить хендл индикатора с другими параметрами.
Хотеть-то я, может быть, и хочу. Но теперь уже и не хочу. Вы правы. Если устаревший индикатор не нужен, то давить их, гадов, как тараканов:)
Хорошее решение - ограничить глубину технических клонов. Это сэкономит ресурсы и время. Так что, теперь так и сделаю.
Спасибо.
MetaQuotes при желании может создать такую Стандартную Библиотеку. Большой вопрос, а нужна ли она?
Это для грядущих поколений. Я посмотрел некоторые примеры из библиотеки. Тысячи строк некомментированного кода. Не знаю кто как, а я так не умею. Так что, спасибо за идею, но просто в моём случае это неприемлемо.
Вот это работает уже сейчас в MT5
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2018.01.09 10:20
Для адептов MQL4 есть древний способ работы с ТФ в MQL5 в привычном стилеВозможно, кому-то пригодится MQL4-подход и в работе с историей тиков
Технически ничто не мешает подобное же ОДИН РАЗ сделать и с индикаторами (без потерь в эффективности) и поместить решение в СБ.