Построение простенького индикатора

 
Все статьи построены по принципу не для начинающих.
Почему бы не написать статью где строится индикатор не имеющий смысла, но зато по коду написан очень просто.
К слову сказать я программист, обладаю знаниями во многих областях, разбирающийся во многих продуктах, но разбирая любую выбранную статью с сайта я не понимаю практически ничего!
К примеру, с трудом нашел в какой-то статье чем отличается Индикатор/Эксперт/Скрипт.
Если статья о графическом представлении, то туда вдогонку автор пытается впихнуть кусочек своей стратегии, из-за чего все опять таки становится непонятно.
Скорее всего я неправ и скорее всего потому что вообще пока что не рублю в MQL. Поэтому прошу помочь мне написать простенький индикатор, который даст мне точок для собственных достижений.

Помогите мне написать индикатор соедияющий Close точки каждого нечетного бара банальным отрезком синего цвета.

Спасибо. :)
 
ryumkin:
Все статьи построены по принципу не для начинающих.
Почему бы не написать статью где строится индикатор не имеющий смысла, но зато по коду написан очень просто.
К слову сказать я программист, обладаю знаниями во многих областях, разбирающийся во многих продуктах, но разбирая любую выбранную статью с сайта я не понимаю практически ничего!
К примеру, с трудом нашел в какой-то статье чем отличается Индикатор/Эксперт/Скрипт.
Если статья о графическом представлении, то туда вдогонку автор пытается впихнуть кусочек своей стратегии, из-за чего все опять таки становится непонятно.
Скорее всего я неправ и скорее всего потому что вообще пока что не рублю в MQL. Поэтому прошу помочь мне написать простенький индикатор, который даст мне точок для собственных достижений.

Помогите мне написать индикатор соедияющий Close точки каждого нечетного бара банальным отрезком синего цвета.

Спасибо. :)

Почитайте статьи уважаемого  Rosh - а, для многих его статьи явились хорошим пособием для изучения mql4
 
xeon:
ryumkin:
Все статьи построены по принципу не для начинающих.
Почему бы не написать статью где строится индикатор не имеющий смысла, но зато по коду написан очень просто.
К слову сказать я программист, обладаю знаниями во многих областях, разбирающийся во многих продуктах, но разбирая любую выбранную статью с сайта я не понимаю практически ничего!
К примеру, с трудом нашел в какой-то статье чем отличается Индикатор/Эксперт/Скрипт.
Если статья о графическом представлении, то туда вдогонку автор пытается впихнуть кусочек своей стратегии, из-за чего все опять таки становится непонятно.
Скорее всего я неправ и скорее всего потому что вообще пока что не рублю в MQL. Поэтому прошу помочь мне написать простенький индикатор, который даст мне точок для собственных достижений.

Помогите мне написать индикатор соедияющий Close точки каждого нечетного бара банальным отрезком синего цвета.

Спасибо. :)

Почитайте статьи уважаемого Rosh - а, для многих его статьи явились хорошим пособием для изучения mql4

Читал - очень похоже на статьи Лебедева, простенько, конкретно и с непонятным названием. Если не сложно ответьте кодом, пожалуйста. ..
 
// Индикатор считает Momentum, 
// т.е. скорость измения цены за Len баров
//
#property indicator_separate_window  // отображение в другом окне
#property indicator_color1 Red       // рисовать красным
 
extern int Len=30;  // параметр
double Buf[];       // буфер отображаемый на экране
 
int init()
{
   SetIndexStyle(0,DRAW_LINE); // рисовать линиями
   SetIndexBuffer(0,Buf);      // назначить массив для рисования
}
int deinit(){}
 
int start()
{
   int CountedBars=IndicatorCounted();
   int limit = Bars - CountedBars - 1;
 
   // вычисляем только новые бары - цикл по новым барам
   for (int i = limit; i >= 0; i --)
   {
      Buf[i] = Close[i] - Close[i+Len]; // собственно вычисления
   }
}
 
Mak:
// Индикатор считает Momentum, 
// т.е. скорость измения цены за Len баров
//
#property indicator_separate_window  // отображение в другом окне
#property indicator_color1 Red       // рисовать красным
 
extern int Len=30;  // параметр
double Buf[];       // буфер отображаемый на экране
 
int init()
{
   SetIndexStyle(0,DRAW_LINE); // рисовать линиями
   SetIndexBuffer(0,Buf);      // назначить массив для рисования
}
int deinit(){}
 
int start()
{
   int CountedBars=IndicatorCounted();
   int limit = Bars - CountedBars - 1;
 
   // вычисляем только новые бары - цикл по новым барам
   for (int i = limit; i >= 0; i --)
   {
      Buf[i] = Close[i] - Close[i+Len]; // собственно вычисления
   }
}
Большое спасибо! Все понятно :)
 

И все же как сделать через один, а может и через несколько значений один отрезок прямой, а может и вообще собственную фигуру нарисовать?

 
Рюмкин, я подозреваю мы знакомы по одному месторасположению, зарание извиняюсь если ошибся:) Я Shum.er, он же X-Noise, он же Elder, максимум информации о себе выдал:))))

К слову сказать я программист, обладаю знаниями во многих областях, разбирающийся во многих продуктах, но разбирая любую выбранную статью с сайта я не понимаю практически ничего!

Все придет, ты главное не спеши, изучай доку, она очень информативная, не MSDN конечно, но большего и не нужно, про встроенный хелп не забудь, они написаны с разных сторон но об одном и том же, я имею ввиду хелп не редактора, а терминала:) Даю наводку, для этого есть объекты:) База кодов тоже не рядом лежала, там все ответы на самые изящные вопросы:)
 
ryumkin писал (а):

И все же как сделать через один, а может и через несколько значений один отрезок прямой, а может и вообще собственную фигуру нарисовать?


int init()
{
   SetIndexStyle(0,DRAW_LINE); // рисовать линиями
   SetIndexBuffer(0,Buf);      // назначить массив для рисования
}
DRAW_LINE заменить на DRAW_SECTION, тогда элементы буфера имеющие не пустое значение (не равне EMPTY_VALUE) будут соединяться прямыми линиями (конечно если функцией SetIndexEmptyValue() не установлена другая величина пустого значения). Но этот способ не подойдет для рисования фигур, так как не получится сделать разрыв в линии. Для рисования фигур подойдут графические объекты создаваемые функцией ObjectCreate().
 

Раз уж меня тоже привлекли к этому деянию выкладываю свой результат:)

#property copyright "Copyright © XNSNET 2007"
#property link      "http://xnsnet.ru"
#property indicator_chart_window
#property indicator_color1 Red
 
double Buffer[];
extern bool Back = false;
 
int init() {
    SetIndexStyle( 0, DRAW_SECTION );
    SetIndexBuffer( 0, Buffer );
}
 
int deinit(){}
 
int start() {
 
    int CountedBars = Bars - IndicatorCounted() - 1;
    if ( CountedBars > 0 ) {
        for ( int i = 0; i < CountedBars; i++ ) {
            if ( ( Bars + Back - i ) % 2 == 0 ) {
                Buffer[ i ] = EMPTY_VALUE;
            } else {
                Buffer[ i ] = Close[ i ];
            }
        }
    } else if ( ( Bars + Back ) % 2 == 1 ) {
        Buffer[ 0 ] = Close[ i ];
    }
 
}
Причина обращения: