число пи лучше задавать вот так
pi = 4*MathArctan(1);мне когдато подсказали, теперь передаю вам эти знания
число пи лучше задавать вот так
мне когдато подсказали, теперь передаю вам эти знанияА еще в языке MQL5 есть раздел Математические константы:
Для некоторых математических выражений зарезервированы специальные константы, содержащие значения. Эти константы можно использовать в любом месте mql5-программы вместо вычисления их значения с помощью математических функций.
Константа |
Описание |
Значение |
M_E |
e |
2.71828182845904523536 |
M_LOG2E |
log2(e) |
1.44269504088896340736 |
M_LOG10E |
log10(e) |
0.434294481903251827651 |
M_LN2 |
ln(2) |
0.693147180559945309417 |
M_LN10 |
ln(10) |
2.30258509299404568402 |
M_PI |
pi |
3.14159265358979323846 |
Эти константы заданы с максимально возможной точностью или нет ? Я использовал, эту запись так как была необходимость иметь именно максимальную точность, иначе накапливалась ошибка
Нужно взять и проверить. Вот скрипт, выдает пять раз 100500.
#property copyright "Copyright © 2010 Eugene Logunov (lea)" #property version "1.00" int CalcDifference(double approx, double exact) { double diff = MathAbs(approx - exact); if (diff == 0.0) { return 100500; } else { return (int)(-MathLog10(diff)); } } void OnStart() { PrintFormat("%d", CalcDifference(MathExp(1.0), M_E)); PrintFormat("%d", CalcDifference(MathLog10(MathExp(1)), M_LOG10E)); PrintFormat("%d", CalcDifference(MathLog(2.0), M_LN2)); PrintFormat("%d", CalcDifference(MathLog(10.0), M_LN10)); PrintFormat("%d", CalcDifference(MathArctan(1.0) * 4.0, M_PI)); }
p.s. Если из-за ошибки в 16 знаке справа от запятой в константе алгоритм выдает плохой результат - дело, очевидно, не в константе. И зачем нужна такая точность вычислений, если котировки всё равно фильтрованные?
Нужно взять и проверить. Вот скрипт, выдает пять раз 100500.
p.s. Если из-за ошибки в 16 знаке справа от запятой в константе алгоритм выдает плохой результат - дело, очевидно, не в константе. И зачем нужна такая точность вычислений, если котировки всё равно фильтрованные?
советую вам как програмисту хоть один раз в жизни прочитать про итерационные алгоритмы, что это такое и с чем едят. А потом округляйте http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ математики головы ломают как с этим округлением бороться (алгоритмы устойчивые придумать), а тут легко и не принужденно, а зачем ...
З.Ы. спасибо за совет. Я уже один раз 2 недели потерял на проверку https://www.mql5.com/ru/code/8309 теперь на эти грабли не наступлю.
З.З.Ы и так уже достало проверять, в пятерке это уже становиться параноей...
советую вам как програмисту хоть один раз в жизни прочитать про итерационные алгоритмы, что это такое и с чем едят. А потом округляйте http://dic.academic.ru/dic.nsf/enc_mathematics/1999/ИТЕРАЦИОННЫЙ математики головы ломают как с этим округлением бороться (алгоритмы устойчивые придумать), а тут легко и не принужденно, а зачем ...
Читать мне про это приходилось весь прошедший год. К тому же, на неустойчивость я и намекал (сказав, что дело не в константах).
Если ощущается нехватка точности именно из-за типов - можно посоветовать что-нибудь вроде http://gmplib.org/ (скорость расчетов, естественно, упадет).
З.З.Ы и так уже достало проверять, в пятерке это уже становиться параноей...
Проверять нужно всегда и всё что можно, хоть это и отнимает иногда много времени. Иначе могут быть неожиданности.
Читать мне про это приходилось весь прошедший год. К тому же, на неустойчивость я и намекал (сказав, что дело не в константах).
Если ощущается нехватка точности именно из-за типов - можно посоветовать что-нибудь вроде http://gmplib.org/ (скорость расчетов, естественно, упадет).
Проверять нужно всегда и всё что можно, хоть это и отнимает иногда много времени. Иначе могут быть неожиданности.
Вы даже близко не представляете что я програмировал и даете советы. причем учите человека который начал програмировать (судя по вашему профилю) когда Вы ходили в детский садик.
Вы не разработчик, вопрос задавал не вам, но вы начали учить как проверять код. Хотите помочь - приведите результаты с какой ТОЧНОСТЬЮ ЗАДАНЫ ВСЕ КОНСТАНТЫ ? проверить я могу и без советов, просто хочу сэкономить своё время.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Предсказание цены методом ближайших соседей (k-NN):
Данный индикатор использует кластеризацию методом ближайших соседей, также известную как k-NN для поиска наиболее похожего паттерна в истории и использует эти цены прошлого как предсказание цен в будущем.
Индикатор рисует две кривые: синяя кривая показывает прошлые цены полученные методом ближайших соседей, а красная кривая показывает будущие цены того же паттерна. Ближайшие сосед масштабируется в коэффициентом соответствии линейной регрессией между данным паттерном и текущим паттерном.
Автор: Vladimir