"Использование. Удобен для отслежиания гэпов на рынке. За гэп считется
все, что выше желтой линии"
- интересное нововведение в идентификацию и определение гэпа
abolk:
"Использование. Удобен для отслежиания гэпов на рынке. За гэп считется
все, что выше желтой линии"
- интересное нововведение в идентификацию и определение гэпа
не имеет значения - имеется разрыв между open и close или нет. Сдишком часто после длинных свечей идет откат на манер закрытия гэпа.
интересный оригинальный индикатор. 10.
+10!
давно ищу что то подобное!
Martingeil:
+10!
давно ищу что то подобное!
кушайте на здоровье и трейдерское благополучие
Да извинит меня Автор за представление моего варианта его отличного индикатора, не дождавшись его благословения. Ниже предлагаю вашему вниманию код полностью с моим комментарием в заголовке.
//ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ //| Эта версия оценившего индикатор Автора по достоинству и нашедшего в нем | //| возможность расширить его применение. Внимание на нулевой бар! Усилил его | //| сигнальные функции, добавив 3 буфера, и поменял цветовую гамму. Borilunad.| //ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ //| Val_Bands_v1.mq4 | //| Индикатор волантильности длины свечей: | //| - красная(у меня желтая) гистограмма - длина свечи в пипсах | //| - линии: это средние от длины свечей со стандартным отклонением | //| Настройки - аналогичны каналу Болинджера | //| Использование. Удобен для отслежиания гэпов на рынке. За гэп считется | //| все, что выше желтой(у меня красной) линии | //| - выход за верхнюю границу - а) подарок в ТР (если по позиции); | //| б) SL (если против позиции; | //| в) запрет входа в этой точке | //| - выход за нижнюю границу - боковик | //| - пересечение снизу вверх нижней границы - начало тренда. | //ШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШШ #property copyright "Copyright © 2010, Fomenko" #property link "http://faa1947@mail.ru" // ----------------- Отдельное окно для индикатора ---------------------------- #property indicator_separate_window // ---------------- Кол-во видимых буферов индикатора ------------------------- #property indicator_buffers 7 // ---------------- Установка цвета индикатора -------------------------------- #property indicator_color1 LightSeaGreen #property indicator_color2 Red//Yellow #property indicator_color3 Lime//Orchid #property indicator_color4 Gold//Red #property indicator_color5 Beige #property indicator_color6 LimeGreen #property indicator_color7 OrangeRed // ---------------- Установка ширины линии ----------------------------------- #property indicator_width1 2 #property indicator_width2 1 #property indicator_width3 1 #property indicator_width4 1 #property indicator_width5 3 #property indicator_width6 3 #property indicator_width7 3 // ---------------- Установка стиля линии ----------------------------------- #property indicator_style1 0 #property indicator_style2 0 #property indicator_style3 0 #property indicator_style4 0 #property indicator_style5 0 #property indicator_style6 0 #property indicator_style7 0 //----------------- Внешние настройки индикатора ==========-------------------- extern int BandsPeriod = 14; // Период расчета extern double BandsDeviations = 1.0; // Величина стандартного отклонения int BandsShift = 0; // Сдвиг относительно графика //----------------- Объявление буферов инидикаторов -------------------------- double MovingBuffer[]; double UpperBuffer[]; double LowerBuffer[]; double Val_BarsBuffer[]; double Val_BarsBufferA[]; double Val_BarsBufferB[]; double Val_BarsBufferS[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name="Val_Bands"; IndicatorShortName(short_name); IndicatorDigits (1); //--------- Три? видимых буфера -------------------------------------- IndicatorBuffers (7); //---------- Установка параметров рисования ------------------------- SetIndexStyle (0, DRAW_LINE); SetIndexDrawBegin (0, BandsPeriod+BandsShift); SetIndexStyle (1, DRAW_LINE); SetIndexDrawBegin (1, BandsPeriod+BandsShift); SetIndexStyle (2, DRAW_LINE); SetIndexDrawBegin (2, BandsPeriod+BandsShift); SetIndexStyle (3, DRAW_HISTOGRAM); SetIndexDrawBegin (3, BandsPeriod+BandsShift); SetIndexStyle (4, DRAW_HISTOGRAM); SetIndexDrawBegin (4, BandsPeriod+BandsShift); SetIndexStyle (5, DRAW_HISTOGRAM); SetIndexDrawBegin (5, BandsPeriod+BandsShift); SetIndexStyle (6, DRAW_HISTOGRAM); SetIndexDrawBegin (6, BandsPeriod+BandsShift); //---------- Привязываем номер буфера к его имени ------------------- SetIndexBuffer (0, MovingBuffer); SetIndexBuffer (1, UpperBuffer); SetIndexBuffer (2, LowerBuffer); SetIndexBuffer (3, Val_BarsBuffer); SetIndexBuffer (4, Val_BarsBufferA); SetIndexBuffer (5, Val_BarsBufferB); SetIndexBuffer (6, Val_BarsBufferS); // ----------- Устанавливаем первоначальные значения --------------- SetIndexEmptyValue (0, 0.0); SetIndexEmptyValue (1, 0.0); SetIndexEmptyValue (2, 0.0); SetIndexEmptyValue (3, 0.0); SetIndexEmptyValue (4, 0.0); SetIndexEmptyValue (5, 0.0); SetIndexEmptyValue (6, 0.0); //------------------ Метка для линии индикатора --------------------- SetIndexLabel (0, "Mov"); SetIndexLabel (1, "Up"); SetIndexLabel (2, "Down"); return(0); } //+------------------------------------------------------------------+ //| Bollinger Bands | //+------------------------------------------------------------------+ int start() { int i, k, counted_bars = IndicatorCounted(); double deviation; double sum, oldval, newres; //---- if(Bars <= BandsPeriod) return(0); //---------------- Вычисляем среднюю -------------------------------- int limit = Bars - counted_bars; if(counted_bars > 0) limit++; for(i = 0; i < limit; i++) Val_BarsBuffer[i] = (High[i] - Low[i]) / Point; for(i = 0; i < limit; i++) MovingBuffer[i] = iMAOnArray(Val_BarsBuffer, Bars, BandsPeriod, BandsShift, MODE_SMA,//MODE_SMA, MODE_EMA, MODE_SMMA, MODE_LWMA i); //--------------- Вычисляем стороны канала ---------------------------- i = Bars - BandsPeriod + 1; if(counted_bars > BandsPeriod - 1) i = Bars - counted_bars - 1; while(i >= 0) { sum = 0.0; k = i + BandsPeriod - 1; oldval = MovingBuffer[i]; while(k >= i) { newres = Val_BarsBuffer[k] - oldval; sum += newres * newres; k--; } deviation = BandsDeviations * MathSqrt(sum / BandsPeriod); UpperBuffer[i] = oldval + deviation; LowerBuffer[i] = oldval - deviation; Val_BarsBufferA[i] = 0.0; Val_BarsBufferB[i] = 0.0; Val_BarsBufferS[i] = 0.0; i--; if ((Close[0] == High[0] || Close[0] == Low[0] && Val_BarsBuffer[0] < LowerBuffer[0]) || ((Close[0] == High[0] || Close[0] == Low[0] || Close[0] == Open[0]) && Val_BarsBuffer[0] > LowerBuffer[0] && Val_BarsBuffer[0] < UpperBuffer[0])) Val_BarsBufferA[0] = (High[0] - Low[0]) / Point; if (Close[0] == High[0] || Close[0] == Low[0]) { Val_BarsBufferB[0] = 0.0; Val_BarsBufferS[0] = 0.0; }else { if (Close[0] > Open[0] && Val_BarsBuffer[0] > LowerBuffer[0] && Val_BarsBuffer[0] < UpperBuffer[0]) { Val_BarsBufferB[0] = (High[0] - Low[0]) / Point; Val_BarsBufferS[0] = 0.0; } if (Close[0] < Open[0] && Val_BarsBuffer[0] > LowerBuffer[0] && Val_BarsBuffer[0] < UpperBuffer[0]) { Val_BarsBufferB[0] = 0.0; Val_BarsBufferS[0] = (High[0] - Low[0]) / Point; } } } //----------------- Индикатор вычислен -------------------------------- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); }
Спасибо, полезная штука!
Как можно считать данные из четвертого буфера (красная гистограмма)?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Val_Bands.mq4 :
Author: alex