Примеры индикаторов

 

Подскажите пожалуйста как правильно написать. код написанный на языке  RUMUS.

сам код не о чем просто строит среднее значение цены, взят из большой программы. это тестовый код для понимания правил написания.

Или,И. где можно скачать много разных простых кодов индикаторов  на языке  QML4. опять же для обучения.

 //Тестовая программа строит график среднего между максимальной ценой и минимальной ценой в баре

// Внешние данные вводятся через терминал  

n=inparam("длина апроксимации",1,2000,100); // количество баров которые будут взяты для анализа

n4=inparam("длина построения ",1,2000,100); // количество точек для построения графика индикатора здесь n4=n 

 

// Ввод массивов  

array : y[1000];// обазночение массива

array : ca[1000];// обазночение массива

 

global : ca[1000],t; обозначение глобальных переменных 

 

//Програмный модуль для определения числа баров

cm=cum(1);// величина cm возрастает на 1 в каждом баре

if(cm=1) then begin;//cm=1 в первом баре

while(oo>0) begin;// в первом баре выполняются следующие вычисления

oo=ref(o,t);//значение цены открытия, предполагается что в еще не начатом баре oo=0

t=t+1;

end;//цикл завершается по выполнению условия условию oo=0

end;// пред идущие расчеты выполняются только когда програма находится в первом баре

 

// Модуль для получения данных для построения графика

if(cm=1) then begin;//1 начальная точка для произведения расчетов по нахождению параметров графика

k=1;

//n сдиг на количество циклов вперед

while (k<=n) begin;// начало цикла переобозначения данных

// в румусе не работает y[0]

y[k]=(ref(h,t-n+k-1)+ref(l,t-n+k-1))/2;// первые значения будут взяты в баре находящимся на растояние n от последнего бара. -1 необходимо т.к. в Румусе нельзя [0] поэтому только k=1

k=k+1;

end;// конец цикла переобозначения данных

 

// Модуль обмена данными между массивами  

k=1;

while(k<n) begin;//цикл перезаписи данных

ca[k]=y[k];

k=k+1;

end;//конец цикла перезаписи данных

end;//1 выход из точки анализа if(cm=1) then begin;

 

// Модуль построения графика индикатора строит на определенном участке длиной n

if(cm>t-n)then begin;//условие для начала построекния графика

polinom=ca[cm-(t-n)];

polinom;

end;


 

https://book.mql4.com/ru/

Масса простых примеров 

Причина обращения: