[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 30
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые форумчане помогите решить проблему точности индикатора Standart Deviation, если смотреть чисто визуально сравнивать 2 соседних значения индикатора то можно заметить что текущее значение выше/ниже предыдущего, но если сравнить эти 2 значения по факту значений к примеру в окне данных, то видно что значения будут одинаковыми.
Значения для отображения в текстовой метке обрезаны до 4-го знака, это не гарантирует их фактического равенства, пятый и далее знаки отличаются.
А как бы получить 5 и далее знаки, необходимо более точно знать значения индикатора. Пробовал через NormalizeDouble больше точности получить но ничего не получается.
Лучше DoubleToStr() использовать.
Лучше DoubleToStr() использовать.
Я понял что это значение для метки на графике нужно, а если цифра получена от стандартного индикатора, то она уже с разрядностью равной Digits поступит, тут ничего не поделать наверное, разве что алгоритм индикатора у себя в коде реализовать.
Или для вычислений можно попробовать обратно в Double преобразовать, уже с увеличенной разрядностью...
Я понял что это значение для метки на графике нужно, а если цифра получена от стандартного индикатора, то она уже с разрядностью равной Digits поступит, тут ничего не поделать наверное, разве что алгоритм индикатора у себя в коде реализовать.
Или для вычислений можно попробовать обратно в Double преобразовать, уже с увеличенной разрядностью...
обратно в double не помогает округляет до 4 знака. Спасибо за помощь.
UPD. Вопрос снимаю, вроде разобрался, просто значения индикатора умножил на 10, остались те же 4 знака, но точность увеличилась.
1) идем в кодебазу, качаем индикатор : https://www.mql5.com/ru/code/8022
2) в ините вставляем строку IndicatorDigits(х); х = количество нулей после запятой (точность)
3) бросаем индикатор на чарт - любуемся своей работой.
К сожалению, в вашем случае совершенно все равно, какую цену вы имеете в виду при открытии. Дело в том, что точка Open определяется моментом времени, а не уровнем цены, в этот момент есть те же самые цены Bid и Ask, и таким образом он ничем принципиально не отличается от всех остальных тиков. Поэтому открывайте хот ь в момент открытия бара, хоть в любой другой - результат будет одинаков. К тому же надо иметь в виду, что если время открытия бара указано 01:00, то это не значит, что первый тик бара пришел именно в 01:00:00. Таким образом Open - это просто некое условие отсечки нового бара, чтобы было удобнее строить графики.
Спасибо за ответ. Вы абсолютно правы OPEN - это точка отсечки нового бара, но эта точка имеет фиксированную цену. Принципиальным отличием входа по Open является то, что цена Open на всех терминалах одного счета будет одинаковой. Как правило, разница в скорости работы терминалов не превышает секунды. За это время на "быстром" терминале свеча может успеть открыться и уйти на n пунктов. При этом, на "медленном" терминале эта свеча появится чуть позже, но уже со сформированным движением. Т.е. Open и текущая цена будут теми же, что и на "быстром" терминале. Дак вот, если скрипт рассчитывает ордер от текущей цены, то на разных терминалах может сформироваться разная цена входа. На быстром терминале - это цена Open (Bid в момент открытия бара), на медленном - текущая цена (Bid в данный момент времени). Соответственно они могут отличаться. А, если взять за основу цену Open бара, то скрипт на медленном терминале, уже не обращая внимания на текущий Bid, сразу возьмется за нужную цену. В результате мы будем иметь одинаковую цену Open для расчета ордеров на всех терминалах.