Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Много вычислений вместо простого решения
Я пришел к такому решению, которое превращает двойники в инты для сравнения двойников. . .
Я тоже придумал креативное решение, которое работает для меня (до сих пор) для сравнения цен:
Я увеличиваю цену до int, который представляет цену в виде пунктов, выраженных целым числом. Таким образом:
не может быть правдой.
CompareDoubles() из stdlib.mq4 дисквалифицируется из этого обсуждения? Она хорошо работает для меня, если используется для цены.
Плавающее деление, плавающее сложение, преобразование в int, вызов функции (копирование, переход, возврат = 3,) * 2 все умножается на два. (18) И это при условии, что деление и преобразование находятся на одном уровне с другими операциями - это не так.
против
одно вычитание, один тест, 1/2 отрицания (в среднем) и сравнение. (3 1/2, если point/2 выполняется в init, а ABS заменяется IF).
Не усложняйте слишком сильно
if (a > b)
if (a >= b)
if (a != b)
Плавающее деление, плавающее сложение, преобразование в int, вызов функции (копирование, прыжок, возврат = 3,) * 2 все умножить на два. (18) И это при условии, что деление и преобразование выполняются наравне с другими операциями - это не так.
против
одно вычитание, один тест, 1/2 отрицания (в среднем) и сравнение. (3 1/2, если point/2 выполняется в init, а ABS заменяется IF).
Не усложняйте ситуацию
2013.04.03 17:39:11 TestSpeed-CompareDbls USDJPY,M5: ConvertToPoints 9000000 раз за 1887 мс.
2013.04.03 17:46:02 TestSpeed-CompareDbls USDJPY,M5: Flat(price) 9000000 раз за 3604 мс.
Метод "MathAbs(a-b)" примерно в 7 раз быстрее метода ConvertToPoints() и почти в 14 раз быстрее моего метода "Flat()".
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 раз за 3403 мс.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 раз за 2505 мс.
Но 3-й не может быть практически, а 2-й (intRecord > intCheck) имел на 1 присваивание больше для intCheck перед сравнением.
Я протестировал (intRecord > price / point) и
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 раз за 3403 мс.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 раз за 2505 мс.
Но 3-й не может быть практически, а 2-й (intRecord > intCheck) имел на 1 присвоение больше для intCheck перед сравнением.