Могли бы вы подсказать, как можно коротко написать выражение, округляющее целое число (количество пунктов) до заданной точности, например, до 5.
Я понимаю, что если я хочу округлить до 10, то я пользуюсь NormalizeDouble(point_val, 4) / Point = NormalizeDouble(0.00175, 4) = 0.0018 / 0.0001 = 180.
А как округлить с точностью до 5 пунктов?
В целых пунктах MathRound(X/5)*5, если надо, потом умножайте на Point.
woin2110: Но, это возможно только через данные дневного графика.
Через iHighest(),iLowest(), сколько баров М5 в сутках известно, смещение до окончания прошлых суток, думаю, тоже можно высчитать.
Max = high[iHighest(NULL, 0, MODE_HIGH, P, sh)];
Min = low[iLowest( NULL, 0, MODE_LOW , P, sh)];
Где P - сколько баров считать
sh - смещение до начала отсчёта (последний бар прошлого дня), считает в сторону возрастания номера бара, т.е. вглубь истории
Кроме того, как вариант на случай возможного отсутствия баров, sh и P из поста выше можно высчитать, применяя количество секунд за день. К примеру, как-то так. Из прилагаемого там наброска варианта кода, в общем-то, принцип должен быть понятен.
Всё дело в дибильном брокере который на дневном графике отрисовывает понедельник как воскресную свечу, а вместо понедельника каким-то хххудожником нарисована своя свеча. Вот теперь и думаю как корректней взять данные прошлых дней. Нужно сделать эксперта под всех брокеров. А имеенно найти долбаный минимум и максимум последнего рабочего дня.
woin2110: Всё дело в дибильном брокере который на дневном графике отрисовывает понедельник как воскресную свечу, а вместо понедельника каким-то хххудожником нарисована своя свеча. Вот теперь и думаю как корректней взять данные прошлых дней. Нужно сделать эксперта под всех брокеров. А имеенно найти долбаный минимум и максимум последнего рабочего дня.
Ну, тогда надо искать последний бар пятницы, желательно минутный. А понедельник считать понедельником с первого бара М1, для которого DayOfWeek()=1 (или по разнице временных поясов считать).
Добрый день!
Могли бы вы подсказать, как можно коротко написать выражение, округляющее целое число (количество пунктов) до заданной точности, например, до 5.
Я понимаю, что если я хочу округлить до 10, то я пользуюсь NormalizeDouble(point_val, 4) / Point = NormalizeDouble(0.00175, 4) = 0.0018 / 0.0001 = 180.
А как округлить с точностью до 5 пунктов?
В целых пунктах MathRound(X/5)*5, если надо, потом умножайте на Point.
Как можно найти максимум, минимум прошлого дня на пятиминутке не прибегая графику дневки?
iHigh() - iLow() с соответствующими параметрами.
Но, это возможно только через данные дневного графика.
Через iHighest(),iLowest(), сколько баров М5 в сутках известно, смещение до окончания прошлых суток, думаю, тоже можно высчитать.
Кроме того, как вариант на случай возможного отсутствия баров, sh и P из поста выше можно высчитать, применяя количество секунд за день. К примеру, как-то так. Из прилагаемого там наброска варианта кода, в общем-то, принцип должен быть понятен.
В том посте ссылка есть на статью очень хорошую.Всё дело в дибильном брокере который на дневном графике отрисовывает понедельник как воскресную свечу, а вместо понедельника каким-то хххудожником нарисована своя свеча. Вот теперь и думаю как корректней взять данные прошлых дней. Нужно сделать эксперта под всех брокеров. А имеенно найти долбаный минимум и максимум последнего рабочего дня.