Здравствуйте, Александр.
1. Благодарю за ответ.
2. Версия
Forex Tester 2 у меня самая последняя (v.2.6.10 06/09/2010), судя по тому, что пишет FT при проверке обновления.
А неактивные кнопки - такая, право, мелочь.
Я даже думал, что это как-то связано с защитой программы от взлома (перехвата управления).
Как часто повторяет моя супруга: "Значит так надо! Чего привязался?"
3. Я и не знал, что в Delphi есть готовая функция Floor(). Посмотрел вашу ссылку. Оказывается, Floor() делает именно то, что MathFloor() в MQL4. То есть округляет показания условного градусника до нижней риски на шкале. Сравните сами:
-5.7 округляется до -6 аналогично тому, как -2.8 округляется до -3;
+5.7 округляется до +5 аналогично тому, как +2.8 округляется до +2.
* * *
Надо будет сделать пометку на моём сообщении про Foolr(), чтобы не вводить других в заблуждение.
4. Чтобы правильно округлять числа с давних пор использую следующую формулу:
Код: Выделить всё
x := Floor(x + 5/9); // 5/9 := 0.555555555555555...
В
MS Excel это выглядит так:
При таком подходе не обрубаются весомые хвосты. А вес от далекоотстоящих элементов числа последовательно и бережно передаётся ближестоящим.
Примеры последовательного (бережного) округления (по градуснику):
1) 0.4444
~ 0.444
~ 0.44
~ 0.4
~ 0;
2) 0.4445
~ 0.445
~ 0.45
~ 0.5
~ 1.
--
Понятно, что водоразделом между 0 и 1 в таком случае является не 0.5 = 1/2, а 0.444444444444444... = 4/9 (см. рисунки).
При этом: 4/9 = 0.444444444444444...
~ 1.
---
Доказательство правильности такого подхода:
1) Известно, что 9/9 = 1.
2) Но 9/9 = 0.999999999999999...
Для полного соответствия дроби "9/9" единице "1" формально не хватает супер миниатюрного числа
v = 0.000000000000000...1 = 1/10^N (где N - бесконечно большое натуральное число).
3) Именно такого сверх миниатюрного числа
v (ню) формально не хватает для того, чтобы число "0.444444444444444... = 4/9" можно округлить сначала до "0.444444444444444...5", а потом и до "1" по правилам последовательного округления.
4) Но частица
v формально равна "0" (нулю), так как:
v = 1 - 9/9 = (9-9)/9 = 0.
5) Поэтому можно спокойно считать, что 4/9 = 4/9 +
v = 0.444444444444444...5
~ 1.
* * *
Этот подход полностью соответствует тому, как меня учили округлять в школе.
Разработал его, когда в студенчестве сделал программу для построения двух-трёхмерных графиков на основе экспериментальных данных с применением метода наименьших квадратов, похожих на те, что сейчас делает Excel (очень похожий пример смотрите здесь: http://forextester.ru/forum/viewtopic.php?p=3504#3504). Причём первые графики я рисовал символами (звёздочками '*') на экране с разрешением 80 символов на 25 строк. Поэтому вопрос с округлением поначалу стоял довольно ярко, если не сказать крупно.
Это потом уже у меня появилась область построения 800х600 монохромных точек...
С тех пор использую свой алгоритм везде во избежание разного рода проблем с округлением.
Всем рекомендую.
6. Модификация правильного (бережного) метода округления до нужной точности:
Код: Выделить всё
x := Floor(x/Precision + 5/9) * Precision;
// Precision := 0.1 - округление до 0.1
// Precision := 10 - округление до 10
// Precision := 0.25 - округление до 0.25
// Precision := 4 - округление до 4
7. Использую многоязычный
Lingvo x3 (
http://www.lingvo.com). Знаете ли, очень удобно переводить, например, украинские тексты.
Китайские, правда, ещё не попробовал.
Ну, так вот, словарь LingvoScience выдаёт вот такие смыслы для
Template: "1) копир; 2) лекало; 3) темплет; 4) шаблон; 5) эталон".
8. Благодарю за
Camtasia Studi. Обязательно попробую.
Я желаю всем счастья.