
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
P./S.: Артём, sorry, но применение MathPow(10,Digits()) для получения разницы в пунктах - так-то не ноу-хау.
Я, например, давно такое применяю. /* По тому же символу - так это один раз вычисление в OnInit(), затем расчёты на основе вычисленного значения при новом баре. Т.е., и дальнейшие вычисления - не на каждом тике.*/
После того, как путём "проб и ошибок" открыла для себя такой способ, обнаружила на четвёртом форуме, что и я являюсь далеко не первооткрывателем в этом.
P./S.: Если память мне не изменяет, и у тебя где-то это встречалось на четвёртом(?) форуме. Но, насколько помню, не MathPow(), а аналог этой функции (pow()).
Хотя может я в чём-то тебя не поняла в текущей теме.
Диночка, это сарказм был про Ноу-Хау... Мне когда нужно было сделать ожидание подкачки данных в панели, а сделана она была как индикатор, так я при помощи pow() делал задержку. А тут количество пунктов предложили так вычислять.
Ещё не видя твой пост, внесла уточнение в свой перед ним: "... <=Это просто уточнение, в связи с тем, что в своей практике не применяла никаким из вышеприведённых способов расчёты на каждом тике."
То, что pow() можно применять в качестве тормоза - не знала. Я не применяла эту функцию.
А поскольку сейчас сама хорошо торможу (ночью не спала, за компом просидела), то просто передам через тебя привет Лёвушке и отправлюсь подремать. После обеда по своим делам надо сходить.
На более-менее "свежую голову" дополню, что:
Тема для меня оказалась полезной. Спасибо.
Но, просмотрев некоторые из своих кодов (и в т.ч., на основе своих замеров), всё-таки остаюсь при своём мнении, что применять определение количества пунктов через MathPow(10,Digits()) - можно.
Поскольку если расчёт MathPow, с присвоением полученного значения переменной для её дальнейшего применения в расчётах - разовый, т.е., не на каждом тике и не в цикле, то не это может заметно замедлять скорость расчётов.
Дополнено: Ну и предложения же сформировала... Сама же через некоторое время начну воспринимать смысл не так, как подразумевала.
Поэтому уточню. В общем:
1. Переменная A = MathPow(10,digits) <= это разовое присвоение: в скрипте - до основных вычислений, а в индикаторе/советнике, например, в OnInit.
2. Затем эту переменную A можно добавлять для дальнейших расчётов в "боевые" условия (в циклы и т.д.).
За счёт этого решается проблема замедления расчётов при применении функции MathPow.
Имхо, по поводу применения MathPow(10,...): например, если у меня в одном и том же коде определение разницы в пунктах для чего-то дальнейшего производится:
то мне удобнее (и это, имхо, не является фактором, тормозящим расчёты) применять такой способ, разово задав переменной в OnInit() значение через MathPow(10,digits).
Так-то, если Point() = 0, то и Digits() должно быть равно 0. /*Поскольку point = 0.00001 - это digits = 5. В общем, разные ракурсы. */
Ниже тестовый скрипт, где есть вариант искусственно задать digits равным нулю. Можно наглядно увидеть, что можно получить при MathPow(10,0).
Вывод результатов:
P./S.: На всякий случай упомяну ещё, что всё вышесказанное мной не является утверждением, что "нельзя применять /Point(), применяйте только MathPow(10,Digits())"
P./S.: Дополню ещё, что для моделирования ситуаций "digits равно нулю", в этом тестовом скрипте будет ещё наглядным задать во внешних параметрах:
Например:
Вывод результата:
Заодно, для разнообразия приведу вывод количества пунктов с дельты между числами 108 и 103 (но уже на паре USDJPY) при выборе других вариантов работы скрипта: