Кратко охарактеризуем коэффициент Фибоначчи. Итальянский математик Леонардо
Фибоначчи обнаружил уникальную последовательность чисел:
1 1 2 3 5 8 13 21 34 55 89 144 233 ...
Каждое число в этой последовательности является суммой двух предыдущих чисел.
Представленная последовательность чисел обладает уникальными свойствами: отношение
любого числа к предыдущему равно 1.618, а к следующему - 0,618. Коэффициент 1.618
получил название коэффициента Фибоначчи, а указанная последовательность называется
последовательностью Фибоначчи (отметим также, что 0,3819 - сопряжённая величина для
коэффициента Фибоначчи, получена в результате его умножения на самого себя: 0.3819 =
0.618 х 0.618).
Задача состоит в том, чтобы вычислить коэффициент Фибоначчи более точно. Если
проанализировать коэффициент Фибоначчи для нескольких десятков элементов
последовательности, то становится очевидным, что полученные коэффициенты
колеблются вокруг иррационального числа 1.61803398875..., принимая поочерёдно то
большие, то меньшие значения. Чем большие числа из последовательности участвуют в
вычислениях, тем меньше отклонение от указанного значения.
Заранее неизвестно, какие именно числа необходимо взять, чтобы их коэффициенты
отличались между собой не более, чем в десятом знаке. Поэтому необходимо составить
программу, которая будет последовательно перебирать коэффициенты до тех пор, пока
разница между ними не окажется меньше 0.0000000001.
В данном случае для решения Задачи 12 создан скрипт (fibonacci.mq4), потому программа
не будет использоваться в длительной работе на каждом тике. После присоединения к
окну финансового инструмента скрипт должен один раз выполнить необходимые
вычисления (в том числе показать результат), после этого он будет выгружен из окна
клиентским терминалом.
//--------------------------------------------------------------------
// fibonacci.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------
int start() // Спец. ф-ия start()
{
//--------------------------------------------------------------------
int i; // Формальн параметр,счётчик
double
A,B,C, // Числа последовательности
Delta, // Фактич. разница между Кф
150