Скачать MetaTrader 5

Буферы индикатора

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью и заслужи признание тысячи трейдеров!
Debugger
2501
Debugger 2011.01.24 17:48 

Всем доброго времени суток!

Столкнулся с ситуацией, когда понадобилось число буферов больше 8.

Может кто подсказать как обойти это ограничение без использования промежуточных индикаторов?

Заранее благодарен.

Комбинатор
15922
Комбинатор 2011.01.24 17:55  

Завести ручной буфер, правда зело медленно перераспределение памяти происходит ручками, так что возможно лучше "промежуточных индикаторов" ничего и нет.

Где-то тема была с расчетами производительности, давно.

Debugger
2501
Debugger 2011.01.24 17:56  

неужели нет никаких лазеек?

Dmitry Fedoseev
42905
Dmitry Fedoseev 2011.01.24 18:00  
Есть варианты. Самый тупой способ - просто массив, заранее отмастштабировать его на всё количество баров со значительным запасом. Индекс вычислять. По достижению длины массива (если вдруг), снова масштабировать, но не на один элемент, а с запасом.
Комбинатор
15922
Комбинатор 2011.01.24 18:05  
Debugger:

неужели нет никаких лазеек?

Перейти на MT5 :)
Владимир Тезис
4266
Владимир Тезис 2011.01.24 19:44  
ДЛЛ-ки работают побыстрее штатных средств терминала. Как вариант, использовать массивы в них.
Всеволод
648
Всеволод 2011.01.24 20:04  
Debugger:

Всем доброго времени суток!

Столкнулся с ситуацией, когда понадобилось число буферов больше 8.

Может кто подсказать как обойти это ограничение без использования промежуточных индикаторов?

Заранее благодарен.

Ну я вообще не заморачивался, сделал в своем индикаторе отрисовку простыми линиями.
Всеволод
648
Всеволод 2011.01.24 20:18  
   int shift=iBarShift(NULL,0,LastCalculatedBar)+1;
   LastCalculatedBar=iTime(NULL,0,shift); 
   

   while (shift>-1){
     //calc
          string oname=vl_Pairs[z]+period+LastCalculatedBar;
          ObjectDelete(oname);
          ObjectCreate(oname,OBJ_TREND, window,LastCalculatedBar-Period()*60,up,LastCalculatedBar,up0);
          ObjectSet(oname,OBJPROP_RAY,false);
          ObjectSet(oname,OBJPROP_COLOR,vl_Colors[z]);
          ObjectSet(oname,OBJPROP_WIDTH,2);
   
          LastCalculatedBar=iTime(NULL,0,iBarShift(NULL,0,LastCalculatedBar)-1); 

   }
в целом примерно так.
Debugger
2501
Debugger 2011.01.26 10:38  

Благодаря идеям Xupypr-а проблема ограничивающая число буферов удачно решена.

Гранд респект ему. :)

Петр
6084
Петр 2011.01.26 13:47  
Есть такая штука - поиск называется. https://www.mql5.com/ru/forum/118286
aler
165
aler 2011.01.26 13:53  
Debugger:

Благодаря идеям Xupypr-а проблема ограничивающая число буферов удачно решена.

Гранд респект ему. :)


И что сказал Хирург? Ампутация? :)

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий