double iBandsOnArray( double array[], int total, int period, int deviation, int bands_shift, int mode, int shift)
Расчет индикатора Bollinger Bands на данных, хранящихся в массиве. В отличие от iBands(...) функция iBandsOnArray не выбирает данные на основе названия инструмента, таймфрейма и используемой цены - ценовые данные должны быть подготовлены заранее. Расчет производится слева направо. Для организации доступа к элементам массива, как к таймсерии (то есть справа налево), необходимо использовать функцию ArraySetAsSeries.
Расчет индикатора Bollinger Bands на данных, хранящихся в массиве. В отличие от iBands(...) функция iBandsOnArray не выбирает данные на основе названия инструмента, таймфрейма и используемой цены - ценовые данные должны быть подготовлены заранее. Расчет производится слева направо. Для организации доступа к элементам массива, как к таймсерии (то есть справа налево), необходимо использовать функцию ArraySetAsSeries.
Спасибо!
Расчет индикатора Bollinger Bands на данных, хранящихся в массиве. В отличие от iBands(...) функция iBandsOnArray не выбирает данные на основе названия инструмента, таймфрейма и используемой цены - ценовые данные должны быть подготовлены заранее. Расчет производится слева направо. Для организации доступа к элементам массива, как к таймсерии (то есть справа налево), необходимо использовать функцию ArraySetAsSeries.
и от меня спасибо...
Пример реализации:
double macd[11]; ArraySetAsSeries(macd,true); for( i=10; i>=0; i--) { macd[i]=iMACD(NULL,0,lowema4,fastema4,1,PRICE_CLOSE,MODE_MAIN,i); } double bbmain=iBandsOnArray(macd,0,bbper,bbotcl,0,MODE_MAIN,1); double bbup=iBandsOnArray(macd,0,bbper,bbotcl,0,MODE_UPPER,1); double bblow=iBandsOnArray(macd,0,bbper,bbotcl,0,MODE_LOWER,1); double macdsma=iMAOnArray(macd,0,smaper,0,MODE_SMA,1);
Пример индикатора:
//+------------------------------------------------------------------+ //| NatusekoProtrader4HStrategy.mq4 | //| FORTRADER.RU | //| http://FORTRADER.RU | //+------------------------------------------------------------------+ #property copyright "FORTRADER.RU" #property link "http://FORTRADER.RU" #property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 DarkGray #property indicator_color2 DodgerBlue #property indicator_color3 DodgerBlue #property indicator_color4 DodgerBlue #property indicator_color5 Red //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double macd[1000]; int init() { SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,ExtMapBuffer1); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,ExtMapBuffer3); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,ExtMapBuffer4); SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,ExtMapBuffer5); return(0); } int start() { ArraySetAsSeries(macd,true); int i; for( i=1000; i>=0; i--) { macd[i]=iMACD(NULL,0,5,200,1,PRICE_CLOSE,MODE_MAIN,i); ExtMapBuffer1[i]=iMACD(NULL,0,5,200,1,PRICE_CLOSE,MODE_MAIN,i); } if(i<=1) { for( i=0; i<=1000; i++) { ExtMapBuffer2[i]=iBandsOnArray(macd,0,20,1,0,MODE_MAIN,i); ExtMapBuffer3[i]=iBandsOnArray(macd,0,20,1,0,MODE_UPPER,i); ExtMapBuffer4[i]=iBandsOnArray(macd,0,20,1,0,MODE_LOWER,i); ExtMapBuffer5[i]=iMAOnArray(macd,0,3,0,MODE_SMA,i); } } return(0); }
Пропускаем болленджер через RSI:
extern int rsiperiod=8; extern int bbperiod=14; extern int bbotcl=2; int Pattern() { double rsi[101]; double irsi; ArraySetAsSeries(rsi,true); for(int i=100; i>=0; i--) { rsi[i]=iRSI(NULL,0,rsiperiod,PRICE_CLOSE,i); if(i==1){irsi=rsi[i];} } double bbmain=iBandsOnArray(rsi,0,bbperiod,bbotcl,0,MODE_MAIN,1); double bbup=iBandsOnArray(rsi,0,bbperiod,bbotcl,0,MODE_UPPER,1); double bblow=iBandsOnArray(rsi,0,bbperiod,bbotcl,0,MODE_LOWER,1); Print("bbup "+bbup+" bblow "+bblow+" irsi "+irsi); return(0); }
Очень полезная информация.
Спасибо.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Хочу написать советника по данной стратегии:
http://unfx.ru/strategies_to_trade/strategies_139.php
Но непонял как в MQL4 пропустить расчеты одного индикатора через другой(болиндеж построить по MACD)? или такой возможности нет?