искал в прошлом году, тоже не нашел
создал в мастере индикатор и изменил
#property indicator_buffers 1150 #property indicator_plots 1150
при компиляции индикатора дает ошибку:
invalid property value, positive integer up to 512 expected tst.mq4 11 29
invalid property value, positive integer up to 512 expected tst.mq4 12 29
значит 512
UPD: теперь поиском про 512 буферов все нашлось https://docs.mql4.com/ru/customind/indicatorbuffers:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Вопросы от начинающих MQL4 MT4 MetaTrader 4
Slava, 2016.11.12 15:17
Информация про 8 буферов устарела
В новом MQL4 можно установить до 512 буферов.
Чтобы разобраться, смотрите исходники индикаторов в папке MQL4\Indicators\Examples. И читайте документацию
искал в прошлом году, тоже не нашел
создал в мастере индикатор и изменил
при компиляции индикатора дает ошибку:
значит 512
UPD: теперь поиском про 512 буферов все нашлось https://docs.mql4.com/ru/customind/indicatorbuffers:
Спасибо.
Меня смущает, что в документации по ссылке только про расчетные буферы (их и раньше вроде было можно больше 8 использовать)
А вот, для рисования линий до сих пор в документации написано от 0 до 7
Хотя на практике вроде все рисует и больше 8- docs.mql4.com
протестировать нужно, по моему не сложно вывести штук сто буферов в подокно с шагом в _Point, чтобы не считать крайние буфера закрасить другим цветом
и в окне данных тоже посмотреть что пишет терминал
512
//+------------------------------------------------------------------+ #property copyright "IgorM" #property link "https://www.mql5.com/ru/users/igorm" #property version "1.00" #property strict #property indicator_buffers 512 #property indicator_chart_window input int MA_Count = 100; class MyMA { private: const int _period; double Buffer[]; public: MyMA(const int cnt) : _period(cnt + 1) { SetIndexBuffer(cnt, Buffer, INDICATOR_DATA); color c = (color)((rand() << 16) | (rand() + rand())); SetIndexStyle(cnt, DRAW_LINE, STYLE_SOLID, 1, c); SetIndexLabel(cnt, "MA_" + (string)(cnt + 1)); } void OnCalculate(const int limit) { for(int i = limit; i >= 0; i--) { Buffer[i] = iMA(NULL, 0, _period, 0, 0, 0, i); } } }*MA[]; //+------------------------------------------------------------------+ int OnInit() { srand(GetTickCount()); IndicatorBuffers(MA_Count); ArrayResize(MA, MA_Count); for(int i = ArraySize(MA) - 1; i >= 0; i--) { MA[i] = new MyMA(i); } return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ void OnDeinit(const int reason) { for(int i = ArraySize(MA) - 1; i >= 0; i--) { delete MA[i]; } } //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int limit = prev_calculated == 0 ? rates_total - 1 : rates_total - prev_calculated; for(int i = ArraySize(MA) - 1; i >= 0; i--) { MA[i].OnCalculate(limit); } return(rates_total); } //+------------------------------------------------------------------+
Красота какая ) Спасибо!
Похоже, что разработчики MQL просто не обновляют документацию.
Нужно будет подбирать правильную последовательность массивов, иначе, на чарте, могут не отображаться некоторые из них.
Только если буферы будут разные - линии/гистограммы/стрелки/расчетные, то возможны баги.
Нужно будет подбирать правильную последовательность массивов, иначе, на чарте, могут не отображаться некоторые из них.Ноесли просто
Понятно, спасибо.
А если просто линии - штук 20 и 2-4 буфера со стрелками, то проблем не будет ведь?
И что значит "правильная последовательность массивов"?
И что значит "правильная последовательность массивов"?
Для гистограмм и зигзагов используется два буфера. Поэтому важно, чтобы данные попадали в нужные буферы.
Для гистограмм и зигзагов используется два буфера. Поэтому важно, чтобы данные попадали в нужные буферы.
Спасибо, учту.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Возможно, я что-то путаю, но раньше в MT4 было ограничение на колическво индикаторных буферов - до 8.
Сейчас попробовала добавить 9-ый, все работает.
Подскажите, пожалуйста, кто в курсе, как давно сняли ограничение 8, и какое ограничение сейчас?