Всех приветствую!
Никак не могу разобраться с классом CiMA (скользящая средняя). В оном классе присутствуют, среди прочих, метод Create, который бы, вроде, создает индикатор. Хочу поблагодарить составителей документации ибо все предельно просто и понятно:
1. Что значит создает? Видимо, как Господь Бог землю? Куда девает данные созданного? И как к ним добраться? Или без танцев с бубнами не обойтись? Так мотив бы напели!!!!!
2. Метод Main . Доки говорят, что получает элемент буфера по указанному индексу. Супер гениально!!!! Какого, ......., такого, .....ка, буфера????????
3. Есть метод GetData. С разным набором аргументов. В каждом наборе присутствует буфер! И Бог бы с ним, с буфером! Его можно создать функцией SetIndexBuffer(привязать массив к индексу) и в него можно скопировать функцией CopyBuffer. Только вот что копировать? Эта функция просит хэндл индикатора. Где в методе Create этот самый хэндл?
И вообще странно, зачем городить весь этот ООП, если в примерах документации 2/3 кода в стиле Си?!
Буду очень благодарен, ежель кто откликнется и просветит меня, сирого...))))
Если Вам трудно с ООП и у Вас не хватает опыта в использовании ООП - ЗАЧЕМ Вы пытаетесь это использовать? Работайте с простыми кодами. Создавайте индикатор как в справке: iMA

- www.mql5.com
Вопрос не в моем опыте в ООП. Он, поверьте, может и не велик, но достаточен. Вопрос в документации. Точнее, в ее неясности. Например, в описании метода Create. Что значит "создает"?

- www.mql5.com
Вопрос не в моем опыте в ООП. Он, поверьте, может и не велик, но достаточен. Вопрос в документации. Точнее, в ее неясности. Например, в описании метода Create. Что значит "создает"?
Что не ясно в
Создает индикатор |
Создает индикатор с указанными параметрами. Для обновления и получения значений индикатора используйте Refresh() и GetData().
bool Create( string string, // символ ENUM_TIMEFRAMES period, // период int ma_period, // период усреднения int ma_shift, // смещение ENUM_MA_METHOD ma_method, // метод усреднения int applied // тип цены, хэндл )
Вы слово "создаёт" интерпретируете по-своему? Создаёт означает: до этого момента не было индикатора, а после метода Create - есть индикатор.

- www.mql5.com
А здесь что не ясно?
Получает данные буфера |
Получает элемент буфера по указанному индексу.
double Main( int index // индекс ) const
Речь про индикатор iMA и у этого индикатора ТОЛЬКО ОДИН БУФЕР. Учите матчасть.

- www.mql5.com
А здесь что не ясно?
Получает данные буфера |
Получает элемент буфера по указанному индексу.
Речь про индикатор iMA и у этого индикатора ТОЛЬКО ОДИН БУФЕР. Учите матчасть.
Здесь не ясно ВСЁ! Ибо не работает метод Main. Приходится через массивы и буферы добираться до значений.
Покопался немного под капотом всех этих классов. Пока не дошло, как этот самый Main фунциклирует. Будет время, загляну глубже и если пойму, то поделюсь светлыми мыслями.
Кажется, стало ясно! Вот функция Refresh класса CIndicatorBuffer. Именно в ней происходит копирование данных в буфер. Там еще похожая есть RefreshCurrent.
Т.е., без предварительного вызова этой функции данных в буфере не будет!!!! Проверил. Так и есть. Без вызова refresh Main выдает белиберду! Ну что же, матчасть изучил , чего и модератору советую, в том числе поправить мануал))))).
bool CIndicatorBuffer::Refresh(const int handle,const int num) { //--- check if(handle==INVALID_HANDLE) { SetUserError(ERR_USER_INVALID_HANDLE); return(false); } //--- m_data_total=CopyBuffer(handle,num,-m_offset,m_size,m_data); //--- return(m_data_total>0); }
А прочитать то, что написано не смогли?
Создает индикатор с указанными параметрами. Для обновления и получения значений индикатора используйте Refresh() и GetData().

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всех приветствую!
Никак не могу разобраться с классом CiMA (скользящая средняя). В оном классе присутствуют, среди прочих, метод Create, который бы, вроде, создает индикатор. Хочу поблагодарить составителей документации ибо все предельно просто и понятно:
1. Что значит создает? Видимо, как Господь Бог землю? Куда девает данные созданного? И как к ним добраться? Или без танцев с бубнами не обойтись? Так мотив бы напели!!!!!
2. Метод Main . Доки говорят, что получает элемент буфера по указанному индексу. Супер гениально!!!! Какого, ......., такого, .....ка, буфера????????
3. Есть метод GetData. С разным набором аргументов. В каждом наборе присутствует буфер! И Бог бы с ним, с буфером! Его можно создать функцией SetIndexBuffer(привязать массив к индексу) и в него можно скопировать функцией CopyBuffer. Только вот что копировать? Эта функция просит хэндл индикатора. Где в методе Create этот самый хэндл?
И вообще странно, зачем городить весь этот ООП, если в примерах документации 2/3 кода в стиле Си?!
Буду очень благодарен, ежель кто откликнется и просветит меня, сирого...))))