Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1538
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. Из тиков можете сделать любые периоды времени.
2. Откройте код ATR и поглядите на его расчёт.
Ну ведь всё же в доступе протянутой руки.
Здесь нахожу, как расчитывается ATR: https://www.mql5.com/ru/articles/10748
Там есть алгоритм:
"Сначала нужно рассчитать истинный диапазон, который будет наибольшим значением из следующих:
Получается, для расчета индикатора нужны данные о максимумах, минимумах и ценах закрытия. После этого рассчитывается сам средний истинный диапазон."
Про то, как ведет себя индикатор, если количество периодов равно нулю, там не написано. Где-то в другом месте написано? Покажите, если возможно.
Еще. В коде ATR есть строка: "CopyBuffer(ATRDef,0,0,3,PriceArray)". Взято там же: https://www.mql5.com/ru/articles/10748. Можно узнать, почему копируется только 3 элемента? Как определить размер буфера индикатора и скопировать не три, а все элементы? Или это не нужно?
Здесь нахожу, как расчитывается ATR: https://www.mql5.com/ru/articles/10748
Там есть алгоритм:
"Сначала нужно рассчитать истинный диапазон, который будет наибольшим значением из следующих:
Получается, для расчета индикатора нужны данные о максимумах, минимумах и ценах закрытия. После этого рассчитывается сам средний истинный диапазон."
Про то, как ведет себя индикатор, если количество периодов равно нулю, там не написано. Где-то в другом месте написано? Покажите, если возможно.
Еще. В коде ATR есть строка: "CopyBuffer(ATRDef,0,0,3,PriceArray)". Взято там же: https://www.mql5.com/ru/articles/10748. Можно узнать, почему копируется только 3 элемента? Как определить размер буфера индикатора и скопировать не три, а все элементы? Или это не нужно?
Открываете редактор.
Открываете файл по пути \MQL5\Indicators\Examples\ATR.mq5. Там примеры для всех индикаторов есть. И это со времён сотворения так...
Изучаете:
Здесь нахожу, как расчитывается ATR: https://www.mql5.com/ru/articles/10748
Там есть алгоритм:
"Сначала нужно рассчитать истинный диапазон, который будет наибольшим значением из следующих:
Получается, для расчета индикатора нужны данные о максимумах, минимумах и ценах закрытия. После этого рассчитывается сам средний истинный диапазон."
Про то, как ведет себя индикатор, если количество периодов равно нулю, там не написано. Где-то в другом месте написано? Покажите, если возможно.
Еще. В коде ATR есть строка: "CopyBuffer(ATRDef,0,0,3,PriceArray)". Взято там же: https://www.mql5.com/ru/articles/10748. Можно узнать, почему копируется только 3 элемента? Как определить размер буфера индикатора и скопировать не три, а все элементы? Или это не нужно?
Всё! Не мучайтесь. Вот Вам код для получения значений индикатора ATR:
Дальше, уж будьте добры, сами.
С уважением, Владимир.
Всё! Не мучайтесь. Вот Вам код для получения значений индикатора ATR:
Дальше, уж будьте добры, сами.
С уважением, Владимир
Не правлильно.
Вы в OnInit() проверяете хендл и выходите из обработчика, если хендл не валидный (а он нулевой в лучшем случае. В худшем - там мусор, так как Handle_ATR не инициализирована). Создаёте же индикатор с присвоением хендлу корректного значения только в OnTick() - а зачем там? В OnInit() создавайте индикатор и получайте его хендл. В OnTick() обращайтесь по хендлу за данными индикатора.
Не правлильно.
Вы в OnInit() проверяете хендл и выходите из обработчика, если хендл не валидный (а он нулевой в лучшем случае. В худшем - там мусор, так как Handle_ATR не инициализирована). Создаёте же индикатор с присвоением хендлу корректного значения только в OnTick() - а зачем там? В OnInit() создавайте индикатор и получайте его хендл. В OnTick() обращайтесь по хендлу за данными индикатора.
Спасибо, Артём. Ещё не до конца проснулся. )) Сейчас исправлю.
С уважением, Владимир.
P.S. Исправил код.double atr_value=NormalizeDouble(atr_array_value[0], 5); // нормализуем значения индикатора ATR
А зачем? Какой смысл?
Говорю же, спросонья написал. )) Поправил.
С уважением, Владимир.
Исправленный вариант:
С уважением, Владимир.
а ничего так,что SYMBOL_PRICE_VOLATILITY и ATR в общем разные вещи ?
как в школе, проверяем в чём измеряется и от чего считается...
первый это справочный параметр из спецификации (или транслируемый DC), не связан с таймфреймами и измеряемый в %
второй статистический за произвольный период конкретного таймфрейма, измеряемый в единицах котировки
для привычного Форекс SYMBOL_PRICE_VOLATILITY не используется и не транслируется. Но у нас тут не только Форекс.
например у биржевых инструментов в спецификациях и общих условиях есть подобное - верхний предел изменения цены за сессию, после которого торги будут автоматически приостановлены. Он большой, редкий, но он есть
а ничего так,что SYMBOL_PRICE_VOLATILITY и ATR в общем разные вещи ?
Максим, хорошо, что отреагировали на данную тему. Честно говоря, сам вообще далёк от темы волатильности и, до сих пор никак не могу понять на кой ляд эта волатильность нужна, а также почему эту тему много раз поднимают, но до конца не раскрывают. Единственное, что понял, это якобы существует зависимость разворота ценового графика при значительном повышении волатильности. Кроме того, прочитал несколько тем, связанных с применением индикатора волатильности ATR, но установив его на график, ни чего такого ценного не увидел. Может Вы в сжатой форме подскажете, чем так ценна волатильность для трейдера? Буду очень признателен.
С уважением, Владимир.