Многотаймфреймовый индикатор или Как перебороть психологическую несовместимость с MQL5 - страница 2
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ну да логично. Спасибо. Остался вопрос почему не исполняется условие...
Ну да логично. Спасибо. Остался вопрос почему не исполняется условие...
Проверте условие.
Вопрос о использовании данных из других таймфреймов (ТФ) в текущем ТФ, или где я сейчас застрял, или вопрос о побарном отображении истории, или благодарность vdv2001 за идею.
I. В МТ4 при отображении индикатора из другото ТФ применялся следующий блок:
Терминал МТ4 историю и реалтайм (Rt) отображал все красиво ( прикрепленный файл h1_m15_MT4.gif ).
В МТ5:
1. Создаем хэндл
2. Создаем копию в буфер
3. По аналогии обработываем данные (часть кода)
4. Получаем побарное отображение истории из H1 в текущий М15 (прикрепленный файл h1_m15_MT5 .gif ). Далее в R/t временное отображение. То есть для временного отображения истории нужно добавлять дополнительный блок обработки. Пока нету.
II. В МТ4 в моих индикаторах есть автовыбор верхнего ТФ при переходе на другой (текущий) ТФ. При использовании индикатора G3.mq4 старший ТФ выбирался автоматически на 1 ступень.
При использовании индикатора G33.mq4 старший ТФ выбирался (по аналогии) автоматически на 2 ступени.
При использовании индикатора G2.mq4 младший ТФ выбирался автоматически на 1 ступень ниже.
В МТ5 добавились новые ТФ. Хотя на демосчете пока видны ТФ как в МТ4.
III. Спасибо vdv2001 2010.01.12 17:52 2010.01.12 17:52:04 # за идею «Алгоритма бинарного поиска требуемого интервала» https://www.mql5.com/ru/forum/332 , то есть на этой ветке.
PS: Со второго раза себе объяснишь, вроде становится понятно себе. Может и другие подскажут, чего я еще не понял . : )
Вопрос о использовании данных из других таймфреймов (ТФ) в текущем ТФ, или где я сейчас застрял, или вопрос о побарном отображении истории, или благодарность vdv2001 за идею.
Кнопка предназначена для вставки исходного кода MQL в текст сообщения. При нажатии появляется пустое окно, в которое необходимо вставить код и далее нажать кнопку Вставить. Для отмены вставки кода необходимо нажать кнопку Отмена.
Странный вопрос - вызов индкиатора в МQL5 увеличивается всего на одну строку. - получения данных из буфера.
Пошагово
1. Создали хендл индикатора. - передав в него ЛЮБОЙ ТФ и ВАЛЮТУ
2. Прочитали из буфера данные
3. Анализируем данные.
Если период расчитывается динамично то это значит что каждый раз нужно будет создавать новый хендл ?
Думаю что проще написать функцию масчёта iMA самопальную и узать её как душе угодно, хотя решение конечно через аунс.
Если период расчитывается динамично то это значит что каждый раз нужно будет создавать новый хендл ?
Думаю что проще написать функцию масчёта iMA самопальную и узать её как душе угодно, хотя решение конечно через аунс.
Читайте справку - например, раздел Технические индикаторы:
Все функции типа iMA, iAC, iMACD, iIchimoku и т.п., создают в глобальном кеше клиентского терминала копию соответствующего технического индикатора. Если копия индикатора с этими параметрами уже существует, то новая копия не создается, а увеличивается счетчик ссылок на данную копию.
Эти функции возвращают хэндл соответствующей копии индикатора. Используя этот хэндл в дальнейшем можно получать данные, рассчитанные соответствующим индикатором. Данные соответствующего буфера (технические индикаторы содержат рассчитанные данные в своих внутренних буферах, которых, в зависимости от индикатора, может быть от 1 до 5) можно копировать в mql5-программу при помощи функции CopyBuffer().
Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512 индикаторных буферов, содержимое которых также можно получать при помощи функции CopyBuffer(), используя полученный хэндл.
Существует универсальный метод создания любого технического индикатора с помощью функции IndicatorCreate(). Эта функция получает в качестве входных параметров:
Для освобождения памяти компьютера от неиспользуемого больше индикатора служит функция IndicatorRelease(), которой передается хэндл этого индикатора.
Примечание. Многократное обращение к функции индикатора с одними и теми же параметрами в пределах одной mql5-программы не приводит к многократному увеличению счетчика ссылок, счетчик будет увеличен всего один раз на 1. Однако рекомендуется получать хэндлы индикаторов в функции OnInit() или в конструкторе класса, с последующим использованием полученных хэндлов в остальных функциях. Счетчик ссылок уменьшается при деинициализации mql5-программы.
Читайте справку - например, раздел Технические индикаторы:
Вам дали возможность экономного обращения с памятью и другими ресурсами терминала/компьютера. Не нужно думать - щас все набросаю, а оно само пусть там как хочет, так и расхлебывается.Я ж не против чтоб ресурсы расходовались экономней, я о том что одно лечим другое калечим.
Спасибо за ответ но так и остался в неведении
как экономно по ресурсам получить данные индикатора с периодом который изменяется динамично ?
Во первых не всегда известен диапазон изменения,
но даже если он известен зарание, то выходит самое лучшее это создать 200 хендлов (в ините) для каждого периода а потом запрашивать нужный ?!
Ну а как вариант потребуеться не более 10 но в случайном порядке по полю от 1 до 200 вот вам бабушка и юрьев день.
У меня есть советник что определяет наилучший период для машки динамично (на каждом баре) изходя из того осцилятор какой машки даёт наименьшее отклонение от эталонной частоты так выходит его нормальным способом не реализовать на пятёре.
но даже если он известен зарание, то выходит самое лучшее это создать 200 хендлов (в ините) для каждого периода а потом запрашивать нужный ?!
....