суббота, 20 октября 2012 г.

Скорость изменений (ROC)

Для анализа изменений используются индикаторы, построенные по технологии ROC (Rate of change см. Википедия)
Этот индикатор показывает изменение цены от одного периода к другому. Эту же технологию применяем к параметрам лент: верхней границе, нижней границе, средней линии, а также к ширине ленты BW и положению цены в ленте %b.
Показ этих параметров (особенно, ширины ленты) в виде скорости изменений более нагляден.
Для уменьшения количества параметров при практическом использовании реализовано 3 индикатора:
  • ROC(bb) - изменения линий границ и ширины ленты;
  • ROC(MA) - изменения средней линии и, по совместительству, любой MA;
  • ROC(b%) - изменения индикатора b%.
Как обычно, все индикаторы имеют три линии: собственно изменения (абсолютная величина изменений/momentum или % от предыдущего значения), быстрая MA (сигнал 1), медленная MA (сигнал 2). Медленная MA строится на основе данных быстрой MA.
Кроме того, все индикаторы реализованы в 2-х модификациях: для использования в других индикаторах или советниках/скриптах (базовая модификация), для отображения в окне терминала.

Индикатор !roc(bb) и !roc(bb)View


Вызов !roc(bb):
iCustom(symbol,timeframe,"!roc(bb)",method,mode,ext,roc,MA_Period,MA_Shift,MA_Mode,MA_Price,Bands_Period, Bands_Dev,Bands_H,Bounds_Period,Bouds_Shift,Bounds_Mode,sig1_Period,sig1_Shift,sig1_Mode,
sig2_Period,sig2_Shift,sig2_Mode,buffer,shift);


где

параметры symbol, timeframe и shift являются стандартными параметрами функции iCustom языка MQL4.


method        - метод расчета: 0 - абсолтное изменение значения (momentum), 1 -  изменения в % от предыдущего значения
mode          - режим расчета: 0 - средняя линия (сделано для полноты, т.к. средняя линия представляет собой обычную MA и для ее расчета не требуется все множество параметров, то для упрощения вызова используется индикатор !roc(ma)), 1 - верхняя граница, 2 - нижняя граница, 3 - полная ширина, 4 - ширина верхней части ленты (от верхней границы до средней линии), 5 - ширина нижней части ленты (ширина от средней линии до нижней границы

ext           - для режимов 3,4,5 использовать данные: 0 - main, 1 - sig1, 2 - sig2

 
roc           - период расчета индикатора

// параметры модифицированной полосы Боллинджера
// параметры средней линии
MA_Period     - период

MA_Shift      - сдвиг

MA_Mode       - метод построения MA

MA_Price      - используемая цена (от 0 до 6)


// параметры построения отклонений
Bands_Period  - период
Bands_Dev     - коэффициент
Bands_H       - степень
 

// параметры MA для сглаживания границ

Bounds_Period - период
Bounds_Shift  - сдвиг
Bounds_Mode   - метод построения MA


// параметры построения сигналов
// параметры МА1 сглаживания ширины (сигнал 1)
sig1_Period   - период
sig1_Shift    - сдвиг
sig1_Mode     - метод построения MA


// параметры МА2 сглаживания ширины (сигнал 2)
sig2_Period   - период
sig2_Shift    - сдвиг
sig2_Mode     - метод построения MA


buffer        - 0-основное значение, 1-быстрая MA, 2-медленная MA.

Фактически в таком виде я не вызываю эти индикаторы (это касается и индикаторов из предыдущих и последующих сообщений), а использую функцию.Предположим мне нужны данные индикатора для ленты с параметрами 55,0,0,6,55,1.618,2,5,0,2,3,0,0,3,0,0 (параметры ленты указаны в порядке их описания), мне требуются данные в % от предыдущего значения и для расчета используюся данные основных линий, тогда функция будет иметь вид:
double roc_BB_55(int mode, int roc, int buf, int shift) {
   return(iCustom(NULL,0,"!roc(bb)",1,mode,1,roc,55,0,0,6,55,1.618,2,5,0,2,3,0,0,3,0,0,buf,shift));
}

Индикатор !roc(bb)View предназначен для отображения данных в окне терминала. Для задания параметров ленты используется имя комплекта (см. предыдущие сообщения).
Вот список параметров этого индикатора:

view          - отображение: 0-main, 1-sig1, 2-sig2, 3-main/sig1, 4-main/sig2, 5-sig1/sig2 
method, mode, ext, roc - аналогично соответствующим параметром базового индикатора !roc(bb)

// параметры модифицированной полосы Боллинджера
name          - имя комплекта параметров полосы
// параметры построения сигналов
// параметры МА1 (быстрая MA - сигнал 1)
sig1_Period   - период
sig1_Shift    - сдвиг
sig1_Mode     - метод построения MA


// параметры МА2 (медленная MA - сигнал 2)
sig2_Period   - период
sig2_Shift    - сдвиг
sig2_Mode     - метод построения MA



Для полноты ROC строится для всех линий и ширин ленты, однако мною используются, в основном, ROC только для ширин. Для построения ROC средней линии используется индикатор !roc(ma).

Индикаторы !roc(ma) и !roc(ma)View


Индикатор предназначен для расчета скорости изменения средней линии полосы Боллинджера. Выделение в отдельный индикатор обосновывается тем, что для его построения не нужны большая часть параметров ленты, хотя сам индикатор используется очень часто. В результате получился индикатор, который можно использовать для анализа скорости изменения любой MA.

Вызов !roc(ma):
iCustom(symbol,timeframe,"!roc(ma)",method,roc,period,shift,mode,price,sig1_Period,sig1_Shift,sig1_Mode,
sig2_Period,sig2_Shift,sig2_Mode,buffer,shift);


где

параметры symbol, timeframe и shift являются стандартными параметрами функции iCustom языка MQL4.


method        - метод расчета: 0 - абсолтное изменение значения (momentum), 1 -  изменения в % от предыдущего значения


roc           - период расчета индикатора


period,shift,mode,price - стандартные параметры для построения MA
sig1_* и sig2_* - параметры построения сигналов аналогично предыдущему индикатору

buffer        - 0-основное значение, 1-быстрая MA, 2-медленная MA

Индикатор !roc(ma)View предназначен для отображения в окне терминала и имеет, помимо указанных выше параметров, дополнительный параметр для указания отображаемых линий:

view          - отображение: 0-main, 1-sig1, 2-sig2, 3-main/sig1, 4-main/sig2, 5-sig1/sig2

Индикаторы !roc(b%) и !roc(b%)View


Этот индикатор имеет наибольший список параметров, т.к. дополнительно к параметром индикатора !roc(bb) дополняется еще 4, описывающих MA, положение которой рассчитывается относительно ленты.


Вызов !roc(b%):
iCustom(symbol,timeframe,"!roc(b%)",method,ext,roc,period,shift,mode,price,MA_Period,MA_Shift,MA_Mode,MA_Price,Bands_Period, Bands_Dev,Bands_H,Bounds_Period,Bouds_Shift,Bounds_Mode,sig1_Period,sig1_Shift,sig1_Mode,
sig2_Period,sig2_Shift,sig2_Mode,buffer,shift);


где

параметры symbol, timeframe и shift являются стандартными параметрами функции iCustom языка MQL4.


method        - метод расчета: 0 - абсолтное изменение значения (momentum), 1 -  изменения в % от предыдущего значения ext           - использовать данные индикатора b%: 0 - main, 1 - sig1, 2 - sig2
 
roc           - период расчета индикатора

period,shift,mode,price - стандартные параметры для построения MA

// параметры модифицированной полосы Боллинджера
// параметры средней линии
MA_Period     - период

MA_Shift      - сдвиг

MA_Mode       - метод построения MA

MA_Price      - используемая цена (от 0 до 6)


// параметры построения отклонений
Bands_Period  - период
Bands_Dev     - коэффициент
Bands_H       - степень
 

// параметры MA для сглаживания границ

Bounds_Period - период
Bounds_Shift  - сдвиг
Bounds_Mode   - метод построения MA


// параметры построения сигналов
// параметры МА1 сглаживания ширины (сигнал 1)
sig1_Period   - период
sig1_Shift    - сдвиг
sig1_Mode     - метод построения MA


// параметры МА2 сглаживания ширины (сигнал 2)
sig2_Period   - период
sig2_Shift    - сдвиг
sig2_Mode     - метод построения MA


buffer        - 0-основное значение, 1-быстрая MA, 2-медленная MA.

Для индикатора roc(b%)View параметры ленты Боллинджера заменяются, как обычно, на имя комплекта параметров и добавляется параметр view для выбора вида отображения.

Пример

 
Рассмотрим пример использования индикаторов:

 
Изображены две ленты с параметрами:
1) 55,0,0,6,55,1.618,2,5,0,2 - желтый цвет (b55)
2) 233,0,3,6,233,1.618,2,8,0,2 -бирюзовый цвет (b233)

Внизу расположены три окна с индикаторами:
1) b% - показывает положения средней линии полосы b55 относительно полосы b233. В окне отображается основная линия и медленная MA (сигнал 2) с параметрами 5,0,2 (быстрая MA имеет те же параметры)
2) roc(bb) - настроен на показ скорости изменений в % ширины ленты b233. В окне отображается быстрая MA (сигнал 1) с параметрами 3,0,0. Параметр roc = 5.
3) roc(b%) - настроен на показ скорости изменения в абсолютных значениях положения средней линии полосы b55 относительно полосы b233. В окне отображается быстрая MA (сигнал 1) с параметрами 3,0,0. Иначе говоря, показывается скорость изменения того, что отображает окно индикатора 1.

3 окно является избыточным и приведено здесь только для примера.
Теперь небольшой анализ. Хорошо видно, что 17 октября в конце дня основная линия индикатора b% пересекла сверху вниз свою медленную MA. Кроме того, скорость роста ширины ленты b233 очевидно замедлилась, а скорость изменения b% перешла на отрицательную территорию. Таким образом, видно что предшествующий восходящий тренд будет (по крайней мере) корректироваться. Последующие два дня полностью это подтверждают.

Ссылка для скачивания индикаторов:
roc.zip 1.1 mb
 
Указанный файл содержит только индикаторы, рассмотренные в настоящем сообщении. Для корректной работы необходимы файлы, содержащие индикаторы !bands, !bw, !b%, ссылки на которые даны в предыдущих сообщениях. После рассмотрения всех индикаторов они будут объеденены в один файл для скачивания. Объяснение простое - они еще не все готовы в виде для распостранения. Одно дело сделать для себя, и совершенно другое - для других.

В следующем сообщении будут рассмотрены индикаторы для построения гистограмм на основе уже рассмотренных индикаторов.

Комментариев нет:

Отправить комментарий